Пример #1
0
    //TODO 사용방법
    //? 다른 C# 스크립트로 가서 string 변수로 음악 닉네임을 적은 다음
    //!? StartCorutin(SoundManager.instance.메서드이름(변수); 하면 된다.


    /// <summary>
    /// SoundManager.cs File 에 포함된 함수로써
    /// 효과음을 실행하기 위해 만들어진 메서드 이다.
    /// _name은 play_seName 변수와 비교하여 실행 하도록 한다.
    /// </summary>
    /// <param name="_name"></param>
    /// <returns></returns>
    public IEnumerator Play_SE(string _name)
    {
        //Todo: Mp3 파일 검색
        for (int i = 0; i < se_file.Length; i++)
        {
            //Todo: 닉네임이 등록된 MP3 파일의 닉네임과 동일 할 때
            if (_name.ToLower().Trim().Equals(se_file[i].name.ToLower().Trim()))
            {
                //!? Debug
                ConsoleProDebug.Watch("SE Equals", _name.ToLower().Trim().Equals(se_file[i].name.ToLower().Trim()) + "");

                //Todo: 재생중이지 않은 오디오 소스 찾기
                for (int j = 0; j < audioSource_SE.Length; j++)
                {
                    //Todo: 사용중이지 않는 오디오 소스를 발견할 경우
                    if (!audioSource_SE[j].isPlaying)
                    {
                        play_seName[j]         = se_file[i].name;                               //! 재생중인 효과음 이름을 등록
                        audioSource_SE[j].clip = se_file[i].clip;                               //! 클립 등록
                        audioSource_SE[j].Play();                                               //! 오디오 재생

                        //? Debug
                        ConsoleProDebug.Watch("SE Play", se_file[i].name);
                        yield break;                            //! 함수 자체 종료
                    }
                }

                //Todo: 만약 재생중이지 않은 오디오 소스가 없을 경우
                //? Debug
                ConsoleProDebug.Watch("SE Not Play", se_file[i].name);
                yield break;                 //! 중지
            }
        }
    }
Пример #2
0
    public void StartMission()
    {
        SimpleMissionManager.Instance.CurrentMission = this;

        SimpleMissionManager.Instance.missionList.AddIfNotExists(missionName, this);

        startPoint.MissionStart();

        OnMissionStart?.Invoke();

        switch (missionType)
        {
        case MissionType.TRAVEL:
            Mission_Travel_Start();
            break;

        case MissionType.DESTROY:
            Mission_Destroy_Start();
            break;

        case MissionType.COLLECT:
            Mission_Collect_Start();
            break;

        default:
            throw new ArgumentOutOfRangeException();
        }
        ConsoleProDebug.LogToFilter($"Mission {missionName} Started : Type => {missionType}", "Missions");
    }
Пример #3
0
    /// <summary>
    /// SoundManager.cs File 에 포함된 함수로써
    /// 배경음악을 실행하기 위해 만들어진 메서드 이다.
    /// _name은 play_seName 변수와 비교하여 실행 하도록 한다.
    /// </summary>
    /// <param name="_name"></param>
    /// <returns></returns>
    public IEnumerator Play_BGM(string _name)
    {
        //Todo Mp3 파일 검색
        for (int i = 0; i < bgm_file.Length; i++)
        {
            //Todo 닉네임이 동일할 경우
            if (_name.Trim().ToLower().Equals(bgm_file[i].name.Trim().ToLower()))
            {
                //Todo 마지막으로 이 배경음악 전용 오디오 컴퍼넌트가 실행되고 있는 상태일 경우
                if (!audioSource_BGM.isPlaying)
                {
                    play_bgmName         = bgm_file[i].name;                            //! 배경음악 이름 등록
                    audioSource_BGM.clip = bgm_file[i].clip;                            //! BGM 클립 교체
                    audioSource_BGM.Play();

                    //? Debug
                    ConsoleProDebug.Watch("BGM Play", bgm_file[i].name);
                    yield break;                        //! 함수 자체 종료
                }
            }
        }
        //Todo: 만약 재생중이지 않은 오디오 소스가 없을 경우
        Debug.Log("배경음악 등록 되있지 않습니다.");
        yield break;            //! 함수 자체 종료
    }
Пример #4
0
 private void OnTriggerEnter(Collider other)
 {
     if (!other.gameObject.CompareTag(tagToCheck))
     {
         return;
     }
     OnDoorApproached?.Invoke();
     ConsoleProDebug.LogToFilter($"Mission {thisMission.name} Door Approached : Type => {thisMission.missionType}", "Missions");
 }
Пример #5
0
 /// <summary>
 /// 실행중인 효과음을 모두 정지시킨다.
 /// void 형식이라 StartCorutine 안써도 됨.
 /// </summary>
 public void StopAllSE()
 {
     for (int i = 0; i < audioSource_SE.Length; i++)
     {
         audioSource_SE[i].Stop();                                   //! 효과음 정지
     }
     ConsoleProDebug.Watch("SE", "All Stop");
     Invoke("ClearDebug", 5);                // ? "디버그청소" 함수를 5초 이후 실행
 }
Пример #6
0
 private void OnTriggerEnter(Collider other)
 {
     if (!other.gameObject.CompareTag(tagToCheck))
     {
         return;
     }
     OnDestinationReached?.Invoke();
     _thisMission.Mission_Travel_DestinationReached();
     ConsoleProDebug.LogToFilter($"Mission {_thisMission.name} Destination Reached : Type => {_thisMission.missionType}", "Missions");
 }
Пример #7
0
 public void Clear()
 {
     if (LogShow)
     {
         #if CONSOLE_PRO
         ConsoleProDebug.LogToFilter($"<color={LogColor}>Reference : {LogTag} Cleared to <b>null</b> <--- <b>{((_reference.IsNull()) ? "null" : _reference.name)}</b></color>", "References");
         #else
         Debug.Log($"<color={LogColor}>Reference : {LogTag} Cleared to <b>null</b> <--- <b>{((_reference.IsNull()) ? "null" : _reference.name)}</b></color>");
         #endif
     }
     _reference = null;
 }
Пример #8
0
 public void Set(GameObject other)
 {
     if (LogShow)
     {
         #if CONSOLE_PRO
         ConsoleProDebug.LogToFilter($"<color={LogColor}>Reference : {LogTag} Set to <b>{((other == null) ? "null" : other.name)}</b> <--- <b>{((_reference == null) ? "null" : _reference.name)}</b></color>", "References");
         #else
         Debug.Log($"<color={LogColor}>Reference : {LogTag} Set to <b>{((other == null) ? "null" : other.name)}</b> <--- <b>{((_reference == null) ? "null" : _reference.name)}</b></color>");
         #endif
     }
     _reference = other;
 }
Пример #9
0
    private GameObject SpawnItem(SpawnItem item)
    {
        var spawnedItem = LeanPool.Spawn(item.prefabToSpawn, transform.position, transform.rotation, (item.spawnOnRoot)?null:transform);

        if (logToFilter)
        {
            ConsoleProDebug.LogToFilter($"{item.nameIdentifier} spawned by {name} at {spawnedItem.transform.position}", "Create");
        }
        item.itemCount--;
        _count++;
        if (useEvents)
        {
            OnSpawnedItem?.Invoke(item);
        }
        return(spawnedItem);
    }
Пример #10
0
    public GameObject Get(string errorIfNull = "<b>Reference is Null</b>", bool ignoreError = false)
    {
        if (_reference.IsNull() && !ignoreError)
        {
            if (!useExceptions)
            {
                #if CONSOLE_PRO
                ConsoleProDebug.LogToFilter($"<b>Reference Null Error : {LogTag}</b>", "References");
                #else
                Debug.LogError($"<b>Reference Null Error : {LogTag}</b>");
                #endif
            }
            else
            {
                throw new NullReferenceException(LogTag + " : " + errorIfNull);
            }
        }

        return(_reference);
    }
Пример #11
0
 public void StateChange(PlayerState state)
 {
     ps = state;
     ConsoleProDebug.Watch("Player State", ps.ToString());
 }
Пример #12
0
 private void OnDestroy()
 {
     _thisMission.Mission_Collect_KeyCollected();
     ConsoleProDebug.LogToFilter($"Mission {_thisMission.name} Key Collected : Type => {_thisMission.missionType}", "Missions");
 }
Пример #13
0
    private void FindPrefab()
    {
        EditorGUILayout.BeginVertical();

        m_UIName     = EditorGUILayout.TextField("ActiveUI", m_UIName);
        m_UICtrName  = EditorGUILayout.TextField("UICtr", m_UICtrName);
        m_EffectName = EditorGUILayout.TextField("Effect", m_EffectName);

        if (GUILayout.Button("Find") == true)
        {
            string rtn = "";

            foreach (var _data in m_Data.m_SceneData)
            {
                if (false == string.IsNullOrEmpty(m_UIName))
                {
                    foreach (var AUI in _data.m_ActiveUIList)
                    {
                        if (true == m_UIName.Equals(AUI.m_Name))
                        {
                            rtn = string.Format("{0}, {1} {2}", rtn, "[SceneData]", _data.m_KeyName);
                            break;
                        }
                    }
                }
                else if (false == string.IsNullOrEmpty(m_UICtrName))
                {
                    foreach (var UICtr in _data.m_UICtrData)
                    {
                        if (true == m_UICtrName.Equals(UICtr.m_UICtrName))
                        {
                            rtn = string.Format("{0}, {1} {2}", rtn, "[SceneData]", _data.m_KeyName);
                            break;
                        }
                    }
                }
                else if (false == string.IsNullOrEmpty(m_EffectName))
                {
                    foreach (var UIEffect in _data.m_UIEffectData)
                    {
                        if (true == m_EffectName.Equals(UIEffect.m_EffectName))
                        {
                            rtn = string.Format("{0}, {1} {2}", rtn, "[SceneData]", _data.m_KeyName);
                            break;
                        }
                    }
                }
            }

            foreach (var _data in m_Data.m_SceneGroupData)
            {
                if (false == string.IsNullOrEmpty(m_EffectName))
                {
                    foreach (var UIEffect in _data.m_UIEffectData)
                    {
                        if (true == m_EffectName.Equals(UIEffect.m_EffectName))
                        {
                            rtn = string.Format("{0}, {1} {2}", rtn, "[SceneGroupData]", _data.m_ESceneGroupID.ToString());
                            break;
                        }
                    }
                }
            }

            ConsoleProDebug.LogToFilterFormat("세종", "{0}", rtn);
        }

        if (GUILayout.Button("Delete") == true)
        {
            List <DCSceneData> sceneDataList = DCSceneMgr.Instance.m_SceneData;

            for (int i = 0; i < sceneDataList.Count; i++)
            {
                DCSceneData sceneData = sceneDataList[i];

                List <DCAttachUIData> attachUIList = sceneData.m_ActiveUIList;

                for (int j = attachUIList.Count - 1; j > -1; j--)
                {
                    DCAttachUIData data = attachUIList[j];

                    if (true == m_UIName.Equals(data.m_Name))
                    {
                        attachUIList.RemoveAt(j);
                        ConsoleProDebug.LogToFilterFormat("두혁", "[SceneData] attachUI {0}에 있는 {1}를 지웠습니다.", sceneData.m_KeyName, data.m_Name);
                        break;
                    }
                }

                List <DCUICtrData> uICtrList = sceneData.m_UICtrData;

                for (int j = uICtrList.Count - 1; j > -1; j--)
                {
                    DCUICtrData data = uICtrList[j];

                    if (true == m_UICtrName.Equals(data.m_UICtrName))
                    {
                        uICtrList.RemoveAt(j);
                        ConsoleProDebug.LogToFilterFormat("두혁", "[SceneData] UICtr {0}에 있는 {1}를 지웠습니다.", sceneData.m_KeyName, data.m_UICtrName);
                        break;
                    }
                }

                List <DCUIEffecData> effectData = sceneData.m_UIEffectData;

                for (int j = effectData.Count - 1; j > -1; j--)
                {
                    DCUIEffecData data = effectData[j];

                    if (true == m_EffectName.Equals(data.m_EffectName))
                    {
                        effectData.RemoveAt(j);
                        ConsoleProDebug.LogToFilterFormat("두혁", "[SceneData] Effect {0}에 있는 {1}를 지웠습니다.", sceneData.m_KeyName, data.m_EffectName);
                        break;
                    }
                }
            }

            List <DCSceneGroupData> sceneGroupData = DCSceneMgr.Instance.m_SceneGroupData;

            for (int i = 0; i < sceneGroupData.Count; i++)
            {
                DCSceneGroupData sceneData = sceneGroupData[i];

                List <DCUIEffecData> effectData = sceneData.m_UIEffectData;

                for (int j = effectData.Count - 1; j > -1; j--)
                {
                    DCUIEffecData data = effectData[j];

                    if (true == m_EffectName.Equals(data.m_EffectName))
                    {
                        effectData.RemoveAt(j);
                        ConsoleProDebug.LogToFilterFormat("두혁", "[SceneGroupData] Effect {0}에 있는 {1}를 지웠습니다.", sceneData.m_ESceneGroupID.ToString(), data.m_EffectName);
                        break;
                    }
                }
            }
        }

        if (false == string.IsNullOrEmpty(m_UIName) ||
            false == string.IsNullOrEmpty(m_UICtrName) ||
            false == string.IsNullOrEmpty(m_EffectName))
        {
            if (GUILayout.Button("Add") == true &&
                false == string.IsNullOrEmpty(m_EffectName))
            {
                DCUIEffecData _newEfx = new DCUIEffecData();
                _newEfx.m_EffectName = m_EffectName;

                foreach (var _data in m_Data.m_SceneData)
                {
                    if (false == string.IsNullOrEmpty(m_UIName))
                    {
                        foreach (var AUI in _data.m_ActiveUIList)
                        {
                            if (true == m_UIName.Equals(AUI.m_Name))
                            {
                                if (false == HasSameEfx(_data.m_UIEffectData))
                                {
                                    _data.m_UIEffectData.Add(_newEfx);
                                    ConsoleProDebug.LogToFilterFormat("세종", "Add efx in {0}", m_UIName);
                                }
                                break;
                            }
                        }
                    }
                    else if (false == string.IsNullOrEmpty(m_UICtrName))
                    {
                        foreach (var UICtr in _data.m_UICtrData)
                        {
                            if (true == m_UICtrName.Equals(UICtr.m_UICtrName))
                            {
                                if (false == HasSameEfx(_data.m_UIEffectData))
                                {
                                    _data.m_UIEffectData.Add(_newEfx);
                                    ConsoleProDebug.LogToFilterFormat("세종", "Add efx in {0}", m_UICtrName);
                                }
                                break;
                            }
                        }
                    }
                    else if (false == string.IsNullOrEmpty(m_EffectName))
                    {
                        if (false == HasSameEfx(_data.m_UIEffectData))
                        {
                            _data.m_UIEffectData.Add(_newEfx);
                            ConsoleProDebug.LogToFilterFormat("세종", "Add efx in {0}", m_EffectName);
                        }
                    }
                }

                _newEfx = null;
            }
        }

        EditorGUILayout.EndHorizontal();
    }
Пример #14
0
 //Todo 디버그 청소
 private void ClearDebug()
 {
     ConsoleProDebug.Clear();                //! Debug 창의 내용을 모두 지운다.
 }
Пример #15
0
 /// <summary>
 /// 배경음악 정지
 /// void 형식이라 StartCorutine 안써도 됨
 /// </summary>
 public void StopBGM()
 {
     audioSource_BGM.Stop();         //! 배경음악을 정지시킨다.
     ConsoleProDebug.Watch("BGM", "All Stop");
     Invoke("ClearDebug", 5);        // ? "디버그청소" 함수를 5초 이후 실행
 }