【问题标题】:unity 3d game which is control by an Android app由 Android 应用程序控制的统一 3d 游戏
【发布时间】:2016-12-27 09:23:27
【问题描述】:

我想要做的是创建一个 3d 汽车游戏,其中敌车从前面来,你正在与你的敌人对抗,你的车现在可以向左或向右行驶,所有事情都可以在你的计算机/团结上运行(服务器)由您的 android 应用程序(客户端)控制。 我已经通过使用 RPC 在统一上创建了它,并且客户端和服务器都在统一上,但问题是我正在使用 android studio 构建一个 android 应用程序,因此如何将该应用程序与统一连接并开始它们之间的通信。

我在客户端和服务器端有 2 个按钮

客户端(当点击客户端连接并加载客户端屏幕时)

服务器(当点击服务器启动并加载服务器端屏幕时)

在客户端屏幕上 当点击播放按钮时,游戏在服务器端启动,它由我的客户端控制,左右两个按钮

我的主要 Uimanager 脚本写在下面,并附上了我的游戏图像,所以请帮助我,因为我在这个问题上卡住了大约一周enter image description here

UiManager Script using UnityEngine; using System.Collections;

public class UiManager : MonoBehaviour {

 // Use this for initialization
 public GameObject car;
 public CarController moveCar;
 public NetworkView nView;
 string level1;

 void Start () {
 nView = GetComponent<NetworkView>();

 }

 // Update is called once per frame
 void Update () {
 ClientLeft();
 // networkView.RPC;
 }

public void Pause()
{
 if(Time.timeScale == 1)
 {
     Time.timeScale = 0;
 }
 else if(Time.timeScale == 0)
 {
     Time.timeScale = 1;
 }
 }
 string ip = "127.0.0.1" ;
 int portno = 25001;
 public void Server()
 {

     Network.InitializeServer(10, portno); 
     if (Network.peerType == NetworkPeerType.Server)
     {
         Application.LoadLevel("Menu");
     }


  }



 public void Client()
 {
     Network.Connect(ip, portno);
 if(Network.peerType == NetworkPeerType.Client)
 {
     Application.LoadLevel("clientSide");
 }

 }
 void OnConnectedToServer()
 {
 Application.LoadLevel("clientSide");
 }
 public void ClientPaly()
 {
  if (Network.peerType == NetworkPeerType.Client)
 {
     nView.RPC("Play", RPCMode.Server);
 }
 }
 public void ClientLeft()
 {
 if (Network.peerType == NetworkPeerType.Client)
 {
     // nView.RPC("moveLeft", RPCMode.Server);
     moveCar.moveLeft();
 }
 }
 public void ClientRight()
 {
 if (Network.peerType == NetworkPeerType.Client)
 {
     nView.RPC("moveRight", RPCMode.Server);

 }
 }
[RPC]
public void Play()
{
 Application.LoadLevel("Level1");
}
}

enter image description here

【问题讨论】:

    标签: android android-studio unity3d network-programming connection


    【解决方案1】:

    为按钮添加点击监听器并在使用中向游戏对象发送消息

    UnityPlayer.UnitySendMessage("gameObjectName", "methodName", "Variable");
    

    例如

    client.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                UnityPlayer.UnitySendMessage("UiManager", "Client", "");
            }
        });
    
    server.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    UnityPlayer.UnitySendMessage("UiManager", "Server", "");
                }
            });
    

    【讨论】:

    • 亲爱的 Sabish 如何将我在 android studio 中创建的 android 应用程序连接到这个统一 3d 的游戏
    • 你需要从unity 3d导出google Development build并导入到android studio并编写上面的脚本。
    • 谢谢,但如何从统一 3d 导出 google Development build 并导入到 android studio 基本上我都是新手,我通过观看视频和谷歌搜索完成了所有这些工作
    猜你喜欢
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多