C# 目的是帮助团结?
嗯,我正在做一些事情,但我现在被卡住了。正如标题所说,这是关于射击游戏的“瞄准辅助”。我使用每帧更新的俯仰偏航移动相机。像这样:C# 目的是帮助团结?,c#,unity3d,math,C#,Unity3d,Math,嗯,我正在做一些事情,但我现在被卡住了。正如标题所说,这是关于射击游戏的“瞄准辅助”。我使用每帧更新的俯仰偏航移动相机。像这样: void Update() { float pitch -= Input.GetAxis("Mouse Y") * sensivity; float yaw += Input.GetAxis("Mouse X") * sensivity; Vector2 rot = new Vector2(pitch, yaw); cam.tranfo
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;
}
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);
}
}
我的AimAssit()方法如下所示:
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;
}
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);
}
}
要清楚,“方向”与aimsassist()相同。你所说的“在头部捕捉十字线”是什么意思?如果你是真的,你可以使用
aimTo.transform.position
,也就是匹配目标的位置,放置一个十字线,然后删除在aimsassist
方法中移动相机的逻辑OK,这太夸张了,忽略它。不管怎样,我都尽量少写。完整的代码是巨大的。但是,如果有人通过观看最基本的部分来解决我的问题,对我来说就足够了。再说一次,你想达到什么样的效果?这两个类都在试图控制你的相机,你应该为谁能控制相机以及何时控制相机定义一个标准。例如,“鼠标控制相机,但当没有鼠标移动时,相机会被拉动以自行查看目标”…@RodrigoRodrigues这两个类都是手拉手工作的,无论输入是什么,“鼠标”、“操纵杆”等都将使用“transform.eulerAngles”移动我的相机,当我瞄准目标时,AimAssist将帮助我找到目标的位置,换句话说,“在射程内(SphereCast)”。我在上面写的是我认为它可以工作的,如果有人建议我更好的东西,它对我来说将是完美的。这个想法是。。。如果我瞄准目标,而他在我的“瞄准助攻”范围内,瞄准助攻会找到他,这只是为了更好更快地瞄准目标。所以,再一次。。。从aim assist中删除所有移动相机的逻辑,只保留跟踪和查找目标的逻辑。目标的位置可以通过找到的游戏对象的变换组件来访问