プレーヤーの動きを改良する
![5bb410e8 3370 466f 92ff 15f62519484c](https://codegenius.org/uploads/slide/image/2906/5bb410e8-3370-466f-92ff-15f62519484c.jpeg)
![B6270e0f 3b13 4cf1 8c3f b88530a878d5](https://codegenius.org/uploads/slide/image/2907/b6270e0f-3b13-4cf1-8c3f-b88530a878d5.jpeg)
プレーヤーの動きの改良
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace FPS{
public enum PlayerState{
Idle, Walking, Running, Jumping
}
[RequireComponent(typeof(CharacterController), typeof(AudioSource))]
public class PlayerController : MonoBehaviour {
[Range(0.1f, 2f)]
public float walkSpeed = 1.5f;
[Range(0.1f, 10f)]
public float runSpeed = 3.5f;
private CharacterController charaController;
// ★追加
private GameObject FPSCamera;
private Vector3 moveDir = Vector3.zero;
void Start () {
// ★追加
FPSCamera = GameObject.Find("FPSCamera");
charaController = GetComponent<CharacterController> ();
}
void Update () {
Move ();
}
void Move(){
float moveH = Input.GetAxis ("Horizontal");
float moveV = Input.GetAxis ("Vertical");
Vector3 movement = new Vector3 (moveH, 0, moveV);
if (movement.sqrMagnitude > 1) {
movement.Normalize ();
}
// ★追加
Vector3 desiredMove = FPSCamera.transform.forward * movement.z + FPSCamera.transform.right * movement.x;
moveDir.x = desiredMove.x * 5f;
moveDir.z = desiredMove.z * 5f;
// ★修正
if (Input.GetKey (KeyCode.LeftShift)) {
charaController.Move (moveDir * Time.fixedDeltaTime * runSpeed);
} else {
charaController.Move (moveDir * Time.fixedDeltaTime * walkSpeed);
}
}
}
}
![E5851488 c725 48f5 86ef e37a20233f34](https://codegenius.org/uploads/slide/image/2908/e5851488-c725-48f5-86ef-e37a20233f34.jpeg)
EscapeCombat
他のコースを見る![5bb410e8 3370 466f 92ff 15f62519484c](https://codegenius.org/uploads/slide/image/2906/5bb410e8-3370-466f-92ff-15f62519484c.jpeg)
![B6270e0f 3b13 4cf1 8c3f b88530a878d5](https://codegenius.org/uploads/slide/image/2907/b6270e0f-3b13-4cf1-8c3f-b88530a878d5.jpeg)
プレーヤーの動きの改良
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace FPS{
public enum PlayerState{
Idle, Walking, Running, Jumping
}
[RequireComponent(typeof(CharacterController), typeof(AudioSource))]
public class PlayerController : MonoBehaviour {
[Range(0.1f, 2f)]
public float walkSpeed = 1.5f;
[Range(0.1f, 10f)]
public float runSpeed = 3.5f;
private CharacterController charaController;
// ★追加
private GameObject FPSCamera;
private Vector3 moveDir = Vector3.zero;
void Start () {
// ★追加
FPSCamera = GameObject.Find("FPSCamera");
charaController = GetComponent<CharacterController> ();
}
void Update () {
Move ();
}
void Move(){
float moveH = Input.GetAxis ("Horizontal");
float moveV = Input.GetAxis ("Vertical");
Vector3 movement = new Vector3 (moveH, 0, moveV);
if (movement.sqrMagnitude > 1) {
movement.Normalize ();
}
// ★追加
Vector3 desiredMove = FPSCamera.transform.forward * movement.z + FPSCamera.transform.right * movement.x;
moveDir.x = desiredMove.x * 5f;
moveDir.z = desiredMove.z * 5f;
// ★修正
if (Input.GetKey (KeyCode.LeftShift)) {
charaController.Move (moveDir * Time.fixedDeltaTime * runSpeed);
} else {
charaController.Move (moveDir * Time.fixedDeltaTime * walkSpeed);
}
}
}
}
![E5851488 c725 48f5 86ef e37a20233f34](https://codegenius.org/uploads/slide/image/2908/e5851488-c725-48f5-86ef-e37a20233f34.jpeg)
プレーヤーの動きを改良する