在游戏中改变角色镜头

本文关键字:角色 改变 游戏 | 更新日期: 2023-09-27 18:09:45

///问题:如何在不出现bug的情况下改变其他玩家的镜头

所以我有一段代码,将变量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,则镜头移动到player,但如果它为1,则镜头移动到player2。所以ChangeCharacter方法只在游戏开始时使用1次,但如果我将代码从ChangeCharacter()移动到lateUpdate(),它会工作,但在它停止之前会多次改变相机,如果它在ChangeCharacter()方法中,我从lateUpdate()调用它,它只适用于第一个玩家。

在游戏中改变角色镜头

将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;

的更新方法,因为我不需要另一个,它的工作。

PS:明天再检查一下。