/// <summary> /// 设置相机的初始位置并设置其跟随的目标 /// 在Editor中调整好相机的位置,记录其rotation的x和y /// </summary> /// <param name="t">目标</param> /// <param name="distance">和目标的距离</param> /// <param name="angleX">相机rotation的x</param> /// <param name="angleY">相机rotation的y</param> public void SetFollow(Transform t, float distance = 10, float angleX = 50, float angleY = 135) { target = t; //向左转 Vector3 targetDir = Quaternion.AngleAxis(-angleY, Vector3.up) * Vector3.right; Vector3 right = Quaternion.AngleAxis(90 - angleY, Vector3.up) * Vector3.right; //向上转 targetDir = Quaternion.AngleAxis(-angleX, right) * targetDir; m_offset = distance * targetDir.normalized + ConstantDefine.playerHeadPosition; transform.position = target.position + m_offset; transform.LookAt(target); m_cameraMoveMethod = Follow; }