3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UnityでgRPCを動かす #4 Android

Last updated at Posted at 2019-06-09

ゴール:Unity(iOS/Android)でgRPCを動かす

開発環境:macOS Mojave + Unity 2019.1.5f1

今回はその4です。

AndroidでgRPCのサンプルを動かす

UnityでgRPCを動かす #2 Unityで別プロセスのサーバーを呼び出すよう修正したプロジェクトからスタートします。Build SettingsでPlatformを"Android"にしてください。

ソースコードの修正

この作業は、エミュレーター+ローカルサーバーという環境でのみ必要な作業です。

Androidエミュレーターから見ると、ローカルマシンのアドレスはlocalhost(127.0.0.1)ではなく10.0.2.2という特別なIPアドレスになっています。なので、接続先のサーバーのアドレスを修正します。

HelloWorldTest.cs
  public static HelloReply Greet(string greeting)
  {
    // 127.0.0.1から10.0.2.2に接続先のアドレスを修正する。
    // Channel channel = new Channel("127.0.0.1:50051", ChannelCredentials.Insecure);
    Channel channel = new Channel("10.0.2.2:50051", ChannelCredentials.Insecure);

    var client = new Greeter.GreeterClient(channel);

    var reply = client.SayHello(new HelloRequest { Name = greeting });

    channel.ShutdownAsync().Wait();

    return reply;
  }

実行

ソースの修正を終えたら、ビルド&実行をすることで、エミュレーター上でクライアントが動作します。

image.png

おしまい

以上、ゴールである「Unity(iOS/Android)でgRPCを動かす」が実現できました。
記事を書き始めた時は、gRPCでUnity対応が進んでいませんでしたが、1年弱経ったところでは専用のサンプルが用意されるくらいには、対応が進んでいました。この後も引き続き対応が進み、正式対応になってくると思います。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?