unityでゲームを作っているのですが、敵に当たった時に連続してダメージを受けてしまうのを防ぐために敵に当たった後に一定時間、「Player」と「Enemy」の衝突判定を無くそうと思うのですがうまくいきません。
以下のようなスクリプトを作ったのですが、うまくいきません。
敵に当たったあとにmutekiTimeはうまくカウントされるのですが、衝突判定が何も変わりません。
もし解決策が解る方がいましたらよろしくお願いします。(_ _)
using System.Collections; using System.Collections.Generic; using UnityEngine; public class NewBehaviourScript : MonoBehaviour { public float mutekiFlag = 0; public float mutekiTime = 1000; public float timeStep = 1; public LayerMask Player, Enemy; // Start is called before the first frame update void Start() { } void OnControllerColliderHit(ControllerColliderHit hit) { if (hit.gameObject.tag == "Enemy" && mutekiFlag == 0) { mutekiFlag = 1; } } // Update is called once per frame void Update() { if (mutekiFlag == 1) { Physics.IgnoreLayerCollision(Player, Enemy); mutekiTime -= timeStep; if (mutekiTime < 0) { mutekiFlag = 0; } } } }
質問欄に「やりたいこと」が書いてありませんが、ダメージを受けると一定時間ダメージを受けないようにしたいということですか?
もしそうであれば、ダメージを受ける処理のコードも提示をお願いします。
回答1件
あなたの回答
tips
プレビュー