我需要制作一个脚本,可以让我的主摄像机以恒定的高度和速度围绕球体飞行。我需要用c#编写它,我有点新手,所以我需要一些帮助。
到目前为止,我刚刚编写了一个绕对象旋转的脚本,但我想用WASD控制相机。
到目前为止,这是我的轨道脚本
public class CameraOrbit : MonoBehaviour
{
public GameObject target = null;
public bool orbitY = false;
void Start ()
{
}
void Update ()
{
if (target != null)
{
transform.LookAt(target.transform);
if(orbitY)
{
transform.RotateAround(target.transform.position, Vector3.up, Time.deltaTime * 10);
}
}
}
}
答案 0 :(得分:0)
您有2个选项如何执行此操作:
选项#1是你开始的方式
选项#2:您可以将相机作为球体中心节点的子节点,然后只更改此父节点的euler角度,而不是围绕球体中心旋转相机:
using UnityEngine;
public class RotateChild : MonoBehaviour
{
void Update()
{
if( Input.GetKey( KeyCode.W ) )
transform.Rotate( 1, 0, 0 );
if( Input.GetKey( KeyCode.S ) )
transform.Rotate( -1, 0, 0 );
if( Input.GetKey( KeyCode.A ) )
transform.Rotate( 0, -1, 0 );
if( Input.GetKey( KeyCode.D ) )
transform.Rotate( 0, 1, 0 );
}
}
在球体中心的节点上使用它。使相机成为这个节点的孩子。
具有比例尺5的球体:
附带脚本RotateChild的相机的父级:
这100%工作 - 我测试了它:)