Я написал этот скрипт, чтобы уменьшить жизнь игроков и вернуть их обратно к исходному пункту при контакте с определенными объектами, но я обнаружил, что он вызовет от 1 до 4 раз за столкновение взяв жизни от 3 до -1.OnControllerColliderHit вызывает много раз
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 первоначально. Однако, спасибо. – fenriskiba
@fenriskiba Взгляните на картинку, которую я разместил на этом ответе: http://stackoverflow.com/questions/27009055/is-there-a-way-two-make-two-trigger-gameobjects-collide/27010330#27010330 это таблица, которая научит вас, как заставить вещи сталкиваться друг с другом. – FunctionR