최소한의 구성 요소로 간단한 게임 프로젝트 준비
최소한의 요소로 구성된 프로젝트를 준비했습니다.
원래 프로젝트에서 작업하면 다른 요소가 방해가 되거나 버그의 원인을 파악하기 어려울 수 있기 때문입니다.
이 환경에서 할 수 있는 내용은 다음과 같습니다.
향후 3D 게임의 내용에 관해서, 이 프로젝트에 추가해 나가는 형태로 학습한 것을 아웃풋 해 가려고 생각하고 있습니다.
Player.cs
public class Player : MonoBehaviour
{
public float m_Speed = 6f; // 移動速度
Animator m_Animator;
Rigidbody m_Rigidbody;
Vector3 m_Movement;
void Awake ()
{
m_Animator = GetComponent<Animator> ();
m_Rigidbody = GetComponent<Rigidbody> ();
}
void FixedUpdate ()
{
// キー入力の取得
float h = Input.GetAxisRaw ("Horizontal");
float v = Input.GetAxisRaw ("Vertical");
// キー入力からベクトルを設定する
m_Movement.Set (h, 0f, v);
Move ();
Turn ();
Animate ();
}
private void Move ()
{
// ベクトルから移動量を取得する
m_Movement = m_Movement.normalized * m_Speed * Time.deltaTime;
m_Rigidbody.MovePosition (transform.position + m_Movement);
}
private void Turn ()
{
// 移動中でなければ回転処理は行わない
if (!isRunning ())
// NOP.
return;
// ベクトルから回転方向を取得する
Quaternion targetRotation = Quaternion.LookRotation (m_Movement);
// 回転処理
transform.rotation = Quaternion.RotateTowards (transform.rotation, targetRotation, 360.0f * Time.deltaTime);
}
private void Animate ()
{
// 走るアニメーションの有効、無効化
m_Animator.SetBool ("Running", isRunning ());
}
private bool isRunning ()
{
// ベクトルの長さでキャラクターが移動中か判断する
return m_Movement.magnitude != 0f;
}
}
CameraController.cs
public class CameraController : MonoBehaviour {
public Transform m_Target; // カメラの追尾対象(プレイヤー)の位置
public float m_Smoothing = 5f; // カメラの追尾速度
private Vector3 offset; // カメラからm_Targetまでの距離、
// カメラは常にプレイヤーからoffset分の距離を保つことになる
void Start ()
{
// プレイヤーの初期位置からoffsetを初期化する
offset = transform.position - m_Target.position;
}
void FixedUpdate ()
{
// プレイヤーの位置から追尾後のカメラ位置を算出する
Vector3 targetCamPos = m_Target.position + offset;
// プレイヤーの位置を元にカメラを移動させる
transform.position = Vector3.Lerp (transform.position, targetCamPos, m_Smoothing * Time.deltaTime);
}
}
소스 코드는 GitHub에 업로드 중입니다.
적(장애물) 추가 에 계속됩니다.
Reference
이 문제에 관하여(최소한의 구성 요소로 간단한 게임 프로젝트 준비), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hanadaUG/items/e233d84dce1df668ad2a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)