2014-01-02 6 views
0

Во-первых, это сценарий, я использую:Unity 3D: Инстанцирование сборного OnTriggerEnter

var object: GameObject; 
private var obj: GameObject; 

function OnTriggerEnter(other: Collider) 
{ 
if (other.tag == "Player"){        
     obj = Instantiate(object, Vector3(0, 0, 0), transform.rotation);  
          } 
} 

Теперь, с помощью этого сценария, когда я вхожу на спусковой крючок, то Каркасные идет инстанцирован перед моей первой Prefab, точно так же, как я хотел ... но когда я перехожу к моему экземпляру Prefab, когда я вхожу в Trigger, сборник не клонируется спереди, а в том же положении, что и последний.

Моя игра - бесконечный бегун, поэтому мне нужен порожденный сборник, чтобы всегда быть одной плиточкой в ​​моем последнем сборнике. Как я могу это сделать?!

Here's a sketch of the situation, if I'm not being quite clear with you guys

ответ

1
var spawnDistInFrontOfPlayer : float = 2f; 
//change this to your axis direction (direction the character will run) 
var spawnAxis : Vector3 = Vector3.right; 

obj = Instantiate(object, other.transform.position + (spawnAxis * spawnDistInFrontOfPlayer), transform.rotation); 
0

код вы вывесили инстанцирует сборный всегда в позиции (0,0,0). Вы можете просто заменить этот вектор фактическим пространством мира, в котором вы хотите создать сборник. Например, перед игроком нескольких единиц:

spawnDistInFrontOfPlayer = 2f; 
obj = Instantiate(object, other.transform.position + other.transform.forward * spawnDistInFrontOfPlayer, transform.rotation);  
+0

Здравствуйте гейзенбаг, спасибо за ответы. Сценарий не совсем решил мою проблему, потому что инстанцированные сборные файлы клонируются на разных осях. Например, создается экземпляр двух единиц на x, другой - на z, другой - на y. Вот фотография того, что произошло: http://imgur.com/Nw8IIub – Edvin

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