現在Unityで3Dアクションゲーム内で鉄球が落ちてくるシーンを作成しています。
やりたいことは鉄球にPlayerが当たると、ダメージアニメーションを呼び出してPlayerの動き(Position)を一定時間止めることです。
PlayerはCharacterControllerを使用して制御をしています。Player自身にRigidbodyを付けれないため、空オブジェクトを作成してPlayerの子要素として、それにRigidbodyとCapsuleColliderを付けています。
その空オブジェクトに鉄球の当たり判定があった時にアニメーションの呼び出しと動きの一時停止をさせたいです。(PlayerにOnControllerColliderHitを付ける方法はダメでした・・)
アニメーションの呼び出しは以下のコードで、PlayerのAnimationを取得して動かすことができました。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Trapcol : MonoBehaviour {//インスペクターにPlayerを格納 public Animator anim; //当たり判定 void OnTriggerEnter(Collider collider) {//トラップタグをもつオブジェクトへ当たった時 if (collider.gameObject.CompareTag("Trap")) { anim.Play("Dameged", -1, 0.0f); } } } コード
しかし上記はアニメーションの動きだけですので、矢印キーを押すとPlayerが動いてしまいます。上記スクリプトへどういったコードを加えれば当たり判定時にPlayerの動きを一定時間(3秒程度)止めることができるでしょうか?いまやっている方法以外でもいい方法があれば教えて頂きたいです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。