private void UpgradeData() { if (_creator.groupTemplate == null) { DTGUIHelper.ShowAlert("Your 'Group Template' field is empty, please assign it in debug mode. Drag the 'DynamicSoundGroup' prefab from MasterAudio/Sources/Prefabs into that field, then switch back to normal mode. Upgrade data cancelled."); return; } if (_creator.variationTemplate == null) { DTGUIHelper.ShowAlert("Your 'Variation Template' field is empty, please assign it in debug mode. Drag the 'DynamicGroupVariation' prefab from MasterAudio/Sources/Prefabs into that field, then switch back to normal mode. Upgrade data cancelled"); return; } for (var g = 0; g < _creator.soundGroupsToCreate.Count; g++) { var grp = _creator.soundGroupsToCreate[g]; var groupName = grp.groupName; var match = _groups.FindAll(delegate(DynamicSoundGroup obj) { return(obj.name == groupName); }); if (match.Count > 0) { Debug.LogWarning("Dynamic Sound Group '" + groupName + "' already exists. Please rename one of them."); } var newGrp = (GameObject)GameObject.Instantiate(_creator.groupTemplate, _creator.transform.position, Quaternion.identity); newGrp.transform.name = groupName; newGrp.transform.parent = _creator.transform; var groupScript = newGrp.GetComponent <DynamicSoundGroup>(); if (grp.duckSound) { var duckMatch = _creator.musicDuckingSounds.FindAll(delegate(DuckGroupInfo obj) { return(obj.soundType == groupName); }); if (duckMatch.Count > 0) { Debug.LogWarning("Dynamic Duck Setting for Sound Group '" + groupName + "' already exists. Skipping adding Duck Group."); } else { var newDuck = new DuckGroupInfo() { soundType = groupName, riseVolStart = grp.riseVolStart }; _creator.musicDuckingSounds.Add(newDuck); } } switch (grp.busMode) { case DynamicSoundGroupInfo.BusMode.NoBus: break; case DynamicSoundGroupInfo.BusMode.UseExisting: var matchBusIndex = _creator.groupBuses.FindIndex(delegate(GroupBus obj) { return(obj.busName == grp.busName); }); if (matchBusIndex < 0) // bus doesn't exist in Dynamic SGC { var newBus = new GroupBus() { busName = grp.busName, isExisting = true }; _creator.groupBuses.Add(newBus); matchBusIndex = _creator.groupBuses.FindIndex(delegate(GroupBus obj) { return(obj.busName == grp.busName); }); } groupScript.busIndex = matchBusIndex + DynamicSoundGroupCreator.HardCodedBusOptions; groupScript.busName = grp.busName; break; case DynamicSoundGroupInfo.BusMode.CreateNew: break; } groupScript.groupMasterVolume = grp.groupMasterVolume; groupScript.retriggerPercentage = grp.retriggerPercentage; groupScript.curVariationSequence = grp.curVariationSequence; groupScript.useInactivePeriodPoolRefill = grp.useInactivePeriodPoolRefill; groupScript.inactivePeriodSeconds = grp.inactivePeriodSeconds; groupScript.curVariationMode = grp.curVariationMode; groupScript.limitMode = grp.limitMode; groupScript.limitPerXFrames = grp.limitPerXFrames; groupScript.minimumTimeBetween = grp.minimumTimeBetween; groupScript.limitPolyphony = grp.limitPolyphony; groupScript.voiceLimitCount = grp.voiceLimitCount; // make variations! for (var v = 0; v < grp.variations.Count; v++) { var aVar = grp.variations[v]; var newVar = (GameObject)GameObject.Instantiate(_creator.variationTemplate, _creator.transform.position, Quaternion.identity); var varName = string.Empty; switch (aVar.audLocation) { case MasterAudio.AudioLocation.Clip: varName = string.IsNullOrEmpty(aVar.clipName) ? aVar.clip.name : aVar.clipName; break; case MasterAudio.AudioLocation.ResourceFile: varName = aVar.resourceFileName; break; } newVar.transform.name = varName; newVar.transform.parent = newGrp.transform; var varScript = newVar.GetComponent <DynamicGroupVariation>(); varScript.audLocation = aVar.audLocation; switch (aVar.audLocation) { case MasterAudio.AudioLocation.Clip: varScript.audio.clip = aVar.clip; break; case MasterAudio.AudioLocation.ResourceFile: varScript.resourceFileName = aVar.resourceFileName; break; } varScript.weight = aVar.weight; varScript.audio.volume = aVar.volume; varScript.audio.pitch = aVar.pitch; varScript.audio.loop = aVar.loopClip; varScript.randomPitch = aVar.randomPitch; varScript.randomVolume = aVar.randomVolume; varScript.useFades = aVar.useFades; varScript.fadeInTime = aVar.fadeInTime; varScript.fadeOutTime = aVar.fadeOutTime; varScript.audio.rolloffMode = aVar.audRollOffMode; varScript.audio.minDistance = aVar.audMinDistance; varScript.audio.maxDistance = aVar.audMaxDistance; varScript.audio.dopplerLevel = aVar.audDopplerLevel; varScript.audio.spread = aVar.audSpread; varScript.audio.panLevel = aVar.audPanLevel; } } _creator.soundGroupsToCreate.Clear(); DTGUIHelper.ShowAlert("Dynamic Sound Group Creator data upgraded successfully!"); }
private void UpgradeData() { if (_creator.groupTemplate == null) { GUIHelper.ShowAlert("Your 'Group Template' field is empty, please assign it in debug mode. Drag the 'DynamicSoundGroup' prefab from MasterAudio/Sources/Prefabs into that field, then switch back to normal mode. Upgrade data cancelled."); return; } if (_creator.variationTemplate == null) { GUIHelper.ShowAlert("Your 'Variation Template' field is empty, please assign it in debug mode. Drag the 'DynamicGroupVariation' prefab from MasterAudio/Sources/Prefabs into that field, then switch back to normal mode. Upgrade data cancelled"); return; } for (var g = 0; g < _creator.soundGroupsToCreate.Count; g++) { var grp = _creator.soundGroupsToCreate[g]; var groupName = grp.groupName; var match = _groups.FindAll(delegate(DynamicSoundGroup obj) { return obj.name == groupName; }); if (match.Count > 0) { Debug.LogWarning("Dynamic Sound Group '" + groupName + "' already exists. Please rename one of them."); } var newGrp = (GameObject) GameObject.Instantiate(_creator.groupTemplate, _creator.transform.position, Quaternion.identity); newGrp.transform.name = groupName; newGrp.transform.parent = _creator.transform; var groupScript = newGrp.GetComponent<DynamicSoundGroup>(); if (grp.duckSound) { var duckMatch = _creator.musicDuckingSounds.FindAll(delegate(DuckGroupInfo obj) { return obj.soundType == groupName; }); if (duckMatch.Count > 0) { Debug.LogWarning("Dynamic Duck Setting for Sound Group '" + groupName + "' already exists. Skipping adding Duck Group."); } else { var newDuck = new DuckGroupInfo() { soundType = groupName, riseVolStart = grp.riseVolStart }; _creator.musicDuckingSounds.Add(newDuck); } } switch (grp.busMode) { case DynamicSoundGroupInfo.BusMode.NoBus: break; case DynamicSoundGroupInfo.BusMode.UseExisting: var matchBusIndex = _creator.groupBuses.FindIndex(delegate(GroupBus obj) { return obj.busName == grp.busName; }); if (matchBusIndex < 0) { // bus doesn't exist in Dynamic SGC var newBus = new GroupBus() { busName = grp.busName, isExisting = true }; _creator.groupBuses.Add(newBus); matchBusIndex = _creator.groupBuses.FindIndex(delegate(GroupBus obj) { return obj.busName == grp.busName; }); } groupScript.busIndex = matchBusIndex + DynamicSoundGroupCreator.HardCodedBusOptions; groupScript.busName = grp.busName; break; case DynamicSoundGroupInfo.BusMode.CreateNew: break; } groupScript.groupMasterVolume = grp.groupMasterVolume; groupScript.retriggerPercentage = grp.retriggerPercentage; groupScript.curVariationSequence = grp.curVariationSequence; groupScript.useInactivePeriodPoolRefill = grp.useInactivePeriodPoolRefill; groupScript.inactivePeriodSeconds = grp.inactivePeriodSeconds; groupScript.curVariationMode = grp.curVariationMode; groupScript.limitMode = grp.limitMode; groupScript.limitPerXFrames = grp.limitPerXFrames; groupScript.minimumTimeBetween = grp.minimumTimeBetween; groupScript.limitPolyphony = grp.limitPolyphony; groupScript.voiceLimitCount = grp.voiceLimitCount; // make variations! for (var v = 0; v < grp.variations.Count; v++) { var aVar = grp.variations[v]; var newVar = (GameObject) GameObject.Instantiate(_creator.variationTemplate, _creator.transform.position, Quaternion.identity); var varName = string.Empty; switch (aVar.audLocation) { case MasterAudio.AudioLocation.Clip: varName = string.IsNullOrEmpty(aVar.clipName) ? aVar.clip.name : aVar.clipName; break; case MasterAudio.AudioLocation.ResourceFile: varName = aVar.resourceFileName; break; } newVar.transform.name = varName; newVar.transform.parent = newGrp.transform; var varScript = newVar.GetComponent<DynamicGroupVariation>(); varScript.audLocation = aVar.audLocation; switch (aVar.audLocation) { case MasterAudio.AudioLocation.Clip: varScript.audio.clip = aVar.clip; break; case MasterAudio.AudioLocation.ResourceFile: varScript.resourceFileName = aVar.resourceFileName; break; } varScript.weight = aVar.weight; varScript.audio.volume = aVar.volume; varScript.audio.pitch = aVar.pitch; varScript.audio.loop = aVar.loopClip; varScript.randomPitch = aVar.randomPitch; varScript.randomVolume = aVar.randomVolume; varScript.useFades = aVar.useFades; varScript.fadeInTime = aVar.fadeInTime; varScript.fadeOutTime = aVar.fadeOutTime; varScript.audio.rolloffMode = aVar.audRollOffMode; varScript.audio.minDistance = aVar.audMinDistance; varScript.audio.maxDistance = aVar.audMaxDistance; varScript.audio.dopplerLevel = aVar.audDopplerLevel; varScript.audio.spread = aVar.audSpread; varScript.audio.panLevel = aVar.audPanLevel; } } _creator.soundGroupsToCreate.Clear(); GUIHelper.ShowAlert("Dynamic Sound Group Creator data upgraded successfully!"); }