前後矢印キーですすみ、左右矢印キーで回転して、向いてる方向に進むようにしました。
しかし、カメラをプレイヤーの子オブジェクトにしているので、後ろ矢印キーが押された
瞬間に180度回転して今向いていた方向と反対の向き(つまり後ろ)に向かせると、カメ
ラも回転してしまいます。つまり、右左に回転するとき以外は、カメラが回転しないようにしたいのです。
スクリプト
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Locomotion2 : MonoBehaviour {
//十字キーのみで操作(上下矢印キー=前後,左右矢印キー=回転) //CharacterControllerが必要 public float speed = 6.0F; //歩行速度 public float jumpSpeed = 8.0F; //ジャンプ力 public float gravity = 20.0F; //重力の大きさ public float rotateSpeed = 3.0F; //回転速度 private CharacterController controller; private Vector3 moveDirection = Vector3.zero; private float h,v; // Use this for initialization void Start () { controller = GetComponent<CharacterController>(); }//Start() // Update is called once per frame void Update () { h = Input.GetAxis ("Horizontal"); //左右矢印キーの値(-1.0~1.0) v = Input.GetAxis ("Vertical"); //上下矢印キーの値(-1.0~1.0) if (controller.isGrounded) { gameObject.transform.Rotate (new Vector3 (0, rotateSpeed * h, 0)); moveDirection = speed * v * gameObject.transform.forward; if (Input.GetButton("Jump")) moveDirection.y = jumpSpeed; } moveDirection.y -= gravity * Time.deltaTime; controller.Move(moveDirection * Time.deltaTime); }//Update()
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/08/17 02:05
2021/08/17 03:34
退会済みユーザー
2021/08/17 10:17