Я следую инструкциям основного урока PUN. На данный момент я добираюсь до части того, что хочу Отправьте свою позицию в текущее время другому игроку со мной в комнату, чтобы переместить его. Я могу печатать свою позицию каждый раз, когда я ее обновляю, мне нужно знать, как я могу отправить позицию другому игроку, чтобы переместить его. Предположим, у меня есть рабочий стол, и когда я перемещаю его, этот перевод перемещается на мобильном устройстве. И как остановить экземпляр объекта на мобильном телефоне, я просто хочу иметь дело с экземпляром объекта на рабочем столе. Я использую единство и SDK Photon Network.Отправьте позицию игрока другому игроку, чтобы переместить его в многопользовательскую игру, используя Unity Photon
Вот код, который я использовал
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
}
}
Другой класс создать многопользовательскую среду:
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);
}
}
Спасибо, это полезно. –