将相机跟随角色从我的角色切换到另一个对象

时间:2018-07-25 15:08:57

标签: c# unity3d

我的相机中有一个跟随我的主要角色的剧本,这是剧本:

public class CameraFollow : MonoBehaviour {

    public Transform target; // this is my player

    public float smoothing;

    Vector3 offset;
    float lowy;

    // Use this for initialization
    void Start () {
        offset = transform.position - target.position;
        lowy = transform.position.y;
    }

    // Update is called once per frame
    void FixedUpdate () {
        Vector3 targetcampos = target.position + offset;
        transform.position = Vector3.Lerp(transform.position, targetcampos, smoothing * Time.deltaTime);

    }
}

我想知道我的相机跟随脚本如何临时切换到一个对象(我的对象是一块滚石)。我计划在我的对象(岩石)进入另一个对象的collider2d并在几秒钟后将跟随行为返回给我的角色时发生这种情况。

1 个答案:

答案 0 :(得分:2)

总结:当岩石进入对撞机时,对撞机会将摄影机目标设置为另一个变换。

空触发器对撞机上的脚本

CameraFollow m_MainCamera;

void Start()
{
    m_MainCamera = Camera.main.GetComponent<CameraFollow>();    
}

OnTriggerEnter(collider coll)
{
    if(coll.gameObject.tag == "rock")
    {
        m_MainCamera.SwapTargetTo(coll.transform);
    }       
}

注意:记住要给岩石加上标签!

现在将相机脚本更新为:

public Transform player;
public Transform target;

void Start()
{
    target = player;
}

void SwapTargetTo(Transform newTarget)
{
    target = newTarget;
}

当进入另一个空对撞机,执行相同的操作或制作协程以检查时间时,您可以根据需要交换目标!

编辑:如果您想要精美的东西,请尝试CameraMachine! :D