Если вы хотите отключить коллайдеры, чтобы они не ударили или не отскочили от стены, например, вы можете изменить переменную «isTrigger» вашего коллайдера на true, чтобы изменить ее на триггерный тома вместо сплошной коллайдер. Это приводит к отключению его, поскольку оно не приведет к остановке или отскоку других объектов, если они ударят по нему.
Например:
function Update() {
if (Input.GetKeyDown(KeyCode.X)) {
collider.isTrigger = true;
}
}
Обратите внимание, что такие вещи, как MouseOver
все еще работают.
Если вы хотите полностью отключить его, вы можете попробовать collider.enabled = false
. Я не уверен, что это работает или нет. Если это не так, вы всегда можете свернуть свой коллайдер:
var myOldSize:Vector3;
function DisableBoxCollider(myCollider:BoxCollider)
{
//actually just resizes it
myOldSize=myCollider.size;
myCollider.size=Vector3(0,0,0);
}
function EnableBoxCollider(myCollider:BoxCollider)
{
if(myOldSize!=Vector3(0,0,0))
myCollider.size=myOldSize;
}
Вы можете использовать приведенный выше код, чтобы интегрировать его в свой собственный проект. Я не собираюсь выкидывать весь код для вас, потому что иначе мы пропустим учебное задание и опубликуем в Stackoverflow в целом. Но это должно помочь вам встать на путь. Попробуйте сыграть с кодом, и если у вас есть вопросы, вернитесь сюда и спросите их, предоставив вопрос некоторым кодом, чтобы показать, что вы пробовали.
thanx для ответа. Здесь я ищу, чтобы запустить функцию между триггером ввода одного коллайдера и триггером выхода другого коллайдера. Является ли это возможным ?? вот функция кода OnTriggerEnter() {if (other.gameObject.tag == "player") {экземпляр (враг, transform.position, transform.rotation)}} теперь я хочу, чтобы этот экземпляр противника умер, когда игрок выходит из триггер разного коллайдера. как это достичь? – RakeshChatra
Вы имеете в виду http://docs.unity3d.com/Documentation/ScriptReference/MonoBehaviour.OnTriggerEnter.html и http://docs.unity3d.com/Documentation/ScriptReference/Collider.OnTriggerExit.html? – Joetjah