2013-07-01 2 views
0

На данный момент у меня есть сценарий, стреляющий в сферу, когда я нажимаю кнопку, которая заставляет ее стрелять; осадок выходит, но не перемещается по экрану, он остается неподвижным. в то время как я хотел бы, чтобы двигаться по экрану вперед ...Пуля, не движущаяся единство

Сценарий:

#pragma strict 

public var pellet : Transform; 


function Start() { 



} 

function Update() {  

    if (Input.GetKeyUp("o")) 
    { 
     var pelletfire = Instantiate (pellet, gameObject.Find("pellet_Spawn").transform.position, Quaternion.identity); 
     pelletfire.rigidbody.AddForce(transform.forward * 500); 
    } 


} 

Спасибо за любые suggesitons

+0

Является ли 'Pellet' правильным сборником или вы прикрепляете его к объекту, уже находящемуся в вашей сцене? Если последний, то Unity отбросит недопустимое исключение броска, блокирующее вызов 'AddForce'. Я пробовал ваш код, и он работает очень хорошо (пеллет движется вперед) на моей машине, никаких изменений. Параметры жесткого тела по умолчанию. – Jerdak

ответ

0

Заменить строку с this-

pelletfire.rigidbody.AddForce(transform.forward * 100,ForceMode.Impulse);

Для более подробной информации смотрите документацию по forcemode в единстве.

http://unity3d.com/learn/tutorials/modules/beginner/physics/addforce http://docs.unity3d.com/Documentation/ScriptReference/ForceMode.html

вы также требуют GameObject в сцене с именем "pellet_Spawn". , и ваш сборник должен иметь прикрепленное к нему твердое тело. , и сценарий должен быть прикреплен к GameObject в сцене. и установите сборку у инспектора.

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