Unity 3D игра, которая управляется приложением Android

android android-studio unity3d network-programming connection

196 просмотра

1 ответ

Я хочу создать трехмерную автомобильную игру, в которой вражеская машина идет впереди, а вы идете против своего врага, и ваша машина может просто двигаться влево или вправо, теперь все будет работать на вашем компьютере / единстве (сервере) который контролируется вашим приложением для Android (клиент). Я создал его на единстве с помощью RPC, и клиент и сервер на единстве, но проблема в том, что я использую Android Studio для создания приложения для Android, так как соединить это приложение с Unity и начать общение между ними.

у меня есть 2 кнопки на стороне клиента и на стороне сервера

Клиент (при нажатии клиент подключен и загружен экран клиента)

Сервер (при нажатии запускается сервер и загружается экран сервера)

На экране клиента, когда нажата кнопка воспроизведения, игра запускается на стороне сервера и контролируется моей клиентской стороной, у которой две кнопки слева и справа.

Мой основной скрипт Uimanager написан ниже, и изображение моей игры прилагается, поэтому, пожалуйста, помогите мне, так как я застрял в этой проблеме примерно на неделю, введите описание изображения здесь .

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");
}
}

введите описание изображения здесь

Автор: Tariq Mehmood Источник Размещён: 08.11.2019 11:04

Ответы (1)


0 плюса

Добавьте кнопку прослушивания кнопок и отправьте сообщение в gameObject с помощью

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.M Размещён: 20.08.2016 08:44
Вопросы из категории :
32x32