相机跟随 Instantiated Photon 多人游戏
Camera follow Instantiated Photon multiplayer player
我的相机附有这个脚本:
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;
}
}
由于我的播放器是实例化的,所以我无法将预制件拖到 public 目标。
我可以在 Start 函数中输入什么来将目标设置为我的实例化播放器。它有标签 "Avatar".
我正在使用 PhotonNetwork,所以我会在一个房间里有几个播放器。
一种方法是将 Start()
修改为:
private void Start()
{
GameObject[] players = GameObject.FindAllGameObjectsWithTag("Avatar");
foreach (GameObject player in players)
{
if (PhotonView.Get(player).isMine)
{
this.target = player.transform;
break;
}
}
}
假设您的播放器 class 继承自 Photon.MonoBehaviour
(如果尚未继承)。
PhotonView.Get(player).isMine
检查网络对象是否为您的客户端所有,因此可以区分您的播放器和其他人的播放器。找到对您自己的播放器的引用后,您可以将其指定为相机的目标。
我的相机附有这个脚本:
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;
}
}
由于我的播放器是实例化的,所以我无法将预制件拖到 public 目标。 我可以在 Start 函数中输入什么来将目标设置为我的实例化播放器。它有标签 "Avatar".
我正在使用 PhotonNetwork,所以我会在一个房间里有几个播放器。
一种方法是将 Start()
修改为:
private void Start()
{
GameObject[] players = GameObject.FindAllGameObjectsWithTag("Avatar");
foreach (GameObject player in players)
{
if (PhotonView.Get(player).isMine)
{
this.target = player.transform;
break;
}
}
}
假设您的播放器 class 继承自 Photon.MonoBehaviour
(如果尚未继承)。
PhotonView.Get(player).isMine
检查网络对象是否为您的客户端所有,因此可以区分您的播放器和其他人的播放器。找到对您自己的播放器的引用后,您可以将其指定为相机的目标。