【问题标题】:Unity, Diagonal Bullets团结,对角线子弹
【发布时间】:2021-02-24 01:37:02
【问题描述】:

我目前正在用不同的道具创建一个统一的 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 价值,我已经尝试了很多解决方法,但没有任何效果。 我想保留我目前拥有的当前简单的编码风格,但如果有必要我会改变它。 提前致谢。

【问题讨论】:

    标签: unity3d bullet


    【解决方案1】:

    你是对的,问题在于你设置了两次设置速度,所以第二个分配只是覆盖了第一个。

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

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

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

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

    【讨论】:

    • 有效!既然你这么说,好像真的很明显哈哈。谢谢!我真的很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多