向物体施加力(如蹦床)

Adding force to an object (like a trampoline)

我有一个像蹦床一样的物体,我有一个物体,当它落在蹦床上时,应该朝蹦床面对的方向射击(Up/Down/Left/Right/Angled 等)。

我尝试了两种方法来尝试实现这一点,但都没有用。这是我的第一次尝试:

void OnCollisionEnter2D(Collision2D other){
    if(other.gameObject.tag == "Player"){
        other.gameObject.rigidbody2D.AddForce(Vector2.up * 2500, ForceMode2D.Impulse);
    }
}

这是我的第二次尝试:

void OnCollisionEnter2D(Collision2D other){
    if(other.gameObject.tag == "Player"){
        other.gameObject.rigidbody2D.AddForce(gameObject.transform.rotation.eulerAngles * 2500, ForceMode2D.Impulse);
    }
}

我可以使用什么来获得我正在寻找的效果?

编辑

如果有帮助的话,这里是完整的方法:

void OnCollisionEnter2D(Collision2D other){
    if(other.gameObject.tag == "Player"){
        other.gameObject.rigidbody2D.velocity = Vector2.zero;

        other.gameObject.rigidbody2D.AddForce(transform.forward * forceAmount, ForceMode2D.Impulse);

        gameObject.GetComponent<SpriteRenderer>().color = new Color(Color2.Rand(), Color2.Rand(), Color2.Rand(), 1f);
    }
}

如果你想朝蹦床朝向的方向弹跳,第一次尝试而不是

other.gameObject.rigidbody2D.AddForce(Vector2.up * 2500, ForceMode2D.Impulse);

使用

other.gameObject.rigidbody2D.AddForce(transform.forward * 2500, ForceMode2D.Impulse);

想要固定力可以考虑直接改rigidbody2D.velocity