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,所以一个房间里将有几个播放器。
- 这将取决于您要跟随摄像机的播放器。如果是您的玩家而不是其他角色,那么将目标设置为您的角色应该很容易。无需在启动函数中调用目标,而是等待角色生成。角色生成时会有一些回调。当它生成时,您可以分配摄像机目标并启动摄像机移动功能。我以前没有使用过光子,但是很久以前使用ulink进行了一些联网。
-
我们等待角色产生
-
一种方法是将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检查网络对象是否归您的客户端所有,因此可以区分您的播放器和另一个人的播放器。找到对您自己的播放器的引用后,可以将其指定为摄像机的目标。
-
一种方法是将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检查网络对象是否归您的客户端所有,因此可以区分您的播放器和另一个人的播放器。找到对您自己的播放器的引用后,可以将其指定为摄像机的目标。
-
一种方法是将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检查网络对象是否归您的客户端所有,因此可以区分您的播放器和另一个人的播放器。找到对您自己的播放器的引用后,可以将其指定为摄像机的目标。
一种方法是将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检查网络对象是否归您的客户端所有,因此可以区分您的播放器和另一个人的播放器。找到对您自己的播放器的引用后,可以将其指定为摄像机的目标。