私は、最も単純な物理学 (重力で落下、左右に移動、および (おそらく) ジャンプ) を備えた最も単純なプラットフォーマーのプロトタイプを作成しようとしています。例えば:
void Move () {
if (!isDying || !isDead || !isShooting || !isFalling)
{
float amountToMove = Time.deltaTime * Input.GetAxis("Horizontal") * playerSpeed;
transform.Translate(Vector3.right * amountToMove);
}
}
void ApplyGravity() {
float amountToMove = Time.deltaTime * gravity;
transform.Translate(Vector3.down * amountToMove);
}
問題は、物理学を使用せずに isKinematic を有効にして衝突させる方法がわからないことです。私が知っている唯一のことは、OnTriggerEnter 関数を使用することです。そのため、すべてのオブジェクトに isTrigger を追加して (Hero.cs) を記述しました。
void OnTriggerEnter (Collider otherGameObjectCollider) {
if (otherGameObjectCollider.gameObject.tag == "ground") {
Debug.Log("ground/wall collision");
}
}
地面を通り抜ける(歩く)のを防ぐためにヒーローを止める必要があることは知っていますが、本当に考えられません。
ばかげた質問で申し訳ありません。