将相机远离Unity中的播放器

时间:2017-05-06 13:15:06

标签: c# unity3d

当我的玩家被摧毁时,我想拿相机(它是玩家的儿童对象)并将其带回层次结构。但我不知道如何让层次结构变换。

private void OnCollisionEnter(Collision col)
    {
        if (col.gameObject.CompareTag("Player")) // player collision with the obstacle
        {
            ReplaceCamera(); // Take the camera away from the player
            Destroy(col.gameObject); // Destroy the player
        }
    }

    void ReplaceCamera()
    {
        Camera.main.transform.SetParent(?); // Set the camera as a child of the hierarchy
    }

我只是不知道将什么作为我的ReplaceCamera方法的参数传递。

1 个答案:

答案 0 :(得分:2)

将转换父级设置为null会将其置于层次结构的根目录中

    void ReplaceCamera()
    {
        Camera.main.transform.SetParent(null);
    }

稍后当/如果新玩家产生你可以通过将变换设置为玩家的孩子而将相机添加回产生的玩家时,你可以使用此功能同时执行这两个操作,如果你将它设置为玩家供应一个。

    void ReplaceCamera(Transform player = null)
    {
        Camera.main.transform.SetParent(player);
    }

// Usage Examples
    ReplaceCamera(); // will send it to the root
    ReplaceCamera(player); // will send it to be part of the player again.