Unity实例化对象仅向上移动

时间:2014-03-26 14:23:22

标签: c# unity3d transform instance monodevelop

我有一个Light_Spell脚本附加到魔杖上,该魔杖是Razer Hydra手对象的父级。 Light_Spell采用一个Light的预制件,当按下一个按钮时,该预制件将被投射出来。 然而,光线正在向上移动,无论我旋转手部物体的方式如何,它总是会上升。我有它工作,但我改变了一些代码,并且不记得我是如何让它在第一时间工作。

这是我到目前为止的代码:

    //What happens when bumper is pressed
    if (isSelectedSpell && SixenseInput.Controllers [0].GetButtonDown (SixenseButtons.BUMPER) && triggerIsPressed == false) {
        Rigidbody instantiateProjectile = Instantiate(projectile, transform.position, transform.rotation) as Rigidbody;
        instantiateProjectile.position += Vector3.down * 20.0F;
    }

我已尝试将Vector3设置为向上和向前以及一整套不同的东西。关于我应该怎么做的任何想法,使它与手指向和东西的旋转相匹配? 感谢

1 个答案:

答案 0 :(得分:0)

考虑使用:

instantiateProjectile.position += -instantiateProjectile.transform.up * 20.0f;

<强>解释

Vector3.down与转换的轮换无关,它是一个&#39; down&#39;在世界空间中,也就是说它将永远按照基本轴向下移动。

transform.up与该变换的轮换相关。如果射弹旋转,用于获得&#34; up&#34;旋转也是。我们必须使用倒置transform.up而不是transform.down,因为不存在transform.down