【问题标题】:Bullet not moving unity子弹不动统一
【发布时间】:2014-07-05 05:07:05
【问题描述】:

目前我有一个脚本正在发射一个球体,当我按下使其发射的按钮时;颗粒出来但不会在屏幕上移动,它只是停留在静止位置。而我希望它在屏幕上向前移动......

脚本:

    #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); 
    }


}

感谢任何建议

【问题讨论】:

  • Pellet 是一个合适的预制件还是您将它附加到场景中已经存在的对象上?如果是后者,那么 Unity 将丢弃一个无效的强制转换异常,阻止对 AddForce 的调用。我尝试了您的代码,它在我的机器上运行良好(颗粒向前移动),没有任何变化。默认刚体参数。

标签: unity3d unityscript


【解决方案1】:

用这个替换你的行-

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

有关更多详细信息,请查看 unity 中的 forcemode 文档-

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

您还需要一个名为“pellet_Spawn”的游戏对象。 你的预制件应该附有一个刚体。 并且脚本需要附加到场景中的游戏对象上。 并从检查器设置预制件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多