有没有办法让相机在游戏中跟随不同的游戏对象? C# 2d

Is there a way to make a camera follow a different GameObject in game? c# 2d

我已经有了跟随玩家的统一默认相机。但我希望它在一个角色和另一个角色之间切换,具体取决于我激活的是哪个角色。到目前为止我只有...

using UnityEngine;
using System.Collections;

public class cameraFollow : MonoBehaviour {

public Transform player;
public Transform player2;

void Update () 
{
    transform.position = new Vector3 (player.position.x + .5f, player.position.y + .55f, -7.2f);
    }
    if(Input.GetKeyDown(KeyCode.Space)){
    //switch to player2
    }
}

有没有办法做到这一点或我应该专注于学习做那件事或其他什么?谢谢

首先,您的代码似乎无法编译,因为 if 语句位于可以执行它的任何块之外。仔细检查您的括号并相应地缩进您的代码。

要实现您想要的效果,请执行以下操作。添加一个 else 块,将您当前的关注代码移到那里,并在已经存在的 if 块中添加另一个对象的关注代码:

if (Input.GetKeyDown(KeyCode.Space)) {
    transform.position = new Vector3(player2.position.x + .5f, player2.position.y + .55f, -7.2f);
}
else {
    transform.position = new Vector3(player.position.x + .5f, player.position.y + .55f, -7.2f);
}

确保在 Update 方法中获取上述所有代码。

您可能还想考虑摆脱幻数,例如 .5f.55f-7.2f,并用命名合理的变量替换它们。例如,var offset = new Vector3(.5f, .55f, -7.2f) 可能没问题。

作为一般性建议,首先总体上提高您的编程技能会有所帮助。我怀疑在创建游戏的同时学习是保持积极性的好方法,但与此同时,您将 运行 遇到这样的问题,如果您对一般编程更熟悉的话,这些问题很容易避免.不过,学习方法没有错,所以如果这对您来说是个好方法,那就去做吧!

NVM 我知道了。感谢 Xying 让我开始编写非常重要的代码。现在是代码。

using UnityEngine;
using System.Collections;

public class cameraFollow : MonoBehaviour {

public Transform player;
public Transform player2;
private bool idleFollow = true;
private bool mountFollow = false;

void Update ()
{
    if (!mountFollow && idleFollow && Input.GetKeyDown (KeyCode.Space)) 
    {
        mountFollow = true;
        idleFollow = false;
        return;
    }

    if (mountFollow && !idleFollow && Input.GetKeyDown(KeyCode.Space))
    {
        idleFollow = true;
        mountFollow = false;
        return;
    }

    if (idleFollow && !mountFollow) 
    {
        transform.position = new Vector3 (player.position.x + .5f, player.position.y + .55f, -7.2f);
    }

    if (mountFollow && !idleFollow)
    {
        transform.position = new Vector3 (player2.position.x + .5f, player2.position.y + .55f, -7.2f);
    }
}

}