获取鼠标左键(一般是左键开火)
Input.GetMouseButtonDown(0);
播放开火声音和动画
AudioSource.PlayClipAtPoint(AudioClip clip,Vector3 position,float volume);//开火声音
Play(string animation);//播放动画
使用射线
RaycastHit hit;
用Physics.Raycast函数射线起点与方向,用 out 将hit值带出,给射线100米距离;
下面代码:
void OpenedFire() //开火
{
if (Input.GetMouseButtonDown(0))
{
AudioSource.PlayClipAtPoint(fireClip,Camera.main.transform.position,1);//开火声音
ps = PlayerStatus.Fire;//开火动画
RaycastHit hit;
if (Physics.Raycast(pos.position,transform.forward,out hit,100))
{
GameObject go=Instantiate(fireTexiao, pos.position, pos.rotation);//开火特效(预制体
Destroy(go,0.2f);
GameObject holeobj = Instantiate(hole,hit.point,transform.rotation);//弹印
holeobj.transform.LookAt(hit.point - hit.normal);//射线跟法线垂直
holeobj.transform.Translate(Vector3.back*0.03f);
Destroy(holeobj,1f);
}
}
}
hit值的位置就是子弹所打到的地方