如何提高此transform.translate的速度

时间:2015-10-01 22:45:09

标签: c# unity3d unity5

我有2d精灵自动移动,只是想知道如何提高速度:

transform.Translate(0.10F, -0.03F, 0 * Time.deltaTime);

尝试设置速度变量然后执行:

transform.Translate(0.1f,-0.05f,speed*Time.deltaTime);

但这最终会使游戏窗口中的背景消失(因为玩家通过z轴从2d背景移开),而在场景窗口中玩家正在向下移动地图但速度相同

2 个答案:

答案 0 :(得分:0)

如果你想要2D,你不希望精灵在z轴上移动(它只对绘制顺序有用)。 玩家应该在x或y轴上增加速度。所以在你的代码中,你可以做这样的事情。

transform.Translate(xSpeed, ySpeed, 0); 

如果你想在这个精灵后面绘制一些东西,只需提供一个小于z值的值。 我假设你在Update方法中调用它。这里xSpeedySpeed是浮点数。负值会使对象向相反方向移动。

答案 1 :(得分:0)

您可以将speed应用于Translate,然后将其乘以此示例中的翻译向量newPosition

void Update () {
    float speed = 3f;
    Vector3 newPosition = new Vector3 (.1f, -.05f, 0f);
    transform.Translate (newPosition * Time.deltaTime * speed);
}