向物体施加力(如蹦床)
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
我有一个像蹦床一样的物体,我有一个物体,当它落在蹦床上时,应该朝蹦床面对的方向射击(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