1

UnityとC#を学んでいます。

Xbox パッドの左右のサムスティックを使用して、トップ ビュー シューティング ゲームを作成しようとしています。私のキャラクターは、左のサムスティックで x 軸と z 軸上を正しく動きます。しかし、右のサムスティックを使用した y 軸での銃の回転は正しく機能せず、角度 (45°、135°、225°、315°) で動かなくなります。スムーズな回転が出来ない..

using UnityEngine;
using System.Collections;

CharacterMotor controller;
public Transform player_turret;
public float deadzone = 0.25f;
private Quaternion desireRotation;

void  Update (){
    CharacterController controller = GetComponent<CharacterController>();
    moveDirection = new Vector3(Input.GetAxis("Horizontal")*speed*Time.deltaTime, 
                                0, 
                                Input.GetAxis("Vertical")*speed*Time.deltaTime);
    moveDirection = transform.TransformDirection(moveDirection);
    controller.Move(moveDirection);

    //right stick dead zone
    Vector2 shootDirection = new Vector2(Input.GetAxis("FireHorizontal"),     
                                         Input.GetAxis("FireVertical"));
    if(shootDirection.magnitude < deadzone){
        shootDirection = Vector2.zero;
    }else
    {
        Vector3 shootRotation = new Vector3(shootDirection.x, 0, shootDirection.y);
        desireRotation = Quaternion.LookRotation(shootRotation);
        player_turret.rotation = desireRotation;
        if((Time.time >= nextFireTime) && Input.GetButton("Button A")){
            FireProjectile();
        }
    }
}
4

0 に答える 0