Ну, я работаю над чем-то, но я застрял прямо сейчас. как говорит Заголовок, речь идет о «прицельной помощи» для стрельбы. Я перемещаю свою камеру, используя тангаж, обновленный каждый кадр как это:
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 ().