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();
}
}
}