C# 统一摄像机切换问题?
大家好,我正在做一个炮弹模式,玩家将有一个UI面板,看起来像一个狙击屏幕。这台摄像机将跟随敌人,而在常规游戏中,有另一台摄像机用于正常游戏模式(这台摄像机保持在位)。然而,当我在两者之间切换时,当我以“E”退出时,无论加农炮摄影机移动到哪里,它都会停留在移动的位置。是否有任何方法可以手动将摄像头的位置恢复到原位C# 统一摄像机切换问题?,c#,unity3d,camera,C#,Unity3d,Camera,大家好,我正在做一个炮弹模式,玩家将有一个UI面板,看起来像一个狙击屏幕。这台摄像机将跟随敌人,而在常规游戏中,有另一台摄像机用于正常游戏模式(这台摄像机保持在位)。然而,当我在两者之间切换时,当我以“E”退出时,无论加农炮摄影机移动到哪里,它都会停留在移动的位置。是否有任何方法可以手动将摄像头的位置恢复到原位 公共类摄像机跟随:单一行为 { 公共转型目标; 公共浮动平滑速度=0.125f; 公共矢量3偏移量; 公共游戏对象范围覆盖; 公共游戏机; 无效固定更新() { if(Input.Get
公共类摄像机跟随:单一行为
{
公共转型目标;
公共浮动平滑速度=0.125f;
公共矢量3偏移量;
公共游戏对象范围覆盖;
公共游戏机;
无效固定更新()
{
if(Input.GetKeyDown(“d”))
{
Camera.SetActive(假);
scopeOverlay.SetActive(true);
矢量3所需位置=目标位置+偏移量;
Vector3平滑位置=Vector3.Lerp(transform.position,desiredPosition,smoothSpeed);
transform.position=平滑位置;
transform.LookAt(目标);
}
if(Input.GetKeyDown(“e”))
{
Camera.SetActive(真);
scopeOverlay.SetActive(false);//禁用它
}
}
}
保存初始转换值,并按此方式恢复它们
private Vector3 initialPosition;
private Quaternion initialRotation;
private void Start ()
{
// Save initial transform values
initialPosition = transform.position;
initialRotation = transform.rotation;
}
void FixedUpdate ()
{
if (Input.GetKeyDown("d"))
{
Camera.SetActive(false);
scopeOverlay.SetActive(true);
Vector3 desiredPosition = target.position + offset;
Vector3 smoothedPosition = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed);
transform.position = smoothedPosition;
transform.LookAt(target);
}
if (Input.GetKeyDown("e"))
{
// Restore transform values
transform.position = initialPosition;
transform.rotation = initialRotation;
Camera.SetActive(true);
scopeOverlay.SetActive(false); //To disable it
}
}
保存初始变换值并按此方式恢复它们
private Vector3 initialPosition;
private Quaternion initialRotation;
private void Start ()
{
// Save initial transform values
initialPosition = transform.position;
initialRotation = transform.rotation;
}
void FixedUpdate ()
{
if (Input.GetKeyDown("d"))
{
Camera.SetActive(false);
scopeOverlay.SetActive(true);
Vector3 desiredPosition = target.position + offset;
Vector3 smoothedPosition = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed);
transform.position = smoothedPosition;
transform.LookAt(target);
}
if (Input.GetKeyDown("e"))
{
// Restore transform values
transform.position = initialPosition;
transform.rotation = initialRotation;
Camera.SetActive(true);
scopeOverlay.SetActive(false); //To disable it
}
}