栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

【Unity植物大战僵尸】音效管理器开发(二十四)

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Unity植物大战僵尸】音效管理器开发(二十四)

42、音效管理器开发 导入资源 整理一下GameManager.cs,因为这个脚本要在两个场景中都共用,所以需要把CurrLV相关的移植到LVManager.cs中去,这里就不显示了,说下如何共用,首先在OtherManagers中将GameManager脚本组件移除,然后更新代码
using System;
using UnityEngine;
public class GameManager : MonoBehaviour
{
    public static GameManager instance;
    public GameConf GameConf
    {
        get; private set;
    }
    private void Awake()
    {
        if (instance == null)
        {
            instance = this;
            GameConf = Resources.Load("GameConf");
            // 保证一个唯一性
            DontDestroyOnLoad(gameObject);
        }
        else
        {
            // 存在多个就删除
            Destroy(gameObject);
        }
    }
}
在开始场景中创建GaneManager并添加脚本 这样就保证了唯一性,而且跳转场景也一直存在,接下来创建一个音效管理器和GameManager一样的操作 接下来管理音效的对象池,首先在GameConf中添加音效和播放音效的预制体,首先预制体 在EFAudio.cs中添加代码
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EFAudio : MonoBehaviour
{
    private AudioSource audioSource;
    // 外部调用,初始化并播放音效
    public void Init(AudioClip clip)
    {
        audioSource = GetComponent();
        audioSource.PlayOneShot(clip);
    }
    private void Update()
    {   
        //如果播放完毕,就将该音效对象放进对象池中
        if (audioSource.isPlaying == false)
        {
            PoolManager.Instance.PushObj(GameManager.instance.GameConf.EFAudio, gameObject);
        }
    }
}
然后就是各种音效 添加资源进去 然后就是播放,在AudioManager.cs中添加代码 关于音效的调用和从对象池中获取对象、放进对象都处理完了,就开始在所有需要音效的地方调用 1)按钮 2)铲子 3)点击卡片和种植 测试无误,下面写僵尸相关的音效,导入资源 然后就是3中音效的逻辑: 1)僵尸呻吟 2)僵尸吃植物 3)豌豆射手攻击到僵尸 关于音效就结束了,测试无误。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/902006.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号