Цель Помочь в Единстве? - PullRequest
0 голосов
/ 03 июля 2018

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

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 ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...