C# OnControllerColliderHit触发次数过多
我写这个脚本是为了减少玩家的生命,让他们在与某些物体接触时回到原来的位置,但我发现每次碰撞都会触发1到4次,生命从3次减少到-1次C# OnControllerColliderHit触发次数过多,c#,unity3d,C#,Unity3d,我写这个脚本是为了减少玩家的生命,让他们在与某些物体接触时回到原来的位置,但我发现每次碰撞都会触发1到4次,生命从3次减少到-1次 using UnityEngine; using System.Collections; public class HitCar : MonoBehaviour { public static int lives = 3; void OnControllerColliderHit(ControllerColliderHit col) {
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;
}
}
使用UnityEngine;
使用系统集合;
公共级HitCar:单行为
{
公共静态寿命=3;
控制器ColliderRhit(控制器ColliderRhit col)上的无效
{
如果(col.gameObject.name==“utd_car1”)
{
销毁(游戏对象列);
生命--;
如果(livesOnControllerColliderHit
在您想击中某物几次时使用,最好是移动它
您可以切换到以下代码:
void OnCollisionEnter(Collision col)
{
if(col.gameObject.name == "utd_car1")
{
}
}
由于某些原因,我无法触发该函数,这就是我最初使用OnControllerColliderHit的原因。不过谢谢你。@fenriskiba请看一看我在这个答案上发布的图片:这是一个可以教你如何使事物相互碰撞的表。