如何使弹丸沿光标方向实例化



我目前正在开发一个子弹地狱游戏,以娱乐和提高我的Unity和C#代码编写技能。我目前在实例化弹丸并以一定的旋转和速度实例化该对象时遇到问题。弹丸的旋转我要面对光标,速度是固定的。我的代码如下所示:

Vector3 sp = Camera.main.WorldToScreenPoint (transform.position);
Vector3 dir = (Input.mousePosition - sp).normalized;
Instantiate (projectile, sp);
GetComponent<Rigidbody2D>().AddForce (dir * 500);

我知道我的 Instantiate 函数写错了是错误的,但我正在努力弄清楚如何正确编写Instantiate函数以及如何使弹丸在旋转方面面向光标。

非常感谢您的帮助,如果您需要更多信息,请询问。

您可以执行以下几件事:设置forward向量或使用实例化对象上的Quaternion.LookRotation()设置旋转。

GameObject bullet = Instantiate(projectile, transform.position, Quaternion.identity);
//bullet.transform.forward = dir;            
bullet.transform.rotation = Quaternion.LookRotation(dir);
bullet.GetComponent<Rigidbody2D>().AddForce(dir * 500);

要记住的另一件事是,您需要跟踪所有项目符号,特别是如果您打算实例化其中的许多项目符号。查看对象池。

最新更新