【发布时间】:2021-05-13 18:37:52
【问题描述】:
所以我正在尝试制造一种射击机器,它可以发射子弹,子弹从撞击墙壁时的相同方式返回,而不加速且不改变角度(正好相反) 我加了力并尝试了很多方法,但没有任何效果,请帮助
这是我的代码(最后一个),尽管我将力标准化,但我仍然觉得它在加速
public Rigidbody2D rb;
private float bulletForce = 20f;
private bool collided;
Vector2 dir;
private void Awake()
{
instance = this;
rb = gameObject.GetComponent<Rigidbody2D>();
dir = transform.up;
}
void Update()
{
rb.AddForce(dir.normalized * bulletForce * Time.deltaTime, ForceMode2D.Impulse);
}
private void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.CompareTag("Edge"))
{
dir = Vector2.Reflect(rb.position, other.contacts[0].normal);
rb.velocity = dir.normalized * bulletForce;
transform.up = dir.normalized;
}
}
【问题讨论】:
-
你为什么不希望它真实地反弹?游戏创意是什么,让我们更了解您想要什么。