统一,对角线子弹

问题描述

我目前正在创建一个具有不同通电能力的 Unity 2D 游戏,其中一个可以让您进行散布镜头,但我目前被难倒了。我很难让它斜行。我的代码如下。

public Rigidbody2D rb;
public float speed = 20f;
public float speed2 = 20f;

void Update()
{
    rb.veLocity = transform.up * speed;
    rb.veLocity = transform.right * speed2;
}

void OnTriggerEnter2D(Collider2D other)
{
    if (other.CompareTag("Alien"))
    {
        Destroy(gameObject);
    }
}

在你说什么之前,我知道主要问题是两次赋予 rb.veLocity 价值,我已经尝试了很多变通办法,但没有任何效果。 我想保持目前的简单编码风格,但如果需要,我会改变它。 提前致谢。

解决方法

你说得对,问题是你设置了两次设置速度,所以第二个任务只是覆盖了第一个。

要解决此问题,只需在分配给速度之前将两个向量相加即可:

rb.velocity = (transform.up * speed) + (transform.right * speed2);

或者由于您使用相同的速度值,您可以在缩放之前简单地添加两个向量:

rb.velocity = (transform.up + transform.right) * speed;

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...