///问题:如何在没有错误的情况下将相机更改为其他播放器
所以我有一段代码,它将变量selecterChar从0更改为1,或者每次用户按下'E'时反转,并且效果很好。这是一个不同的脚本,我使用此代码访问此脚本
private void ChangeCharacter()
{
GameObject thePlayer = GameObject.Find("Walk (1)");
PlayerMovement playerMovemnt = thePlayer.GetComponent<PlayerMovement>();
int selectedCharacter = playerMovemnt.selectedChar;
selCharacter = selectedCharacter;
}
现在,此脚本的其他部分用于相机。我想用这个改变相机
private void Start()
{
offset = transform.position - player.transform.position;
offset = transform.position - player2.transform.position;
}
private void LateUpdate()
{
if (selCharacter == 0)
{
transform.position = player.transform.position + offset;
}
else
{
transform.position = player2.transform.position + offset;
}
}
因此,如果selCharacter(在此脚本的开头声明)为0,则摄像机移动到播放器,但如果它是1则转到播放器2。所以ChangeCharacter方法在游戏开始时只使用了一次但是如果我将代码从ChangeCharacter()移动到lateUpdate()它可以工作,但是在它停止之前多次更改相机并且如果它在ChangeCharacter()方法中并且我从LateUpdate()调用它,它仅适用于第一个播放器。
答案 0 :(得分:0)
将Input.GetKey(KeyCode.E)更改为Input.GetKeyDown(KeyCode.E),然后添加此
GameObject thePlayer = GameObject.Find("Walk (1)");
PlayerMovement playerMovemnt = thePlayer.GetComponent<PlayerMovement>();
int selectedCharacter = playerMovemnt.selectedChar;
selCharacter = selectedCharacter;
到Update方法,因为我不需要另一个,它工作。
PS:明天会检查它。