Skip to content

Commit

Permalink
✨ feat: find from children
Browse files Browse the repository at this point in the history
  • Loading branch information
esnya committed Aug 19, 2021
1 parent 6151af9 commit 5254aba
Show file tree
Hide file tree
Showing 3 changed files with 189 additions and 20 deletions.
191 changes: 175 additions & 16 deletions Assets/InariUdon/Driver/FloatMultiValueDriver.asset
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 13
Data: 15
- Name:
Entry: 7
Data:
Expand Down Expand Up @@ -850,16 +850,91 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: variableName
Data: useFind
- Name: $v
Entry: 7
Data: 56|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: fieldSymbol
Entry: 7
Data: 57|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor
- Name: internalType
Entry: 9
Data: 8
- Name: declarationType
Entry: 3
Data: 1
- Name: syncMode
Entry: 3
Data: 0
- Name: symbolResolvedTypeName
Entry: 1
Data: SystemBoolean
- Name: symbolOriginalName
Entry: 1
Data: useFind
- Name: symbolUniqueName
Entry: 1
Data: useFind
- Name: symbolDefaultValue
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: fieldAttributes
Entry: 7
Data: 58|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 58|System.RuntimeType, mscorlib
Data: 59|UdonToolkit.HideIfAttribute, UdonToolkitRuntime
- Name: methodName
Entry: 1
Data: '@!writeProgramVariables'
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 60|UdonToolkit.HideIfAttribute, UdonToolkitRuntime
- Name: methodName
Entry: 1
Data: '@!findTargetFromChildren'
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name: userBehaviourSource
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: findPath
- Name: $v
Entry: 7
Data: 61|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: fieldSymbol
Entry: 7
Data: 62|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor
- Name: internalType
Entry: 7
Data: 63|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.String, mscorlib
Expand All @@ -875,6 +950,90 @@ MonoBehaviour:
- Name: symbolResolvedTypeName
Entry: 1
Data: SystemString
- Name: symbolOriginalName
Entry: 1
Data: findPath
- Name: symbolUniqueName
Entry: 1
Data: findPath
- Name: symbolDefaultValue
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: fieldAttributes
Entry: 7
Data: 64|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 3
- Name:
Entry: 7
Data: 65|UdonToolkit.HideIfAttribute, UdonToolkitRuntime
- Name: methodName
Entry: 1
Data: '@!writeProgramVariables'
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 66|UdonToolkit.HideIfAttribute, UdonToolkitRuntime
- Name: methodName
Entry: 1
Data: '@!findTargetFromChildren'
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 67|UdonToolkit.HideIfAttribute, UdonToolkitRuntime
- Name: methodName
Entry: 1
Data: '@!useFind'
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name: userBehaviourSource
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: variableName
- Name: $v
Entry: 7
Data: 68|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: fieldSymbol
Entry: 7
Data: 69|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor
- Name: internalType
Entry: 9
Data: 63
- Name: declarationType
Entry: 3
Data: 1
- Name: syncMode
Entry: 3
Data: 0
- Name: symbolResolvedTypeName
Entry: 1
Data: SystemString
- Name: symbolOriginalName
Entry: 1
Data: variableName
Expand All @@ -889,13 +1048,13 @@ MonoBehaviour:
Data:
- Name: fieldAttributes
Entry: 7
Data: 59|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 70|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 60|UdonToolkit.HideIfAttribute, UdonToolkitRuntime
Data: 71|UdonToolkit.HideIfAttribute, UdonToolkitRuntime
- Name: methodName
Entry: 1
Data: '@!writeProgramVariables'
Expand All @@ -904,7 +1063,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 7
Data: 61|UdonToolkit.HideIfAttribute, UdonToolkitRuntime
Data: 72|UdonToolkit.HideIfAttribute, UdonToolkitRuntime
- Name: methodName
Entry: 1
Data: '@!findTargetFromChildren'
Expand Down Expand Up @@ -934,13 +1093,13 @@ MonoBehaviour:
Data: eventName
- Name: $v
Entry: 7
Data: 62|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 73|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: fieldSymbol
Entry: 7
Data: 63|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor
Data: 74|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor
- Name: internalType
Entry: 9
Data: 58
Data: 63
- Name: declarationType
Entry: 3
Data: 1
Expand All @@ -964,13 +1123,13 @@ MonoBehaviour:
Data:
- Name: fieldAttributes
Entry: 7
Data: 64|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 75|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 3
- Name:
Entry: 7
Data: 65|UdonToolkit.HideIfAttribute, UdonToolkitRuntime
Data: 76|UdonToolkit.HideIfAttribute, UdonToolkitRuntime
- Name: methodName
Entry: 1
Data: '@!writeProgramVariables'
Expand All @@ -979,7 +1138,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 7
Data: 66|UdonToolkit.HideIfAttribute, UdonToolkitRuntime
Data: 77|UdonToolkit.HideIfAttribute, UdonToolkitRuntime
- Name: methodName
Entry: 1
Data: '@!findTargetFromChildren'
Expand All @@ -988,7 +1147,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 7
Data: 67|UdonToolkit.HideIfAttribute, UdonToolkitRuntime
Data: 78|UdonToolkit.HideIfAttribute, UdonToolkitRuntime
- Name: methodName
Entry: 1
Data: '@!sendEvent'
Expand Down Expand Up @@ -1018,10 +1177,10 @@ MonoBehaviour:
Data: isFirst
- Name: $v
Entry: 7
Data: 68|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 79|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: fieldSymbol
Entry: 7
Data: 69|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor
Data: 80|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor
- Name: internalType
Entry: 9
Data: 8
Expand All @@ -1048,7 +1207,7 @@ MonoBehaviour:
Data:
- Name: fieldAttributes
Entry: 7
Data: 70|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 81|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
Expand Down
16 changes: 13 additions & 3 deletions Assets/InariUdon/Driver/FloatMultiValueDriver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,30 @@ public class FloatMultiValueDriver : UdonSharpBehaviour
[HideIf("@!writeProgramVariables"), HideIf("@findTargetFromChildren"), ListView("ProgramVariable Targets")] public UdonSharpBehaviour[] behaviours = {};
[HideIf("@!writeProgramVariables"), HideIf("@findTargetFromChildren"), ListView("ProgramVariable Targets"), Popup("programVariable", "@behaviours", true)] public string[] variableNames = {};
[HideIf("@!writeProgramVariables"), HideIf("@findTargetFromChildren"), HideIf("@!sendEvent"), ListView("ProgramVariable Targets"), Popup("behaviour", "@behaviours", true)] public string[] eventNames = {};
[HideIf("@!writeProgramVariables"), HideIf("@!findTargetFromChildren")] public Transform behaviourParent;
[HideIf("@!writeProgramVariables"), HideIf("@!findTargetFromChildgit staren")] public Transform behaviourParent;
[HideIf("@!writeProgramVariables"), HideIf("@!findTargetFromChildren")] public bool useFind;
[HideIf("@!writeProgramVariables"), HideIf("@!findTargetFromChildren"), HideIf("@!useFind")] public string findPath;
[HideIf("@!writeProgramVariables"), HideIf("@!findTargetFromChildren")] public string variableName;
[HideIf("@!writeProgramVariables"), HideIf("@!findTargetFromChildren"), HideIf("@!sendEvent")] public string eventName;

private bool isFirst = true;

private UdonSharpBehaviour GetUdonSharpBehaviourFromChild(Transform parent, int index)
{
var child = parent.GetChild(index);
var found = useFind ? child.Find(findPath) : child;
if (found == null) return null;
return (UdonSharpBehaviour)found.GetComponent(typeof(UdonBehaviour));
}

private void Start()
{
if (writeProgramVariables && findTargetFromChildren)
{
var targetCount = 0;
for (int i = 0; i < behaviourParent.childCount; i++)
{
var udon = (UdonSharpBehaviour)behaviourParent.GetChild(i).GetComponent(typeof(UdonBehaviour));
var udon = GetUdonSharpBehaviourFromChild(behaviourParent, i);
if (udon != null) targetCount++;
}

Expand All @@ -43,7 +53,7 @@ private void Start()
eventNames = new string[targetCount];
for (int i = 0; i < targetCount; i++)
{
behaviours[i] = (UdonSharpBehaviour)behaviourParent.GetChild(i).GetComponent(typeof(UdonBehaviour));
behaviours[i] = GetUdonSharpBehaviourFromChild(behaviourParent, i);
variableNames[i] = variableName;
eventNames[i] = eventName;
}
Expand Down

Large diffs are not rendered by default.

0 comments on commit 5254aba

Please sign in to comment.