本文最后更新于 2024-11-26T12:13:03+00:00
在游戏的开发过程中,我们总是会需要创建一些飞行物,他们大多都有一些特性:
这不是件多难的事情,但是有一个点困扰了我许久,就是这个可旋转上,我们要的旋转当然是物体朝着移动方向的正确旋转,这里给出一个模板。分两部分代码,主要是生成子弹的外部调用部分和子弹自己的逻辑部分:
file1 2 3 4 5 6
| Vector3 direction = target.transform.position - transform.position; direction.z = 0; direction.Normalize(); var tempBullet = Instantiate(bullet, transform.position, Quaternion.LookRotation(Vector3.forward, direction)); tempBullet.SetActive(true); tempBullet.GetComponent<EnemyBullet>().SetData(AttackDamage, direction);
|
file1 2 3 4 5 6 7 8 9
| transform.position += new Vector3(m_direction.x, m_direction.y, 0) * Time.deltaTime * m_speed;
public void SetData(int hurt, Vector2 direction) { m_hurt = hurt; m_direction = direction; }
|
主要不能错的是这两句:
1 2 3 4 5 6 7
| var tempBullet = Instantiate(bullet, transform.position, Quaternion.LookRotation(Vector3.forward, direction)); tempBullet.SetActive(true);
transform.position += new Vector3(m_direction.x, m_direction.y, 0) * Time.deltaTime * m_speed;
|
时间比较紧张,我先休息一下,有时间再来仔细讲解这份代码。