Skip to content

Commit

Permalink
run formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
david weil committed Feb 8, 2024
1 parent 641dedc commit 6ab7e2a
Show file tree
Hide file tree
Showing 23 changed files with 308 additions and 612 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ public override void OnPlayerTriggerEnter(VRCPlayerApi player)
}
}
}
#endif
#endif
Original file line number Diff line number Diff line change
@@ -1,55 +1,44 @@
using System.IO;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEditor.Experimental.SceneManagement;
using UnityEditor.SceneManagement;
using UnityEngine;

namespace AudioLink.Editor
{
namespace AudioLink.Editor {
[InitializeOnLoad]
public class AudioLinkAssetManager
{
public class AudioLinkAssetManager {
private const string audioLinkReimportedKey = "AUDIOLINK_REIMPORTED";

static AudioLinkAssetManager()
{
static AudioLinkAssetManager() {
// Skip if we've already checked for the canary file during this Editor Session
if (!SessionState.GetBool(audioLinkReimportedKey, false))
{
if (!SessionState.GetBool(audioLinkReimportedKey, false)) {
// Check for canary file in Library - package probably needs a reimport after a Library wipe
string canaryFilePath = Path.Combine("Library", audioLinkReimportedKey);
if (File.Exists(canaryFilePath))
{
if (File.Exists(canaryFilePath)) {
SessionState.SetBool(audioLinkReimportedKey, true);
}
else
{
} else {
ReimportPackage();
File.WriteAllText(canaryFilePath, audioLinkReimportedKey);
AudioLinkShaderCompatabilityUtility.UpgradeShaders();
}
}
}

private static void ReimportPackage()
{
private static void ReimportPackage() {
AssetDatabase.ImportAsset(Path.Combine("Packages", "com.llealloo.audiolink"), ImportAssetOptions.ImportRecursive);
SessionState.SetBool(audioLinkReimportedKey, true);
}

#if !AUDIOLINK_STANDALONE
[MenuItem("Tools/AudioLink/Open AudioLink Example Scene")]
public static void OpenExampleScene()
{
if (EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
{
public static void OpenExampleScene() {
if (EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo()) {
string baseAssetsPath = "Samples/AudioLink/1.2.1";
string packagePath = "Packages/com.llealloo.audiolink/Samples~/AudioLinkExampleScene";
string assetsPath = Path.Combine("Assets", baseAssetsPath, "AudioLinkExampleScene");
if (!Directory.Exists(Path.Combine(Application.dataPath, baseAssetsPath, "AudioLinkExampleScene")))
{
if (!Directory.Exists(Path.Combine(Application.dataPath, baseAssetsPath, "AudioLinkExampleScene"))) {
Directory.CreateDirectory(Path.Combine(Application.dataPath, baseAssetsPath));
FileUtil.CopyFileOrDirectory(packagePath, assetsPath);
AssetDatabase.Refresh();
Expand All @@ -68,8 +57,7 @@ public static void OpenExampleScene()

[MenuItem("Tools/AudioLink/Add AudioLink Prefab to Scene", false)]
[MenuItem("GameObject/AudioLink/Add AudioLink Prefab to Scene", false, 49)]
public static void AddAudioLinkToScene()
{
public static void AddAudioLinkToScene() {
GameObject audiolink = null;

#if UDONSHARP // VRC World
Expand All @@ -92,42 +80,37 @@ public static void AddAudioLinkToScene()
audiolink = alInstance != null ? alInstance.gameObject : AddPrefabInstance(_audioLinkPath);
#endif

if (audiolink != null)
{
if (audiolink != null) {
AudioLinkEditor.LinkAll(audiolink.GetComponent<AudioLink>());
EditorGUIUtility.PingObject(audiolink);
}
}

private static GameObject AddPrefabInstance(string assetPath)
{
private static GameObject AddPrefabInstance(string assetPath) {
var sourceAsset = AssetDatabase.LoadAssetAtPath<GameObject>(assetPath);
GameObject instance = null;
if (sourceAsset != null)
{
if (sourceAsset != null) {
instance = (GameObject)PrefabUtility.InstantiatePrefab(sourceAsset);
Undo.RegisterCreatedObjectUndo(instance, "Undo create prefab instance");
}

return instance;
}

private static T[] GetComponentsInScene<T>(bool includeInactive = true) where T : Component
{
private static T[] GetComponentsInScene<T>(bool includeInactive = true) where T : Component {
var stage = PrefabStageUtility.GetCurrentPrefabStage();
GameObject[] roots = stage == null ? UnityEngine.SceneManagement.SceneManager.GetActiveScene().GetRootGameObjects() : new[] { stage.prefabContentsRoot };
List<T> objects = new List<T>();
foreach (GameObject root in roots) objects.AddRange(root.GetComponentsInChildren<T>(includeInactive));
return objects.ToArray();
}

private static GameObject[] GetGameObjectsInScene(string name, bool includeInactive = true)
{
private static GameObject[] GetGameObjectsInScene(string name, bool includeInactive = true) {
var stage = PrefabStageUtility.GetCurrentPrefabStage();
GameObject[] roots = stage == null ? UnityEngine.SceneManagement.SceneManager.GetActiveScene().GetRootGameObjects() : new[] { stage.prefabContentsRoot };
List<Transform> objects = new List<Transform>();
foreach (GameObject root in roots) objects.AddRange(root.GetComponentsInChildren<Transform>(includeInactive));
return objects.Where(t => t.gameObject.name == name).Select(t => t.gameObject).ToArray();
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,16 @@
using UnityEditor;
using UnityEngine;

namespace AudioLink.Editor
{
namespace AudioLink.Editor {
[InitializeOnLoad]
public class AudioLinkDefineManager
{
static AudioLinkDefineManager()
{
public class AudioLinkDefineManager {
static AudioLinkDefineManager() {
AddDefineIfMissing(EditorUserBuildSettings.selectedBuildTargetGroup, "AUDIOLINK");
AddDefineIfMissing(EditorUserBuildSettings.selectedBuildTargetGroup, "AUDIOLINK_V1");
Shader.EnableKeyword("AUDIOLINK_IMPORTED");
}

private static void AddDefineIfMissing(BuildTargetGroup buildTarget, string newDefine)
{
private static void AddDefineIfMissing(BuildTargetGroup buildTarget, string newDefine) {
bool definesChanged = false;
string existingDefines = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTarget);
HashSet<string> defineSet = new HashSet<string>();
Expand All @@ -28,8 +24,7 @@ private static void AddDefineIfMissing(BuildTargetGroup buildTarget, string newD
if (defineSet.Add(newDefine))
definesChanged = true;

if (definesChanged)
{
if (definesChanged) {
string finalDefineString = string.Join(";", defineSet.ToArray());
PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTarget, finalDefineString);
Debug.LogFormat("Set Scripting Define Symbols for selected build target ({0}) to: {1}",
Expand All @@ -38,4 +33,4 @@ private static void AddDefineIfMissing(BuildTargetGroup buildTarget, string newD
}
}
}
#endif
#endif
63 changes: 21 additions & 42 deletions Packages/com.llealloo.audiolink/Editor/Scripts/AudioLinkEditor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,115 +9,94 @@
using UnityEditor;
using UnityEngine;

namespace AudioLink.Editor
{
namespace AudioLink.Editor {
[CustomEditor(typeof(AudioLink))]
public class AudioLinkEditor : UnityEditor.Editor
{
public class AudioLinkEditor : UnityEditor.Editor {
private readonly static GUIContent DisableReadbackButtonContent = EditorGUIUtility.TrTextContent("Disable readback", "Disables asynchronous readback, which is required for audio-reactive Udon scripts to function. This feature comes with a slight performance penalty.");
private readonly static GUIContent EnableReadbackButtonContent = EditorGUIUtility.TrTextContent("Enable readback", "Enables asynchronous readback, which is required for audio-reactive Udon scripts to function. This feature comes with a slight performance penalty.");

public void OnEnable()
{
public void OnEnable() {
AudioLink audioLink = (AudioLink)target;
if (audioLink.audioData2D == null)
{
if (audioLink.audioData2D == null) {
audioLink.audioData2D =
AssetDatabase.LoadAssetAtPath<Texture2D>(
AssetDatabase.GUIDToAssetPath("b07c8466531ac5e4e852f3e276e4baca"));
Debug.Log(nameof(AudioLink) + ": restored audioData2D reference");
}
}

public override void OnInspectorGUI()
{
public override void OnInspectorGUI() {
AudioLink audioLink = (AudioLink)target;
#if UDONSHARP
if (UdonSharpGUI.DrawDefaultUdonSharpBehaviourHeader(target)) return;
#endif

if (Camera.main == null)
{
if (Camera.main == null) {
EditorGUILayout.HelpBox("The current scene might be missing a main camera, this could cause issues with the AudioLink camera.", MessageType.Warning);
}

if (audioLink.audioSource == null)
{
if (audioLink.audioSource == null) {
EditorGUILayout.HelpBox("No audio source assigned. AudioLink will not work.", MessageType.Warning);
}

EditorGUILayout.Space();
if (GUILayout.Button(new GUIContent("Link all sound reactive objects to this AudioLink instance",
"Links all scripts with 'audioLink' parameter to this object.")))
{
"Links all scripts with 'audioLink' parameter to this object."))) {
LinkAll();
}

EditorGUILayout.Space();
base.OnInspectorGUI();
EditorGUILayout.Space();

if (audioLink.audioDataToggle)
{
if (audioLink.audioDataToggle) {
GUI.backgroundColor = Color.red;
if (GUILayout.Button(DisableReadbackButtonContent))
{
if (GUILayout.Button(DisableReadbackButtonContent)) {
audioLink.DisableReadback();
EditorUtility.SetDirty(audioLink);
}
}
else
{
} else {
GUI.backgroundColor = Color.green;
if (GUILayout.Button(EnableReadbackButtonContent))
{
if (GUILayout.Button(EnableReadbackButtonContent)) {
audioLink.EnableReadback();
EditorUtility.SetDirty(audioLink);
}
}
}

public void LinkAll()
{
public void LinkAll() {
LinkAll(target as AudioLink);
}

public static void LinkAll(AudioLink target)
{
public static void LinkAll(AudioLink target) {
#if UDONSHARP
UdonSharpBehaviour[] allBehaviours = FindObjectsOfType<UdonSharpBehaviour>();
#else
MonoBehaviour[] allBehaviours = FindObjectsOfType<MonoBehaviour>();
#endif
// this handles all reasonable cases of referencing audiolink
// (it doesn't handle referencing it multiple times in one monobehaviour, or referencing it as it's Base type)
foreach (var behaviour in allBehaviours)
{
foreach (var behaviour in allBehaviours) {
FieldInfo fieldInfo = behaviour.GetType().GetField("audioLink");
// in case the field isn't called "audioLink"
if (fieldInfo == null)
{
foreach (FieldInfo field in behaviour.GetType().GetFields())
{
if (field.FieldType == typeof(AudioLink))
{
if (fieldInfo == null) {
foreach (FieldInfo field in behaviour.GetType().GetFields()) {
if (field.FieldType == typeof(AudioLink)) {
fieldInfo = field;
break;
}
}
}
if (fieldInfo != null && fieldInfo.FieldType == typeof(AudioLink))
{
if (fieldInfo != null && fieldInfo.FieldType == typeof(AudioLink)) {
fieldInfo.SetValue(behaviour, target);
EditorUtility.SetDirty(behaviour);

if (PrefabUtility.IsPartOfPrefabInstance(behaviour))
{
if (PrefabUtility.IsPartOfPrefabInstance(behaviour)) {
PrefabUtility.RecordPrefabInstancePropertyModifications(behaviour);
}
}
}
}
}
}
#endif
#endif
Original file line number Diff line number Diff line change
Expand Up @@ -79,4 +79,4 @@ public override void OnInspectorGUI()
}
}
}
#endif
#endif
Loading

0 comments on commit 6ab7e2a

Please sign in to comment.