Ich befolge die Schritte von PUN basic tutorial. Für jetzt erreiche ich einen Teil von dem, was ich will Sende meine Position in der aktuellen Zeit an einen anderen Spieler mit mir in den Raum, um ihn zu bewegen. Ich kann meine Position jedes Mal drucken, wenn ich es aktualisiere, was ich brauche, ist zu wissen, wie ich Position an einen anderen Spieler senden kann, um ihn zu bewegen. Angenommen, ich habe einen Desktop-Player und wenn ich ihn bewege, verschiebe ich den Player auf dem Handy. Und wie höre ich auf Objekt instanziieren Objekt, ich möchte nur mit dem instanziierten Objekt auf dem Desktop beschäftigen. Ich verwende Unity und Photon Network SDK. HierSendet die Spielerposition an einen anderen Spieler, um ihn im Multiplayer-Spiel mit Unity Photon zu bewegen.
ist der Code, den ich verwendet
using UnityEngine;
using System.Collections;
public class NetworkCharacter : Photon.PunBehaviour {
private Vector3 correctPlayerPos;
void Update()
{
if (!photonView.isMine)
transform.position = Vector3.Lerp(transform.position, this.correctPlayerPos, Time.deltaTime * 5);
photonView.RPC ("PrintPosition", PhotonTargets.All, transform.position);
}
void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
{
if (stream.isWriting)
{
// We own this player: send the others our data
stream.SendNext(transform.position);
}
else
{
// Network player, receive data
this.correctPlayerPos = (Vector3)stream.ReceiveNext();
}
}
[PunRPC]
void PrintPosition(Vector3 pos)
{
Debug.Log (pos);
//I need to send position coordinates to the other device
}
}
Die andere Klasse von Multiplayer-Umgebung einzurichten:
using UnityEngine;
using System.Collections;
public class NetworkManager : Photon.PunBehaviour {
// Use this for initialization
void Start() {
PhotonNetwork.ConnectUsingSettings ("0.1");
//PhotonNetwork.logLevel = PhotonLogLevel.Full;
}
void Update() {
}
void OnGUI()
{
GUILayout.Label(PhotonNetwork.connectionStateDetailed.ToString());
}
public override void OnJoinedLobby()
{
Debug.Log("join lobby!");
PhotonNetwork.JoinRandomRoom();
}
void OnPhotonRandomJoinFailed()
{
Debug.Log("Can't join random room!");
PhotonNetwork.CreateRoom(null);
}
void OnJoinedRoom()
{
Debug.Log("join random room!");
GameObject monster = PhotonNetwork.Instantiate("monsterprefab", Vector3.zero, Quaternion.identity, 0);
}
}
Danke, das ist hilfreich. –