2014-11-03 2 views
0
using UnityEngine; 
using System.Collections; 

public class CollisionExample : MonoBehaviour { 

void OnCollisionEnter (Collision other){ 
    if(other.gameObject.name == "joint_HandRight") 
    { 
     this.gameObject.renderer.material.color = Color.green; 
    } 
} 

void OnCollisionStay (Collision other){ 
    if(other.gameObject.name == "joint_HandRight") 
    { 
     this.gameObject.renderer.material.color = Color.green; 
    } 

} 

void OnCollisionExit (Collision other){ 
    if(other.gameObject.name == "joint_HandRight") 
    { 
     this.gameObject.renderer.material.color = Color.red; 
    } 
} 
} 

У меня есть объект с именем тора TorusPro и объект окна с именем joint_HandRight. Это код, который я использую в скрипте, который прикреплен к моему объекту Torus. Я хочу, чтобы его цвет изменился, когда сталкивается объект с именем joint_HandRight. Это не работает. Зачем?столкновения 2 объектов C#

+0

Вы уверены, что эти методы введены? Вы пробовали отлаживать его и видели, что код действительно работает? – Andersnk

+0

Возможно, у вас установлен коллайдер Trigger? Ваше объяснение немного не работает, является join_HandRight ребенком TorusPro? – Hobbyist

ответ

0

1. оба GameObjects должны коллайдеров
2.one из коллайдеров должен иметь без кинематической Rigidbody прилагается
3.check матрицы столкновения, чтобы увидеть, если столкновения между их слои включены
4. meshCollider обыкновение сталкиваться с meshCollider

Смежные вопросы