Вообщем. Создаю с помощью кода куб.
player = new GameObject();
player.name = "player";
player.AddComponent("MeshFilter");
player.AddComponent("MeshRenderer");
player.GetComponent<MeshFilter>().mesh = Engine.CreatePlayerMesh(1f);
player.GetComponent<MeshRenderer>().material.color = Color.red;
player.AddComponent("BoxCollider");
player.GetComponent<BoxCollider>().isTrigger = true;
player.GetComponent<BoxCollider>().center = Vector3.zero;
player.GetComponent<BoxCollider>().size = new Vector3(0.5f,0.5f,0.5f);
player.AddComponent("PlayerTrigger");
PlayerTrigger - это следующий скрипт
public class PlayerTrigger : MonoBehaviour
{
void OnTriggerEnter(Collider trigger)
{
Debug.Log("blabla1");
if (trigger.gameObject.name.Substring(0,4) == "ball")
{
Debug.Log("blabla2");
}
}
}
Дальше создаю с помощью кода сферы
balls = new GameObject[12];
for (int i = 0; i < 12; i++)
{
balls[i] = GameObject.CreatePrimitive(PrimitiveType.Sphere);
balls[i].name = "ball" + id+"_"+i;
// balls[i].GetComponent<SphereCollider>().isTrigger = true;
balls[i].transform.localScale = new Vector3(scaleBall,scaleBall,scaleBall);
balls[i].GetComponent<MeshRenderer>().material.color = new Color(0.9f, 0.9f, 0.9f);
}
У примитива сфейры уже есть встроеный коллайдер.
Двигаю сферы при помощи изменения
beams[i].transform.position
И когда коллайдер сфейры касается коллайдера куба, то ничего в консоль не пишется.