我写这个脚本是为了减少玩家的生命并将他们移回与某些物体接触的原始点,但我发现它会在每次碰撞时触发 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")
{
}
}
我是一名优秀的程序员,十分优秀!