オリジナルキャラを操作する

プレーヤーを操作する
using UnityEngine;
// ★追加
using Photon.Pun;
public class PlayerController : MonoBehaviourPunCallbacks // ★変更
{
private CharacterController controller;
private Vector3 moveDir = Vector3.zero;
private float gravity = 20f;
private float verticalVelocity;
public float speed;
public float jumpPower;
void Start()
{
controller = GetComponent<CharacterController>();
}
void Update()
{
if (!photonView.IsMine)
{
return;
}
// ジャンプ
// Skin widthを0.2 Max Move Distanceを0にする(ポイント)
// キャラクターが浮く場合、CharacterControllerのCenterYを1.2にする(ポイント)
if (controller.isGrounded)
{
verticalVelocity = -0.5f;
if (InputManager.isa.Player.Jump.triggered)
{
verticalVelocity = jumpPower;
}
}
else
{
verticalVelocity -= gravity * Time.deltaTime;
}
// 前後・左右の移動
Vector2 movement2 = InputManager.isa.Player.Move.ReadValue<Vector2>();
Vector3 movementV = new Vector3(0, 0, movement2.y).normalized;
Vector3 movementH = new Vector3(movement2.x, 0, 0).normalized;
Vector3 forward = Camera.main.transform.forward;
forward.y = 0;
Vector3 right = Camera.main.transform.right;
moveDir = forward * movementV.z + right * movementH.x;
// キャラクターの向きの調整
if (moveDir.magnitude >= 0.1f)
{
transform.rotation = Quaternion.LookRotation(moveDir);
}
Vector3 finalMove = moveDir * speed;
finalMove.y = verticalVelocity;
// 最終的にこのコードで実際にキャラクターを動かす
if (controller.enabled)
{
controller.Move(finalMove * Time.deltaTime);
}
}
}







【Unity6版】BattleOnline(全38回)
他のコースを見る
プレーヤーを操作する
using UnityEngine;
// ★追加
using Photon.Pun;
public class PlayerController : MonoBehaviourPunCallbacks // ★変更
{
private CharacterController controller;
private Vector3 moveDir = Vector3.zero;
private float gravity = 20f;
private float verticalVelocity;
public float speed;
public float jumpPower;
void Start()
{
controller = GetComponent<CharacterController>();
}
void Update()
{
if (!photonView.IsMine)
{
return;
}
// ジャンプ
// Skin widthを0.2 Max Move Distanceを0にする(ポイント)
// キャラクターが浮く場合、CharacterControllerのCenterYを1.2にする(ポイント)
if (controller.isGrounded)
{
verticalVelocity = -0.5f;
if (InputManager.isa.Player.Jump.triggered)
{
verticalVelocity = jumpPower;
}
}
else
{
verticalVelocity -= gravity * Time.deltaTime;
}
// 前後・左右の移動
Vector2 movement2 = InputManager.isa.Player.Move.ReadValue<Vector2>();
Vector3 movementV = new Vector3(0, 0, movement2.y).normalized;
Vector3 movementH = new Vector3(movement2.x, 0, 0).normalized;
Vector3 forward = Camera.main.transform.forward;
forward.y = 0;
Vector3 right = Camera.main.transform.right;
moveDir = forward * movementV.z + right * movementH.x;
// キャラクターの向きの調整
if (moveDir.magnitude >= 0.1f)
{
transform.rotation = Quaternion.LookRotation(moveDir);
}
Vector3 finalMove = moveDir * speed;
finalMove.y = verticalVelocity;
// 最終的にこのコードで実際にキャラクターを動かす
if (controller.enabled)
{
controller.Move(finalMove * Time.deltaTime);
}
}
}







オリジナルキャラを操作する