好吧,我正在做某事,但是我现在陷入困境。正如Title所说,这是射击游戏的“目标辅助”。我使用每帧更新的俯仰偏航来移动相机。像这样:
void Update()
{
float pitch -= Input.GetAxis("Mouse Y") * sensivity;
float yaw += Input.GetAxis("Mouse X") * sensivity;
Vector2 rot = new Vector2(pitch, yaw);
cam.tranform.eulerAngles = rot;
}
我的AimAssit()方法如下:
void AimAssist(float weaponRange)
{
RaycastHit hit;
if (Physics.SphereCast(cam.transform.position, radiusDetection, cam.transform.forward, out hit, weaponRange, 1 << LayerMask.NameToLayer("Shootable"))
{
GameObject aimTo = hit.transform.gameObject;
Vector3 direction = aimTo.transform.position - cam.transform.position;
cam.transform.rotation = Quaternion.Slerp(cam.transform.rotation, Quaternion.LookRotation(direction), .1f);
}
}
所以,问题是他们不能一起工作,这是一团糟。我知道其中一个使用度数,而另一个使用角度,这很令人困惑。换句话说,我需要的是将十字准线捕捉到头部,并且仍然可以用鼠标很好地移动。预先感谢。
顺便说一句,我做到了,但这没用:
Vector2 aim = new Vector2(Quaternion.LookRotation(direction).eulerAngles.x, Quaternion.LookRotation(direction).eulerAngles.y);
CamTransform().eulerAngles = currentRotation + (Vector2)aim;
为清楚起见,“方向”与AimAssist()相同。