我写这个脚本是为了减少玩家的生命,并在与某些物体接触时将其移动回原来的位置,但是我发现每次碰撞它会触发1到4次,使生命从3下降到-1 。
using UnityEngine;
using System.Collections;
public class HitCar : MonoBehaviour
{
public static int lives = 3;
void OnControllerColliderHit(ControllerColliderHit col)
{
if(col.gameObject.name == "utd_car1")
{
Destroy(col.gameObject);
lives--;
if(lives <= 0)
{
Application.LoadLevel("LoseScreen");
}
else
{
var player = GameObject.Find("3rd Person Controller");
player.transform.position = new Vector3(0, 2, -26);
}
}
}
void OnLevelWasLoaded(int level)
{
lives = 3;
}
}
防止它每次碰撞触发一次以上的任何方法将不胜感激。
最佳答案
OnControllerColliderHit
用于想要几次击打某些东西(最好移动它)的情况。
您可以切换到以下代码:
void OnCollisionEnter(Collision col)
{
if(col.gameObject.name == "utd_car1")
{
}
}