예제 #1
0
 public SoundAudioClip GetAudioClip(AudioManager.Sound soundType)
 {
     if (soundsDictionary.ContainsKey(soundType))
     {
         return(soundsDictionary[soundType]);
     }
     else
     {
         return(null);
     }
 }
예제 #2
0
    public void Move(Vector2 dir)
    {
        if (!canMove)
        {
            return;
        }
        if (isGroundDashing)
        {
            return;
        }

        //Debug.Log(dir.magnitude);

        if (dir.magnitude > 0.1f && Time.time > nextFootstep && !isGroundDashing && !isJumpDashing && _grounded)
        {
            //Debug.Log("haha");
            nextFootstep = Time.time + footRate;
            AudioManager.Sound randomClip = _audio.sounds[Random.Range(0, 4)];
            _audio.PlayOne(randomClip.name);
            photonView.RPC("playAudio",
                           RpcTarget.Others,
                           randomClip.name,
                           0,
                           false
                           );
            //GetComponent<AudioSource>().PlayOneShot(GetComponent<AudioSource>().clip);
        }
        //else if((dir.magnitude < 0.05f && footRate != strafeRate && footRate != rifleStrafeRate) || isGroundDashing || isJumpDashing || !_grounded)
        //{
        //    //audio.Stop("Running");
        //    for (int i = 0; i < 4; i++)
        //    {
        //        AudioManager.Sound randomClip = _audio.sounds[i];
        //        _audio.Stop(randomClip.name);
        //    }
        //}

        if (_grounded)
        {
            _rb.velocity = transform.TransformDirection(dir.x, _rb.velocity.y, dir.y);
        }
        else
        {
            Vector3 F = transform.TransformDirection(dir.x * jumpDrag, 0, dir.y * jumpDrag) * Time.fixedDeltaTime;
            Vector3 V = (F / _rb.mass) * Time.fixedDeltaTime + _rb.velocity;

            if (velocityCalc(V) < runningSpeed)
            {
                _rb.AddForce(transform.TransformDirection(dir.x * jumpDrag, 0, dir.y * jumpDrag) * Time.fixedDeltaTime);
            }

            _rb.AddForce(new Vector3(-_rb.velocity.x * jumpDrag, 0, -_rb.velocity.z * jumpDrag) * Time.fixedDeltaTime);
        }
    }
예제 #3
0
 public static SoundAudioClip GetAudio(AudioManager.Sound sound)
 {
     foreach (GameAssets.SoundAudioClip soundAudioClip in GameAssets.i.soundAudioClipArray)
     {
         if (soundAudioClip.sound == sound)
         {
             return(soundAudioClip);
         }
     }
     Debug.LogError("Sound" + sound + "wasnt found!");
     return(null);
 }
예제 #4
0
    public void SetBackgroundMusic(AudioManager.Sound sound)
    {
        backgroundMusic = sound;
        AudioManager.PlayAsBackground(backgroundMusic);

        /*GameAssets.SoundAudioClip sac = AudioManager.GetSoundAudioClip(sound);
         * AudioSource source = bgMusicObject.GetComponent<AudioSource>();
         * if (source.isPlaying)
         *  source.Stop();
         *
         * source.volume = sac.volume;
         * source.pitch = sac.pitch;
         *
         * source.PlayOneShot(sac.audio);*/
    }
예제 #5
0
    public void PlayFeedback()
    {
        if (soundsToPlay.Length > 0)
        {
            AudioManager.Sound sound = soundsToPlay[Random.Range(0, soundsToPlay.Length)];
            AudioManager.PlaySound(sound);
        }

        if (fxsToPlay.Length > 0)
        {
            string    fxTag = fxsToPlay[Random.Range(0, fxsToPlay.Length)];
            Transform tr    = positionToPlay ? positionToPlay : transform;
            FxManager.Instance.PlayFx(fxTag, positionToPlay.position, positionToPlay.rotation, positionToPlay.lossyScale);
        }
    }
예제 #6
0
 void OnSceneLoaded(Scene scene, LoadSceneMode mode)
 {
     Debug.Log("Onsceneloaded called");
     if (scene.buildIndex == 1 || scene.buildIndex == 2)
     {
         GetGameObjects();
         lifePoints      = 100;
         backgroundMusic = AudioManager.Sound.Background;
         //AudioManager.PlayAsBackground(backgroundMusic);
         if (AudioManager.GetBGObject() == null)
         {
             bgMusicObject = GameObject.Instantiate(bgMusicPrefab) as GameObject;
             AudioManager.SetBGObject(bgMusicObject);
             AudioManager.SetAudioSourceBG(bgMusicObject.GetComponent <AudioSource>());
         }
     }
     GetLoader();
 }
예제 #7
0
    void PreviewSound(AudioManager.Sound sound, int i)
    {
        previewers[i] = EditorUtility.CreateGameObjectWithHideFlags("AudioPreview", HideFlags.DontSaveInEditor, typeof(AudioSource)).GetComponent <AudioSource>();

        int spatialBlend = sound.spatialBlend ? 1 : 0;

        previewers[i].clip = sound.clip;
        previewers[i].outputAudioMixerGroup = sound.mixer;
        previewers[i].loop         = sound.loop;
        previewers[i].volume       = sound.volume;
        previewers[i].pitch        = sound.pitch;
        previewers[i].priority     = sound.priority;
        previewers[i].spatialBlend = spatialBlend;
        previewers[i].minDistance  = sound.settings.minDistance;
        previewers[i].maxDistance  = sound.settings.maxDistance;

        previewers[i].Play();

        // EditorCoroutineUtility.StartCoroutine(DestroyOnDelay(sound.clip.length, previewer, i), this);
    }
예제 #8
0
    public void networkSounds()
    {
        Vector3 dir = m_networkedPosition - transform.position;

        if (dir.magnitude > 0.05f && Time.time > nextFootstep && !isGroundDashing && !isJumpDashing && _grounded)
        {
            //Debug.Log("haha");
            nextFootstep = Time.time + footRate;
            AudioManager.Sound randomClip = _audio.sounds[Random.Range(0, 4)];
            _audio.PlayOne(randomClip.name);
            //GetComponent<AudioSource>().PlayOneShot(GetComponent<AudioSource>().clip);
        }
        else if (dir.magnitude < 0.05f || isGroundDashing || isJumpDashing || !_grounded)
        {
            //audio.Stop("Running");
            for (int i = 0; i < 4; i++)
            {
                AudioManager.Sound randomClip = _audio.sounds[i];
                _audio.Stop(randomClip.name);
            }
        }
    }
예제 #9
0
    public override void OnInspectorGUI()
    {
        if (!metaTarget)
        {
            EditorGUILayout.HelpBox("AudioAssistant is missing", MessageType.Error);
            return;
        }
        mySerializedObject.Update();
        main = (AudioManager)metaTarget;
        Undo.RecordObject(main, "");

        if (main.tracks == null)
        {
            main.tracks = new List <AudioManager.MusicTrack>();
        }

        if (main.sounds == null)
        {
            main.sounds = new List <AudioManager.Sound>();
        }

        #region Music Tracks

        listTracks.drawHeaderCallback = rect => {
            EditorGUI.LabelField(new Rect(rect.x + 15, rect.y, 120, EditorGUIUtility.singleLineHeight), "Name");
            EditorGUI.LabelField(new Rect(rect.x + 135, rect.y, rect.width - 120, EditorGUIUtility.singleLineHeight), "Track");
        };
        listTracks.drawElementCallback =
            (Rect rect, int index, bool isActive, bool isFocused) =>
        {
            var element = listTracks.serializedProperty.GetArrayElementAtIndex(index);
            EditorGUI.PropertyField(new Rect(rect.x, rect.y, 120, EditorGUIUtility.singleLineHeight), element.FindPropertyRelative("name"), GUIContent.none);
            EditorGUI.PropertyField(new Rect(rect.x + 120, rect.y, rect.width - 120, EditorGUIUtility.singleLineHeight), element.FindPropertyRelative("track"), GUIContent.none);
        };
        var property = listTracks.serializedProperty;
        GUILayout.BeginVertical("Box");
        property.isExpanded = EditorGUILayout.Foldout(property.isExpanded, "Background Music (Track)");
        if (property.isExpanded)
        {
            this.listTracks.DoLayoutList();
        }
        GUILayout.EndVertical();

        mySerializedObject.ApplyModifiedProperties();


        #endregion

        #region Sounds
        EditorGUILayout.BeginVertical("Box");
        isExpanded = EditorGUILayout.Foldout(isExpanded, "Sounds Effect (Track)");
        if (isExpanded)
        {
            EditorGUILayout.BeginHorizontal();

            GUILayout.Space(20);
            GUILayout.Label("Edit", EditorStyles.centeredGreyMiniLabel, GUILayout.Width(40));
            GUILayout.Label("Name", EditorStyles.centeredGreyMiniLabel, GUILayout.Width(120));
            GUILayout.Label("Audio Clips", EditorStyles.centeredGreyMiniLabel, GUILayout.ExpandWidth(true));

            EditorGUILayout.EndHorizontal();

            foreach (AudioManager.Sound sound in main.sounds)
            {
                EditorGUILayout.BeginHorizontal("Box");

                if (GUILayout.Button("X", EditorStyles.miniButtonLeft, GUILayout.Width(20)))
                {
                    main.sounds.Remove(sound);
                    break;
                }
                if (GUILayout.Button("Edit", EditorStyles.miniButtonRight, GUILayout.Width(40)))
                {
                    if (edit == sound)
                    {
                        edit = null;
                    }
                    else
                    {
                        edit = sound;
                    }
                }

                sound.name = EditorGUILayout.TextField(sound.name, GUILayout.Width(120));

                if (edit == sound || sound.clips.Count == 0)
                {
                    EditorGUILayout.BeginVertical();
                    for (int i = 0; i < sound.clips.Count; i++)
                    {
                        sound.clips[i] = (AudioClip)EditorGUILayout.ObjectField(sound.clips[i], typeof(AudioClip), false, GUILayout.ExpandWidth(true));
                        if (sound.clips[i] == null)
                        {
                            sound.clips.RemoveAt(i);
                            break;
                        }
                    }
                    AudioClip new_clip = (AudioClip)EditorGUILayout.ObjectField(null, typeof(AudioClip), false, GUILayout.ExpandWidth(true));
                    if (new_clip)
                    {
                        sound.clips.Add(new_clip);
                    }
                    EditorGUILayout.EndVertical();
                }
                else
                {
                    GUILayout.Label(sound.clips.Count.ToString() + " audio clip(s)", EditorStyles.miniBoldLabel);
                }


                EditorGUILayout.EndHorizontal();
            }

            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button("Add", EditorStyles.miniButtonLeft, GUILayout.Width(60)))
            {
                main.sounds.Add(new AudioManager.Sound());
                edit = main.sounds[main.sounds.Count - 1];
            }
            if (GUILayout.Button("Sort", EditorStyles.miniButtonRight, GUILayout.Width(60)))
            {
                main.sounds.Sort((AudioManager.Sound a, AudioManager.Sound b) =>
                {
                    return(string.Compare(a.name, b.name));
                });
                foreach (AudioManager.Sound sound in main.sounds)
                {
                    sound.clips.Sort((AudioClip a, AudioClip b) =>
                    {
                        return(string.Compare(a.ToString(), b.ToString()));
                    });
                }
            }
            EditorGUILayout.EndHorizontal();
        }

        EditorGUILayout.EndVertical();
        #endregion
    }
예제 #10
0
    private void DrawSounds()
    {
        GUILayout.Label("Sounds");


        EditorGUILayout.BeginVertical(EditorStyles.textArea);

        EditorGUILayout.BeginHorizontal();

        GUILayout.Space(20);
        GUILayout.Label("Edit", EditorStyles.centeredGreyMiniLabel, GUILayout.Width(40));
        GUILayout.Label("Name", EditorStyles.centeredGreyMiniLabel, GUILayout.Width(120));
        GUILayout.Label("Audio Clips", EditorStyles.centeredGreyMiniLabel, GUILayout.ExpandWidth(true));

        EditorGUILayout.EndHorizontal();

        foreach (AudioManager.Sound sound in instance.sounds)
        {
            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button("X", GUILayout.Width(20)))
            {
                instance.sounds.Remove(sound);
                break;
            }

            if (GUILayout.Button("Edit", GUILayout.Width(40)))
            {
                soundInstance = soundInstance == sound ? null : sound;
            }

            sound.name = EditorGUILayout.TextField(sound.name, GUILayout.Width(120));

            if (soundInstance == sound || sound.clips.Count == 0)
            {
                EditorGUILayout.BeginVertical();
                for (int i = 0; i < sound.clips.Count; i++)
                {
                    sound.clips[i] = (AudioClip)EditorGUILayout.ObjectField(sound.clips[i], typeof(AudioClip), false,
                                                                            GUILayout.ExpandWidth(true));
                    if (sound.clips[i] != null)
                    {
                        continue;
                    }
                    sound.clips.RemoveAt(i);
                    break;
                }

                AudioClip new_clip =
                    (AudioClip)EditorGUILayout.ObjectField(null, typeof(AudioClip), false, GUILayout.Width(150));
                if (new_clip)
                {
                    sound.clips.Add(new_clip);
                }
                EditorGUILayout.EndVertical();
            }
            else
            {
                GUILayout.Label(sound.clips.Count.ToString() + " audio clip(s)", EditorStyles.miniBoldLabel);
            }


            EditorGUILayout.EndHorizontal();
        }

        EditorGUILayout.BeginHorizontal();

        if (GUILayout.Button("Add", GUILayout.Width(60)))
        {
            instance.sounds.Add(new AudioManager.Sound());
            soundInstance = instance.sounds[instance.sounds.Count - 1];
        }

        if (GUILayout.Button("Sort", GUILayout.Width(60)))
        {
            instance.sounds.Sort((a, b) => string.Compare(a.name, b.name));
            foreach (AudioManager.Sound sound in instance.sounds)
            {
                sound.clips.Sort((a, b) => string.Compare(a.ToString(), b.ToString()));
            }
        }

        EditorGUILayout.EndHorizontal();
        EditorGUILayout.EndVertical();
    }