我的相机中有一个跟随我的主要角色的剧本,这是剧本:
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并在几秒钟后将跟随行为返回给我的角色时发生这种情况。
答案 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