Проблема с фиксацией значений для вращения объекта - Unity C # - PullRequest
0 голосов
/ 11 ноября 2018

У меня проблемы с зажатием градусов ствола, а также градусов его родителя (корпуса танка), поэтому я могу получить тот же результат, что и справа от изображения ниже.

Таким образом, скрипт прост, он вращает ствол ( turretBarrel ) с входом Y_Mouse и вращает верхнюю часть ( turret ) резервуара с входом X_Mouse вместе со стабилизацией ствола , Сценарий

   //Note this.transform is the tanks hull
  public Transform turret;
  public Transform turretBarrel;
  float xRot;
  float angleY;
  float rotY;
  float minTurretRotY;
  float maxTurretRotY;
  Vector3 mRot;
  Vector3 rot;


  public void Update(){
            xRot = Input.GetAxis("Mouse X") * 0.5f;
            turret.transform.localRotation *= Quaternion.Euler(turret.transform.localRotation.x, xRot, turret.transform.localRotation.z);

            angleY -= Input.GetAxisRaw("Mouse Y") * 0.5f;
            angleY = Mathf.Clamp(angleY, minTurretRotY, maxTurretRotY);

            mRot = turret.transform.rotation.eulerAngles;
            rot = turretBarrel.transform.rotation.eulerAngles;
            rotY = angleY;
            rotY = Mathf.Clamp(rotY, minTurretRotY, maxTurretRotY);

            // I'm using Quaternion.Euler for barrel Stabilization
            turretBarrel.transform.rotation = Quaternion.Euler(new Vector3(rotY, mRot.y, mRot.z));
            //Debug.Log(rotY +"  |  " + angleY + "/ Min : " + minTurretRotY+ " ;  Max : " + (maxTurretRotY));
}

enter image description here

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