我写了这个脚本,以减少玩家的生命,并在与某些物体接触时将它们移回原点,但我发现它会触发每次碰撞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;
}
}
任何阻止它每次碰撞多次触发的方法都将非常感激。
答案 0 :(得分:1)
OnControllerColliderHit
,最好是移动它。
您可以切换到此代码:
void OnCollisionEnter(Collision col)
{
if(col.gameObject.name == "utd_car1")
{
}
}