一、子弹移动

游戏物体移动最主要的是获取一个刚体组件,再对这个刚体组件添加一个向前的力;

具体代码:

public class BulletCtrl : MonoBehaviour
{
public int damage = ;
public float speed = 1000.0F; void Start()
{
GetComponent<Rigidbody>().AddForce(transform.forward * speed);
}
}

二、设置物理引擎属性

Edit--->Project Settings--->Physics--->Physics Manager。

三、Collider组件

Box Collider、Sphere Collider、Capsule Collider、Mesh Collider、Wheel Collider、Terrain Collider。

四、碰撞感知条件

1)两个碰撞物体必须都有Collider组件

2)其中移动物体还必须有Rigidboby组件

最后补充一点:触发器是碰撞体的一个属性,如果进行触发检测,就可以实现穿透。

五、Tag应用

Add Tag

具体代码:

public class WallCtrl : MonoBehaviour
{
void OnCollisionEnter(Collision coll)
{
if (coll.collider.tag == "BULLET")
{
Destroy(coll.gameObject);
}
}
}

如果检查到标签为bullet,则销毁游戏对象。

六、获取子弹位置

public class MyGizmo : MonoBehaviour
{
public Color _color = Color.yellow;
public float _radius = 0.1F; void OnDrawGizmos()
{
Gizmos.color = _color;
Gizmos.DrawSphere(transform.position, _radius);
}
}

七、子弹发射

public class FireCtrl : MonoBehaviour
{
public GameObject bullet;
public Transform firePos; void Update()
{
if (Input.GetMouseButtonDown())
{
Fire();
}
} void Fire()
{
CreateBullet();
} void CreateBullet()
{
Instantiate(bullet, firePos.position, firePos.rotation);
}
}
05-11 22:03