关于c#:相机跟随实例化的光子多人播放器

Camera follow Instantiated Photon multiplayer player

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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,所以一个房间里将有几个播放器。


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

1
2
3
4
5
6
7
8
9
10
11
12
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检查网络对象是否归您的客户端所有,因此可以区分您的播放器和另一个人的播放器。找到对您自己的播放器的引用后,可以将其指定为摄像机的目标。