相机跟随实例化的光子多人播放器

时间:2018-11-08 06:03:14

标签: c# unity3d photon

我已将此脚本附加到相机上

public class CameraFollow : MonoBehaviour {

    public Transform target;

    public float smoothSpeed = 0.125f;
    public Vector3 offset;

    private void Start()
    {
        target = ?        
    }

    private void LateUpdate()
    {
        transform.position = target.position + offset;
    }
}

由于我的播放器被实例化,所以我不能将预制件拖到公共目标上。 我可以在开始功能中键入什么,将目标设置为我的实例化播放器。它带有标签“ Avatar”。

我正在使用PhotonNetwork,所以一个房间里将有几个播放器。

1 个答案:

答案 0 :(得分:1)

一种方法是将Start()修改为:

private void Start()
{
    GameObject[] players = GameObject.FindAllGameObjectsWithTag("Avatar");
    foreach (GameObject player in players)
    {
        if (PhotonView.Get(player).isMine)
        {
            this.target = player.transform;
            break;
        }
    }
}

这是假设您的播放器类从Photon.MonoBehaviour继承而来的。

PhotonView.Get(player).isMine检查网络对象是否归您的客户端所有,因此可以区分您的播放器和另一个人的播放器。找到对您自己的播放器的引用后,您可以将其指定为摄像机的目标。