Platyerを動かす(インプットシステム)



Playerを動かす
using System.IO;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
private CharacterController controller;
private InputSystem_Actions isa;
public GameObject cameraC;
public float speed;
private Vector3 moveDir = Vector3.zero;
private float gravity = 20.0f;
private float jumpPower = 15.0f;
private float verticalVelocity;
void Start()
{
isa = new InputSystem_Actions();
isa.Enable();
controller = GetComponent<CharacterController>();
}
void Update()
{
if (!controller.enabled)
{
return;
}
// 接地判定(空中ジャンプは禁止)
if (controller.isGrounded)
{
verticalVelocity = -0.5f;
// ジャンプ
if (isa.Player.Jump.triggered)
{
verticalVelocity = jumpPower;
}
}
else
{
verticalVelocity -= gravity * Time.deltaTime;
}
// 前後・左右の移動
Vector2 movement2 = isa.Player.Move.ReadValue<Vector2>();
Vector3 movement3 = new Vector3(movement2.x, 0, movement2.y);
Vector3 desiredMove = cameraC.transform.forward * movement3.z + cameraC.transform.right * movement3.x;
moveDir.x = desiredMove.x * 3f;
moveDir.z = desiredMove.z * 3f;
moveDir.y -= gravity * Time.deltaTime;
// 最終的な移動ベクトル
Vector3 finalMove = moveDir * speed;
finalMove.y = verticalVelocity;
controller.Move(finalMove * Time.deltaTime);
}
}





Playerを動かす
using System.IO;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
private CharacterController controller;
private InputSystem_Actions isa;
public GameObject cameraC;
public float speed;
private Vector3 moveDir = Vector3.zero;
private float gravity = 20.0f;
private float jumpPower = 15.0f;
private float verticalVelocity;
void Start()
{
isa = new InputSystem_Actions();
isa.Enable();
controller = GetComponent<CharacterController>();
}
void Update()
{
if (!controller.enabled)
{
return;
}
// 接地判定(空中ジャンプは禁止)
if (controller.isGrounded)
{
verticalVelocity = -0.5f;
// ジャンプ
if (isa.Player.Jump.triggered)
{
verticalVelocity = jumpPower;
}
}
else
{
verticalVelocity -= gravity * Time.deltaTime;
}
// 前後・左右の移動
Vector2 movement2 = isa.Player.Move.ReadValue<Vector2>();
Vector3 movement3 = new Vector3(movement2.x, 0, movement2.y);
Vector3 desiredMove = cameraC.transform.forward * movement3.z + cameraC.transform.right * movement3.x;
moveDir.x = desiredMove.x * 3f;
moveDir.z = desiredMove.z * 3f;
moveDir.y -= gravity * Time.deltaTime;
// 最終的な移動ベクトル
Vector3 finalMove = moveDir * speed;
finalMove.y = verticalVelocity;
controller.Move(finalMove * Time.deltaTime);
}
}


Platyerを動かす(インプットシステム)