Посмотрите снова на видео с 17: 16 !
Разница не в экземпляре, а в компонентах, к которым прикреплены созданные объекты (префабы):
MoonController
(используется Луной) против PlayerController
(используется Игроком)
В то время как MoonController
в основном ничего не делает, кроме регистрации Луны:
void Start ()
{
// Register this object to the current game controller.
// This is important so that all clients have a reference to this object.
GameController.Instance.RegisterMoon (this);
}
PlayerController
всегда устанавливается на position
и rotation
камеры в Update
метод (в этом приложении «Камера = Плеер Смартфон»).Я выделил значимые линии жирным шрифтом:
public Transform CameraTransform;
private void Start ()
{
CameraTransform = FindObjectOfType ().transform;
// Register this player to the GameController.
// Important: all clients must have a reference to this player.
GameController.Instance.RegisterPlayer (this);
// Hide your own model if you are the local client.
if (photonView.isMine)
gameObject.transform.GetChild (0).gameObject.SetActive (false);
}
void Update ()
{
// If this player is not being controlled by the local client
// then do not update its position. Each client is responsible to update
// its own player.
if (!photonView.isMine && PhotonNetwork.connected)
return;
<b>// The player should have the same transform as the camera
gameObject.transform.position = CameraTransform.position;
gameObject.transform.rotation = CameraTransform.rotation;</b>
}
}
Таким образом, в первом кадре после создания экземпляров обоих объектов объект Player уже находится в положении и повороте Камеры, в то время как Луна остается в своей точке создания * 1031.*.