Netcode Bootstrap
This commit is contained in:
+325
@@ -0,0 +1,325 @@
|
||||
using System.Collections.Generic;
|
||||
using Rukhanka;
|
||||
using Rukhanka.Editor;
|
||||
using Rukhanka.Toolbox;
|
||||
using Unity.Entities;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
namespace Rukhanka.Editor
|
||||
{
|
||||
public class AnimatorControllerBlobInfoWindow : EditorWindow
|
||||
{
|
||||
[SerializeField]
|
||||
private VisualTreeAsset visualTreeAsset = default;
|
||||
[SerializeField]
|
||||
private VisualTreeAsset entityRefAsset = default;
|
||||
[SerializeField]
|
||||
private VisualTreeAsset layerBlobInfoAsset = default;
|
||||
[SerializeField]
|
||||
private VisualTreeAsset stateBlobInfoAsset = default;
|
||||
[SerializeField]
|
||||
private VisualTreeAsset transitionBlobInfoAsset = default;
|
||||
[SerializeField]
|
||||
private VisualTreeAsset conditionBlobInfoAsset = default;
|
||||
[SerializeField]
|
||||
private VisualTreeAsset listViewLabelAsset = default;
|
||||
|
||||
internal static BlobInspector.BlobAssetInfo<ControllerBlob> controllerBlob;
|
||||
|
||||
readonly string nameColumnName = "name";
|
||||
readonly string hashColumnName = "hash";
|
||||
readonly string defValColumnName = "defaultValue";
|
||||
readonly string typeColumnName = "type";
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class ParameterListItem
|
||||
{
|
||||
public string name;
|
||||
public uint hash;
|
||||
public string paramValue;
|
||||
public ControllerParameterType paramType;
|
||||
public ParameterListItem(ref ParameterBlob pb)
|
||||
{
|
||||
name = "-";
|
||||
#if RUKHANKA_DEBUG_INFO
|
||||
name = pb.name.ToString();
|
||||
#endif
|
||||
hash = pb.hash;
|
||||
paramValue = GetParameterValueAsString(ref pb);
|
||||
paramType = pb.type;
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
public void CreateGUI()
|
||||
{
|
||||
var root = rootVisualElement;
|
||||
var doc = visualTreeAsset.Instantiate();
|
||||
root.Add(doc);
|
||||
|
||||
titleContent = new GUIContent("Rukhanka.Animation Controller Blob Info");
|
||||
FillBlobInfo();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void InitMultiListView(VisualElement root, List<ParameterListItem> srcData)
|
||||
{
|
||||
var paramListView = root.Q<MultiColumnListView>("parametersList");
|
||||
|
||||
paramListView.itemsSource = srcData;
|
||||
|
||||
paramListView.columns[nameColumnName].makeCell = () => listViewLabelAsset.Instantiate().Q<Label>("label");
|
||||
paramListView.columns[nameColumnName].bindCell = (VisualElement ve, int index) => (ve as Label).text = srcData[index].name;
|
||||
|
||||
paramListView.columns[hashColumnName].makeCell = () => listViewLabelAsset.Instantiate().Q<Label>("label");
|
||||
paramListView.columns[hashColumnName].bindCell = (VisualElement ve, int index) => (ve as Label).text = srcData[index].hash.ToString("X");
|
||||
|
||||
paramListView.columns[defValColumnName].makeCell = () => listViewLabelAsset.Instantiate().Q<Label>("label");
|
||||
paramListView.columns[defValColumnName].bindCell = (VisualElement ve, int index) => (ve as Label).text = srcData[index].paramValue;
|
||||
|
||||
paramListView.columns[typeColumnName].makeCell = () => listViewLabelAsset.Instantiate().Q<Label>("label");
|
||||
paramListView.columns[typeColumnName].bindCell = (VisualElement ve, int index) => (ve as Label).text = srcData[index].paramType.ToString();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
unsafe void FillBlobInfo()
|
||||
{
|
||||
ref var b = ref controllerBlob.blobAsset.Value;
|
||||
var hashLabel = rootVisualElement.Q<Label>("hashLabel");
|
||||
hashLabel.text = b.hash.ToString();
|
||||
|
||||
var nameLabel = rootVisualElement.Q<Label>("nameLabel");
|
||||
var bakingTimeLabel = rootVisualElement.Q<Label>("bakingTimeLabel");
|
||||
|
||||
#if RUKHANKA_DEBUG_INFO
|
||||
nameLabel.text = b.name.ToString();
|
||||
bakingTimeLabel.text = $"{b.bakingTime:F3} sec";
|
||||
#else
|
||||
nameLabel.text = "-";
|
||||
bakingTimeLabel.text = "-";
|
||||
#endif
|
||||
|
||||
var sizeLabel = rootVisualElement.Q<Label>("sizeLabel");
|
||||
sizeLabel.text = CommonTools.FormatMemory(controllerBlob.blobAsset.m_data.Header->Length);
|
||||
|
||||
ref var blobParameters = ref b.parameters;
|
||||
var srcData = new List<ParameterListItem>();
|
||||
for (int i = 0; i < blobParameters.Length; ++i)
|
||||
{
|
||||
ref var p = ref blobParameters[i];
|
||||
var li = new ParameterListItem(ref p);
|
||||
srcData.Add(li);
|
||||
}
|
||||
|
||||
InitMultiListView(rootVisualElement, srcData);
|
||||
|
||||
// Referenced entities view
|
||||
var relatedEntitiesView = rootVisualElement.Q("relatedEntitiesView");
|
||||
var relatedEntitieLabel = rootVisualElement.Q<Label>("relatedEntitiesLabel");
|
||||
AnimatorClipBlobInfoWindow.PopulateReferencedEntities(relatedEntitiesView, relatedEntitieLabel, controllerBlob.refEntities, entityRefAsset);
|
||||
|
||||
FillControllerLayersList(ref b);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void FillControllerLayersList(ref ControllerBlob cb)
|
||||
{
|
||||
var layersFoldout = rootVisualElement.Q<Foldout>("layersFoldout");
|
||||
layersFoldout.text = $"{cb.layers.Length} Layers";
|
||||
|
||||
for (var i = 0; i < cb.layers.Length; ++i)
|
||||
{
|
||||
ref var layer = ref cb.layers[i];
|
||||
var uiEntry = layerBlobInfoAsset.Instantiate();
|
||||
var rootFoldout = uiEntry.Q<Foldout>("layerInfoFoldout");
|
||||
var blendModeLabel = uiEntry.Q<Label>("blendModeLabel");
|
||||
var defaultStateLabel = uiEntry.Q<Label>("defaultStateLabel");
|
||||
var initialWeightLabel = uiEntry.Q<Label>("initialWeightLabel");
|
||||
var avatarMaskHashLabel = uiEntry.Q<Label>("avatarMaskHashLabel");
|
||||
|
||||
rootFoldout.text = $"[{i}]";
|
||||
#if RUKHAHKA_DEBUG_INFO
|
||||
rootFoldout.text += $"' {layer.name.ToString()}'";
|
||||
if (layer.defaultStateIndex >= 0)
|
||||
defaultStateLabel.text = layer.states[layer.defaultStateIndex].name.ToString();
|
||||
#else
|
||||
defaultStateLabel.text = $"[{layer.defaultStateIndex.ToString()}]";
|
||||
#endif
|
||||
blendModeLabel.text = layer.blendingMode.ToString();
|
||||
initialWeightLabel.text = layer.initialWeight.ToString();
|
||||
avatarMaskHashLabel.text = layer.avatarMaskBlobHash.ToString();
|
||||
|
||||
FillLayerStatesInfo(ref layer, ref cb, uiEntry);
|
||||
|
||||
layersFoldout.Add(uiEntry);
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void FillLayerStatesInfo(ref LayerBlob lb, ref ControllerBlob cb, VisualElement root)
|
||||
{
|
||||
var foldout = root.Q<Foldout>("statesFoldout");
|
||||
foldout.text = $"{lb.states.Length} States";
|
||||
|
||||
for (var i = 0; i < lb.states.Length; ++i)
|
||||
{
|
||||
ref var state = ref lb.states[i];
|
||||
var uiEntry = stateBlobInfoAsset.Instantiate();
|
||||
var rootFoldout = uiEntry.Q<Foldout>("stateInfoFoldout");
|
||||
var nameHashLabel = uiEntry.Q<Label>("nameHashLabel");
|
||||
var tagLabel = uiEntry.Q<Label>("tagLabel");
|
||||
var tagHashLabel = uiEntry.Q<Label>("tagHashLabel");
|
||||
var speedLabel = uiEntry.Q<Label>("speedLabel");
|
||||
var speedParamIdxLabel = uiEntry.Q<Label>("speedParamIdxLabel");
|
||||
var timeParamIdxLabel = uiEntry.Q<Label>("timeParamIdxLabel");
|
||||
var cycleOffsetLabel = uiEntry.Q<Label>("cycleOffsetLabel");
|
||||
var cycleOffsetParamIdxLabel = uiEntry.Q<Label>("cycleOffsetParamIdxLabel");
|
||||
|
||||
rootFoldout.text = $"[{i}]";
|
||||
nameHashLabel.text = state.hash.ToString();
|
||||
#if RUKHANKA_DEBUG_INFO
|
||||
rootFoldout.text += $" '{state.name.ToString()}'";
|
||||
tagLabel.text = state.tag.ToString();
|
||||
#else
|
||||
tagLabel.text = "-";
|
||||
#endif
|
||||
tagHashLabel.text = state.tagHash.ToString();
|
||||
speedLabel.text = state.speed.ToString();
|
||||
speedParamIdxLabel.text = $"[{state.speedMultiplierParameterIndex}]";
|
||||
#if RUKHANKA_DEBUG_INFO
|
||||
if (state.speedMultiplierParameterIndex >= 0)
|
||||
speedParamIdxLabel.text += $" '{cb.parameters[state.speedMultiplierParameterIndex].name.ToString()}'";
|
||||
#endif
|
||||
timeParamIdxLabel.text = $"[{state.timeParameterIndex}]";
|
||||
#if RUKHANKA_DEBUG_INFO
|
||||
if (state.timeParameterIndex >= 0)
|
||||
timeParamIdxLabel.text += $" '{cb.parameters[state.timeParameterIndex].name.ToString()}'";
|
||||
#endif
|
||||
cycleOffsetLabel.text = state.cycleOffset.ToString();
|
||||
cycleOffsetParamIdxLabel.text = $"[{state.cycleOffsetParameterIndex}]";
|
||||
#if RUKHANKA_DEBUG_INFO
|
||||
if (state.cycleOffsetParameterIndex >= 0)
|
||||
cycleOffsetParamIdxLabel.text = $" '{cb.parameters[state.cycleOffsetParameterIndex].name.ToString()}'";
|
||||
#endif
|
||||
|
||||
FillTransitionsInfo(ref state, ref lb, ref cb, uiEntry);
|
||||
|
||||
foldout.Add(uiEntry);
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void FillTransitionsInfo(ref StateBlob sb, ref LayerBlob lb, ref ControllerBlob cb, VisualElement root)
|
||||
{
|
||||
var foldout = root.Q<Foldout>("transitionsFoldout");
|
||||
foldout.text = $"{sb.transitions.Length} Transitions";
|
||||
|
||||
for (var i = 0; i < sb.transitions.Length; ++i)
|
||||
{
|
||||
ref var tr = ref sb.transitions[i];
|
||||
var uiEntry = transitionBlobInfoAsset.Instantiate();
|
||||
var rootFoldout = uiEntry.Q<Foldout>("transitionInfoFoldout");
|
||||
var nameHashLabel = uiEntry.Q<Label>("nameHashLabel");
|
||||
var targetStateIDLabel = uiEntry.Q<Label>("targetStateIDLabel");
|
||||
var durationLabel = uiEntry.Q<Label>("durationLabel");
|
||||
var exitTimeLabel = uiEntry.Q<Label>("exitTimeLabel");
|
||||
var offsetLabel = uiEntry.Q<Label>("offsetLabel");
|
||||
var hasExitTimeCheckbox = uiEntry.Q<Toggle>("hasExitTimeCheckbox");
|
||||
var hasFixedDurationCheckbox = uiEntry.Q<Toggle>("hasFixedDurationCheckbox");
|
||||
|
||||
nameHashLabel.text = tr.hash.ToString();
|
||||
targetStateIDLabel.text = $"[{tr.targetStateId.ToString()}]";
|
||||
rootFoldout.text = $"[{i}]";
|
||||
#if RUKHANKA_DEBUG_INFO
|
||||
rootFoldout.text += $" '{tr.name.ToString()}'";
|
||||
if (tr.targetStateId >= 0)
|
||||
targetStateIDLabel.text += $" '{lb.states[tr.targetStateId].name.ToString()}'";
|
||||
#endif
|
||||
durationLabel.text = tr.duration.ToString();
|
||||
exitTimeLabel.text = tr.exitTime.ToString();
|
||||
offsetLabel.text = tr.offset.ToString();
|
||||
hasExitTimeCheckbox.value = tr.hasExitTime;
|
||||
hasExitTimeCheckbox.SetEnabled(false);
|
||||
hasFixedDurationCheckbox.value = tr.hasFixedDuration;
|
||||
hasFixedDurationCheckbox.SetEnabled(false);
|
||||
|
||||
FillConditionsInfo(ref tr, ref cb, uiEntry);
|
||||
|
||||
foldout.Add(uiEntry);
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void FillConditionsInfo(ref TransitionBlob tb, ref ControllerBlob cb, VisualElement root)
|
||||
{
|
||||
var foldout = root.Q<Foldout>("conditionsFoldout");
|
||||
foldout.text = $"{tb.conditions.Length} Conditions";
|
||||
|
||||
for (var i = 0; i < tb.conditions.Length; ++i)
|
||||
{
|
||||
ref var conditionBlob = ref tb.conditions[i];
|
||||
var uiEntry = conditionBlobInfoAsset.Instantiate();
|
||||
var conditionLabel = uiEntry.Q<Label>("conditionLabel");
|
||||
conditionLabel.text = BuildConditionString(ref conditionBlob, ref cb.parameters);
|
||||
|
||||
foldout.Add(uiEntry);
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
string BuildConditionString(ref ConditionBlob cb, ref BlobArray<ParameterBlob> pb)
|
||||
{
|
||||
ref var param = ref pb[cb.paramIdx];
|
||||
#if RUKHANKA_DEBUG_INFO
|
||||
var paramString = $"'{param.name.ToString()}'";
|
||||
#else
|
||||
var paramString = $"'{param.hash.ToString()}'";
|
||||
#endif
|
||||
|
||||
var opString = "";
|
||||
switch (cb.conditionMode)
|
||||
{
|
||||
case AnimatorConditionMode.Equals: opString = " =="; break;
|
||||
case AnimatorConditionMode.Greater: opString = " >"; break;
|
||||
case AnimatorConditionMode.If: opString = " == true"; break;
|
||||
case AnimatorConditionMode.Less: opString = " <"; break;
|
||||
case AnimatorConditionMode.IfNot: opString = " == false"; break;
|
||||
case AnimatorConditionMode.NotEqual: opString = " !="; break;
|
||||
}
|
||||
|
||||
var thresholdString = "";
|
||||
switch (param.type)
|
||||
{
|
||||
case ControllerParameterType.Float: thresholdString = " " + cb.threshold.floatValue; break;
|
||||
case ControllerParameterType.Int: thresholdString = " " + cb.threshold.intValue; break;
|
||||
}
|
||||
|
||||
var rv = paramString + opString + thresholdString;
|
||||
return rv;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static string GetParameterValueAsString(ref ParameterBlob pb) => pb.type switch
|
||||
{
|
||||
ControllerParameterType.Bool => pb.defaultValue.boolValue ? "true" : "false",
|
||||
ControllerParameterType.Trigger => pb.defaultValue.boolValue ? "true" : "false",
|
||||
ControllerParameterType.Float => pb.defaultValue.floatValue.ToString(),
|
||||
ControllerParameterType.Int => pb.defaultValue.intValue.ToString(),
|
||||
_ => ""
|
||||
};
|
||||
}
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8c3c09e83942e314cbdad5486d3edde7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences:
|
||||
- m_ViewDataDictionary: {instanceID: 0}
|
||||
- visualTreeAsset: {fileID: 9197481963319205126, guid: 021574c1f4ac2d84893abf85ab6abf69, type: 3}
|
||||
- controllerParameterBlobInfoAsset: {fileID: 9197481963319205126, guid: 105507b7bae5e594298939c9040e9947, type: 3}
|
||||
- entityRefAsset: {fileID: 9197481963319205126, guid: dba65a86cda2861448a7ae7891041b16, type: 3}
|
||||
- layerBlobInfoAsset: {fileID: 9197481963319205126, guid: 20cf45a045031f0449037db6abab3240, type: 3}
|
||||
- stateBlobInfoAsset: {fileID: 9197481963319205126, guid: aaab1c8abd35b8d458d1d9b52e28065a, type: 3}
|
||||
- transitionBlobInfoAsset: {fileID: 9197481963319205126, guid: c3451fa4841d2604c955112ea35a0456, type: 3}
|
||||
- conditionBlobInfoAsset: {fileID: 9197481963319205126, guid: f3041ef93fd36cc42a5e9f6b1bb2cb3c, type: 3}
|
||||
- listViewLabelAsset: {fileID: 9197481963319205126, guid: 5460ee29626c92b47a703070f7c106ba, type: 3}
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 298480
|
||||
packageName: Rukhanka Animation System 2
|
||||
packageVersion: 2.9.0
|
||||
assetPath: Packages/com.rukhanka.animation/Rukhanka.Editor/BlobInspector/AnimatorControllerBlobInfoWindow/AnimatorControllerBlobInfoWindow.cs
|
||||
uploadId: 897522
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
.custom-label {
|
||||
font-size: 20px;
|
||||
-unity-font-style: bold;
|
||||
color: rgb(68, 138, 255);
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d13a537d15bd7bc4c8f28adebfcf734d
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
|
||||
disableValidation: 0
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 298480
|
||||
packageName: Rukhanka Animation System 2
|
||||
packageVersion: 2.9.0
|
||||
assetPath: Packages/com.rukhanka.animation/Rukhanka.Editor/BlobInspector/AnimatorControllerBlobInfoWindow/AnimatorControllerBlobInfoWindow.uss
|
||||
uploadId: 897522
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
|
||||
<Style src="project://database/Packages/com.rukhanka.animation/Rukhanka.Editor/BlobInspector/AnimatorControllerBlobInfoWindow/AnimatorControllerBlobInfoWindow.uss?fileID=7433441132597879392&guid=d13a537d15bd7bc4c8f28adebfcf734d&type=3#AnimatorControllerBlobInfoWindow" />
|
||||
<ui:VisualElement style="flex-grow: 1; border-left-color: rgb(127, 127, 127); border-right-color: rgb(127, 127, 127); border-top-color: rgb(127, 127, 127); border-bottom-color: rgb(127, 127, 127); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; margin-top: 5px; margin-right: 5px; margin-bottom: 5px; margin-left: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px;">
|
||||
<ui:VisualElement style="flex-grow: 0; flex-direction: row; flex-shrink: 0;">
|
||||
<ui:VisualElement style="flex-grow: 0; width: 143px; flex-shrink: 0;">
|
||||
<ui:Label tabindex="-1" text="Hash128:" parse-escape-sequences="true" display-tooltip-when-elided="true" />
|
||||
<ui:Label tabindex="-1" text="Name:" parse-escape-sequences="true" display-tooltip-when-elided="true" />
|
||||
<ui:Label tabindex="-1" text="Baking TIme:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
<ui:Label tabindex="-1" text="Size:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
</ui:VisualElement>
|
||||
<ui:VisualElement style="flex-grow: 1;">
|
||||
<ui:Label tabindex="-1" text="LabelLabelLabelLabelLabelLabelLabelLabelLabel" parse-escape-sequences="true" display-tooltip-when-elided="true" name="hashLabel" />
|
||||
<ui:Label tabindex="-1" text="Label" parse-escape-sequences="true" display-tooltip-when-elided="true" name="nameLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="bakingTimeLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="sizeLabel" />
|
||||
</ui:VisualElement>
|
||||
</ui:VisualElement>
|
||||
<ui:ScrollView scroll-deceleration-rate="0,135" elasticity="0,1" style="flex-grow: 1; border-left-color: rgb(127, 127, 127); border-right-color: rgb(127, 127, 127); border-top-color: rgb(127, 127, 127); border-bottom-color: rgb(127, 127, 127); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; margin-top: 5px; padding-top: 3px; padding-right: 0; padding-bottom: 3px; padding-left: 0;">
|
||||
<ui:MultiColumnListView name="parametersList" show-alternating-row-backgrounds="ContentOnly" show-foldout-header="true" header-title="Controller Parameters" allow-add="false" allow-remove="false" show-border="true" selection-type="None" show-bound-collection-size="true" virtualization-method="FixedHeight" style="margin-top: 4px; margin-right: 4px; margin-bottom: 4px; margin-left: 4px;">
|
||||
<ui:Columns stretch-mode="GrowAndFill" resize-preview="false">
|
||||
<ui:Column stretchable="true" title="Hash" name="hash" />
|
||||
<ui:Column title="Name" stretchable="true" name="name" />
|
||||
<ui:Column title="Type" stretchable="true" name="type" />
|
||||
<ui:Column title="Default Value" stretchable="true" name="defaultValue" />
|
||||
</ui:Columns>
|
||||
</ui:MultiColumnListView>
|
||||
<ui:Foldout text="Foldout" value="false" name="layersFoldout" />
|
||||
</ui:ScrollView>
|
||||
<ui:Label tabindex="-1" text="Related Entities" parse-escape-sequences="true" display-tooltip-when-elided="true" name="relatedEntitiesLabel" style="padding-top: 10px;" />
|
||||
<ui:ScrollView scroll-deceleration-rate="0,135" elasticity="0,1" name="relatedEntitiesView" style="flex-grow: 1; border-left-color: rgb(127, 127, 127); border-right-color: rgb(127, 127, 127); border-top-color: rgb(127, 127, 127); border-bottom-color: rgb(127, 127, 127); border-top-width: 0; border-right-width: 0; border-bottom-width: 0; border-left-width: 0; border-top-left-radius: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 0; margin-top: 5px; margin-right: 5px; margin-bottom: 5px; margin-left: 5px;" />
|
||||
</ui:VisualElement>
|
||||
</ui:UXML>
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 021574c1f4ac2d84893abf85ab6abf69
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 298480
|
||||
packageName: Rukhanka Animation System 2
|
||||
packageVersion: 2.9.0
|
||||
assetPath: Packages/com.rukhanka.animation/Rukhanka.Editor/BlobInspector/AnimatorControllerBlobInfoWindow/AnimatorControllerBlobInfoWindow.uxml
|
||||
uploadId: 897522
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
|
||||
<ui:VisualElement style="flex-grow: 0; flex-direction: row;">
|
||||
<ui:VisualElement style="flex-grow: 0; width: 106px; flex-shrink: 0;">
|
||||
<ui:Label tabindex="-1" text="Condition:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
</ui:VisualElement>
|
||||
<ui:VisualElement style="flex-grow: 1;">
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="conditionLabel" />
|
||||
</ui:VisualElement>
|
||||
</ui:VisualElement>
|
||||
</ui:UXML>
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f3041ef93fd36cc42a5e9f6b1bb2cb3c
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 298480
|
||||
packageName: Rukhanka Animation System 2
|
||||
packageVersion: 2.9.0
|
||||
assetPath: Packages/com.rukhanka.animation/Rukhanka.Editor/BlobInspector/AnimatorControllerBlobInfoWindow/AnimatorControllerConditionBlobEntry.uxml
|
||||
uploadId: 897522
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
|
||||
<ui:Foldout text="Layers" name="layerInfoFoldout" value="false" style="border-top-width: 1px; border-left-color: rgb(127, 127, 127); border-right-color: rgb(127, 127, 127); border-top-color: rgb(127, 127, 127); border-bottom-color: rgb(127, 127, 127);">
|
||||
<ui:VisualElement style="flex-grow: 0; flex-direction: row;">
|
||||
<ui:VisualElement style="flex-grow: 0; width: 143px; flex-shrink: 0;">
|
||||
<ui:Label tabindex="-1" text="Blend Mode:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
<ui:Label tabindex="-1" text="Default State:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
<ui:Label tabindex="-1" text="Initial Weight:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
<ui:Label tabindex="-1" text="Avatar Mask Hash:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
</ui:VisualElement>
|
||||
<ui:VisualElement style="flex-grow: 1;">
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="blendModeLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="defaultStateLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="initialWeightLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="avatarMaskHashLabel" />
|
||||
</ui:VisualElement>
|
||||
</ui:VisualElement>
|
||||
<ui:Foldout text="Transitions" name="statesFoldout" value="false" />
|
||||
</ui:Foldout>
|
||||
</ui:UXML>
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 20cf45a045031f0449037db6abab3240
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 298480
|
||||
packageName: Rukhanka Animation System 2
|
||||
packageVersion: 2.9.0
|
||||
assetPath: Packages/com.rukhanka.animation/Rukhanka.Editor/BlobInspector/AnimatorControllerBlobInfoWindow/AnimatorControllerLayerBlobEntry.uxml
|
||||
uploadId: 897522
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
|
||||
<ui:VisualElement style="flex-grow: 1; flex-direction: row;">
|
||||
<ui:Label tabindex="-1" text="Label" parse-escape-sequences="true" display-tooltip-when-elided="true" name="hashLabel" style="width: 141px; border-right-color: rgb(127, 127, 127); border-right-width: 1px; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0;" />
|
||||
<ui:Label tabindex="-1" text="Label" parse-escape-sequences="true" display-tooltip-when-elided="true" name="nameLabel" style="flex-grow: 1; border-right-color: rgb(127, 127, 127); border-right-width: 1px;" />
|
||||
<ui:Label tabindex="-1" text="Label" parse-escape-sequences="true" display-tooltip-when-elided="true" name="typeLabel" style="flex-grow: 1; border-right-color: rgb(127, 127, 127); border-right-width: 1px;" />
|
||||
<ui:Label tabindex="-1" text="Label" parse-escape-sequences="true" display-tooltip-when-elided="true" name="defaultValueLabel" style="width: 104px;" />
|
||||
</ui:VisualElement>
|
||||
</ui:UXML>
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 105507b7bae5e594298939c9040e9947
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 298480
|
||||
packageName: Rukhanka Animation System 2
|
||||
packageVersion: 2.9.0
|
||||
assetPath: Packages/com.rukhanka.animation/Rukhanka.Editor/BlobInspector/AnimatorControllerBlobInfoWindow/AnimatorControllerParameterBlobEntry.uxml
|
||||
uploadId: 897522
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
|
||||
<ui:Foldout text="Foldout" name="stateInfoFoldout" value="false" style="border-top-width: 1px; border-top-color: rgb(127, 127, 127);">
|
||||
<ui:VisualElement style="flex-grow: 0; flex-direction: row;">
|
||||
<ui:VisualElement style="flex-grow: 0; width: 184px; flex-shrink: 0;">
|
||||
<ui:Label tabindex="-1" text="Name Hash:" parse-escape-sequences="true" display-tooltip-when-elided="true" />
|
||||
<ui:Label tabindex="-1" text="Tag:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
<ui:Label tabindex="-1" text="Tag Hash:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
<ui:Label tabindex="-1" text="Speed:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
<ui:Label tabindex="-1" text="Speed Param Index:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
<ui:Label tabindex="-1" text="Time Param Index:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
<ui:Label tabindex="-1" text="Cycle Offset:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
<ui:Label tabindex="-1" text="Cycle Offset Param Index:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
</ui:VisualElement>
|
||||
<ui:VisualElement style="flex-grow: 1;">
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="nameHashLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="tagLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="tagHashLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="speedLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="speedParamIdxLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="timeParamIdxLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="cycleOffsetLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="cycleOffsetParamIdxLabel" />
|
||||
</ui:VisualElement>
|
||||
</ui:VisualElement>
|
||||
<ui:Foldout text="Transitions" name="transitionsFoldout" value="false" />
|
||||
</ui:Foldout>
|
||||
</ui:UXML>
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aaab1c8abd35b8d458d1d9b52e28065a
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 298480
|
||||
packageName: Rukhanka Animation System 2
|
||||
packageVersion: 2.9.0
|
||||
assetPath: Packages/com.rukhanka.animation/Rukhanka.Editor/BlobInspector/AnimatorControllerBlobInfoWindow/AnimatorControllerStateBlobEntry.uxml
|
||||
uploadId: 897522
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
|
||||
<ui:Foldout text="Foldout" name="transitionInfoFoldout" value="false" style="border-top-width: 1px; border-top-color: rgb(127, 127, 127);">
|
||||
<ui:VisualElement style="flex-grow: 0; flex-direction: row;">
|
||||
<ui:VisualElement style="flex-grow: 0; width: 184px; flex-shrink: 0;">
|
||||
<ui:Label tabindex="-1" text="Name Hash:" parse-escape-sequences="true" display-tooltip-when-elided="true" />
|
||||
<ui:Label tabindex="-1" text="Target State ID:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
<ui:Label tabindex="-1" text="Duration:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
<ui:Label tabindex="-1" text="Exit Time:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
<ui:Label tabindex="-1" text="Offset:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
<ui:Label tabindex="-1" text="Has Exit Time:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
<ui:Label tabindex="-1" text="Has Fixed Duration:" parse-escape-sequences="true" display-tooltip-when-elided="true" enable-rich-text="true" />
|
||||
</ui:VisualElement>
|
||||
<ui:VisualElement style="flex-grow: 1;">
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="nameHashLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="targetStateIDLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="durationLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="exitTimeLabel" />
|
||||
<ui:Label tabindex="-1" text="asda" parse-escape-sequences="true" display-tooltip-when-elided="true" name="offsetLabel" />
|
||||
<ui:Toggle name="hasExitTimeCheckbox" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;" />
|
||||
<ui:Toggle name="hasFixedDurationCheckbox" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;" />
|
||||
</ui:VisualElement>
|
||||
</ui:VisualElement>
|
||||
<ui:Foldout text="Conditions" name="conditionsFoldout" value="false" />
|
||||
</ui:Foldout>
|
||||
</ui:UXML>
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c3451fa4841d2604c955112ea35a0456
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 298480
|
||||
packageName: Rukhanka Animation System 2
|
||||
packageVersion: 2.9.0
|
||||
assetPath: Packages/com.rukhanka.animation/Rukhanka.Editor/BlobInspector/AnimatorControllerBlobInfoWindow/AnimatorControllerTransitionBlobEntry.uxml
|
||||
uploadId: 897522
|
||||
Reference in New Issue
Block a user