
Camera相机prefab结构

每一个层级物体对于摄像机的影响作用

下面是源码
[SerializeField]
private Transform CameraUpAndDown;
[SerializeField]
private Transform CameraZoomContainer;
[SerializeField]
private Transform CameraContainer;
public static CameraCtrl _Instance;
// Start is called before the first frame update
void Awake()
{
_Instance = this;
CameraUpAndDown = transform.Find("CameraUpAndDown").transform;
CameraZoomContainer = UnityHelp.FindtheChildNode(this.gameObject, "CameraZoomContainer");
CameraContainer = UnityHelp.FindtheChildNode(this.gameObject, "CameraContainer");
}
public void Init()
{
CameraUpAndDown.localEulerAngles = new Vector3(Mathf.Clamp(CameraUpAndDown.localEulerAngles.z, 30f, 80f), 0, 0);
}
public void SetCameraRotate(int type)
{
transform.Rotate(0, 50 * Time.deltaTime * (type == 0 ? -1 : 1), 0);
}
public void SetCameraUpAndDown(int type)
{
CameraUpAndDown.Rotate(80 * Time.deltaTime * (type == 0 ? -1 : 1), 0, 0);
CameraUpAndDown.localEulerAngles = new Vector3(Mathf.Clamp(CameraUpAndDown.localEulerAngles.x, 3f, 80f), 0, 0);
}
public void SetCameraZoom(int type)
{
CameraContainer.Translate(Vector3.forward * 10 * Time.deltaTime * (type == 0 ? -1 : 1));
CameraContainer.localPosition = new Vector3(0, 0, Mathf.Clamp(CameraContainer.localPosition.z, -20f, -2f));
}
public void AutoLookAt(Vector3 pos)
{
CameraZoomContainer.LookAt(pos);
}
网友评论