如何制作游戏中的开枪效果

发表于2017-12-01
评论0 2.5k浏览

开枪的时候通常会有一条火舌以及光和声音,这里讲一下在游戏中的开枪效果的制作。

首先你的枪口或是其他设计物体的开火口出要有一个物体,空物体也行,用来定位特效位置,这样比较方便。


然后该物体持有特效子物体、light和LineRenderer组件以及AudioSource组件,这些组件要设置相应的参数,这里引用一下介绍LineRenderer组件的网页:点击打开链接


下面是该物体的脚本:

using UnityEngine;  
using System.Collections;  
public class PlayerShoot : MonoBehaviour {  
    public float shootRate = 8;  
    float timer;  
    float shootPeriod;  
    Light fireLight;  
    ParticleSystem particleSystem;//子物体的粒子特效  
    LineRenderer lineRenderer;  
    AudioSource fireAudio;  
    // Use this for initialization  
    void Start () {  
        shootPeriod = 1 / shootRate;  
        fireLight = GetComponent<Light>();  
        particleSystem = GetComponentInChildren<ParticleSystem>();  
        lineRenderer = GetComponent<LineRenderer>() as LineRenderer;  
        fireAudio = GetComponent<AudioSource>();  
    }  
    // Update is called once per frame  
    void Update () {  
        if (Input.GetMouseButton(1))  
        {  
            timer += Time.deltaTime;  
            if (timer > shootPeriod)  
            {  
                timer -= shootPeriod;  
                Shoot();  
            }  
        }  
    }  
    void Shoot(){  
        fireLight.enabled = true;  
        particleSystem.Play();  
        //枪发出的射线 当射击到了物体以后火舌停在物体身上,否则火舌从枪口向前延伸100米  
        lineRenderer.enabled = true;  
        lineRenderer.SetPosition(0, transform.position);  
        Ray ray = new Ray(transform.position,transform.forward);  
        RaycastHit hitInfo;  
        if (Physics.Raycast(ray, out hitInfo))  
        {  
            lineRenderer.SetPosition(1, hitInfo.point);  
        }  
        else  
        {  
            lineRenderer.SetPosition(1, transform.position+transform.forward*100);  
        }  
        fireAudio.Play();  
        Invoke("ClearEffect", 0.05f);  
    }  
    void ClearEffect()  
    {  
        lineRenderer.enabled = false;  
        fireLight.enabled = false;  
    }  
}  


具体细节这里就不解释了,通过该物体的脚本大家就可以制作出开枪效果了。


如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签: