私のメソッドOnCollisionEnterに問題がありますが、なぜ正しく動作しないのか分かりません。ここでUnity3DでOnCollisionEnterを使用する方法がわからない
は私のコードは次のとおりです。
void OnCollisionEnter(Collision col){
if (col.gameObject.name == "Bullet" && !bulletEnter)
{
Debug.Log(enemyLives);
enemyLives = enemyLives - 1;
if (enemyLives == 0)
{
Destroy(gameObject);
//Modificamos el GameManager e incrementamos el dinero que poseemos tras la muerte de Enemy.
GameManager.Manager.currentGold(enemyGold);
}
bulletEnter = true;
}
else if (col.gameObject.name == "OtherBullet" && !bulletEnter) {
enemyLives = enemyLives - 2;
if (enemyLives == 0)
{
Destroy(this.gameObject);
GameManager.Manager.currentGold(enemyGold);
}
bulletEnter = true;
}
}
//Cuando sale la colision lo ponemos a false, esto lo realizamos para que unicamente exista un choque con los coliders.
void OnCollisionExit(Collision col)
{
bulletEnter = false;
}
あなたがそこに見ることができるように、弾丸はトリガーをアクティブにする必要がありますが、それは動作していない敵に達したとき、私はかどうかをチェックするために、「DEBUG.LOG」を使用していますそれはメソッドの中に入りますが、メソッドには入りません。
ここでは、私の検査官の画像も追加します。
質問に投稿したこのスクリプトの名前はどこにあり、どこに添付されていますか? – Programmer
名前がEnemy.csで、その名が "Enemy"というPrefabに添付されています。 – fiticida
Debug.Log( "test");を 'if'文の外側で' OnCollisionEnter'の中に入れ、ログがあれば教えてください。 – Programmer