diff --git a/unity/Assets/2.5D Engine/Animations/Shake1.anim b/unity/Assets/2.5D Engine/Animations/Shake1.anim
new file mode 100644
index 0000000..9ae3f50
--- /dev/null
+++ b/unity/Assets/2.5D Engine/Animations/Shake1.anim
@@ -0,0 +1,357 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Shake1
+ serializedVersion: 7
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: 0, z: 0}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.16666667
+ value: {x: 0, y: 0, z: 7}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.35
+ value: {x: 0, y: 0, z: -7}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.5
+ value: {x: 0, y: 0, z: 5}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.6666667
+ value: {x: 0, y: 0, z: -5}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.8333333
+ value: {x: 0, y: 0, z: 0}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path:
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves: []
+ m_PPtrCurves: []
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 4
+ script: {fileID: 0}
+ typeID: 4
+ customType: 4
+ isPPtrCurve: 0
+ isIntCurve: 0
+ isSerializeReferenceCurve: 0
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.8333333
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 0
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves:
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.35
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.6666667
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.8333333
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.x
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 16
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.35
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.6666667
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.8333333
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.y
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 16
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 7
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.35
+ value: -7
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5
+ value: 5
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.6666667
+ value: -5
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.8333333
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.z
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 16
+ m_EulerEditorCurves:
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.x
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 0
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.y
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 0
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.z
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 0
+ m_HasGenericRootTransform: 1
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash01_AB.mat.meta b/unity/Assets/2.5D Engine/Animations/Shake1.anim.meta
similarity index 64%
rename from unity/Assets/Materials/Materials/Misc/Sword/slash01_AB.mat.meta
rename to unity/Assets/2.5D Engine/Animations/Shake1.anim.meta
index 6e5feb0..131d35a 100644
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash01_AB.mat.meta
+++ b/unity/Assets/2.5D Engine/Animations/Shake1.anim.meta
@@ -1,8 +1,8 @@
fileFormatVersion: 2
-guid: 64e96ff4458e88b499d1e1d8e5535052
+guid: 859e8bfa9c759c946974b932d809a1d9
NativeFormatImporter:
externalObjects: {}
- mainObjectFileID: 2100000
+ mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
diff --git a/unity/Assets/2.5D Engine/Animations/Shake2.anim b/unity/Assets/2.5D Engine/Animations/Shake2.anim
new file mode 100644
index 0000000..e257261
--- /dev/null
+++ b/unity/Assets/2.5D Engine/Animations/Shake2.anim
@@ -0,0 +1,321 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Shake2
+ serializedVersion: 7
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: 0, z: 0}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.16666667
+ value: {x: 0, y: 0, z: -8}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.33333334
+ value: {x: 0, y: 0, z: 7}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.5
+ value: {x: 0, y: 0, z: -5}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.5833333
+ value: {x: 0, y: 0, z: 0}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path:
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves: []
+ m_PPtrCurves: []
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 4
+ script: {fileID: 0}
+ typeID: 4
+ customType: 4
+ isPPtrCurve: 0
+ isIntCurve: 0
+ isSerializeReferenceCurve: 0
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.5833333
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 0
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves:
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.33333334
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5833333
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.x
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 16
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.33333334
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5833333
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.y
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 16
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.16666667
+ value: -8
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.33333334
+ value: 7
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5
+ value: -5
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5833333
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.z
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 16
+ m_EulerEditorCurves:
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.x
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 0
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.y
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 0
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.z
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 0
+ m_HasGenericRootTransform: 1
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash01_ADD.mat.meta b/unity/Assets/2.5D Engine/Animations/Shake2.anim.meta
similarity index 64%
rename from unity/Assets/Materials/Materials/Misc/Sword/slash01_ADD.mat.meta
rename to unity/Assets/2.5D Engine/Animations/Shake2.anim.meta
index 4347a00..046aa15 100644
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash01_ADD.mat.meta
+++ b/unity/Assets/2.5D Engine/Animations/Shake2.anim.meta
@@ -1,8 +1,8 @@
fileFormatVersion: 2
-guid: f775ebfdf5b09fd4981b26faf9e1c586
+guid: bd7f883fc1d9b7f4e91b697089acad75
NativeFormatImporter:
externalObjects: {}
- mainObjectFileID: 2100000
+ mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
diff --git a/unity/Assets/2.5D Engine/Animations/Shake3.anim b/unity/Assets/2.5D Engine/Animations/Shake3.anim
new file mode 100644
index 0000000..46476ad
--- /dev/null
+++ b/unity/Assets/2.5D Engine/Animations/Shake3.anim
@@ -0,0 +1,321 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Shake3
+ serializedVersion: 7
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: 0, z: 0}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.16666667
+ value: {x: 0, y: 0, z: 7}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.33333334
+ value: {x: 0, y: 0, z: -5}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.5
+ value: {x: 0, y: 0, z: 3}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.75
+ value: {x: 0, y: 0, z: 0}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path:
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves: []
+ m_PPtrCurves: []
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 4
+ script: {fileID: 0}
+ typeID: 4
+ customType: 4
+ isPPtrCurve: 0
+ isIntCurve: 0
+ isSerializeReferenceCurve: 0
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.75
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 0
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves:
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.33333334
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.75
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.x
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 16
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.33333334
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.75
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.y
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 16
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.16666667
+ value: 7
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.33333334
+ value: -5
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5
+ value: 3
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.75
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.z
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 16
+ m_EulerEditorCurves:
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.x
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 0
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.y
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 0
+ - serializedVersion: 2
+ curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.z
+ path:
+ classID: 4
+ script: {fileID: 0}
+ flags: 0
+ m_HasGenericRootTransform: 1
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash02_AB.mat.meta b/unity/Assets/2.5D Engine/Animations/Shake3.anim.meta
similarity index 64%
rename from unity/Assets/Materials/Materials/Misc/Sword/slash02_AB.mat.meta
rename to unity/Assets/2.5D Engine/Animations/Shake3.anim.meta
index 0048736..6146b3a 100644
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash02_AB.mat.meta
+++ b/unity/Assets/2.5D Engine/Animations/Shake3.anim.meta
@@ -1,8 +1,8 @@
fileFormatVersion: 2
-guid: 50d7a6ff58aa03c41bf5ab4d6947a60b
+guid: a3f5be6cdc03911489d1aa7022cacd81
NativeFormatImporter:
externalObjects: {}
- mainObjectFileID: 2100000
+ mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash_ADD.mat b/unity/Assets/2.5D Engine/Particle Effects/Sword Slash Particles/Materials/Slash.mat
similarity index 94%
rename from unity/Assets/Materials/Materials/Misc/Sword/slash_ADD.mat
rename to unity/Assets/2.5D Engine/Particle Effects/Sword Slash Particles/Materials/Slash.mat
index 27a21d2..38b17a6 100644
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash_ADD.mat
+++ b/unity/Assets/2.5D Engine/Particle Effects/Sword Slash Particles/Materials/Slash.mat
@@ -7,8 +7,10 @@ Material:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: slash_ADD
+ m_Name: Slash
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _ALPHABLEND_ON
- _FADING_ON
@@ -21,6 +23,7 @@ Material:
RenderType: Transparent
disabledShaderPasses:
- GRABPASS
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -69,3 +72,4 @@ Material:
- _SoftParticleFadeParams: {r: 0, g: 5, b: 0, a: 0}
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
m_BuildTextureStacks: []
+ m_AllowLocking: 1
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash_ADD.mat.meta b/unity/Assets/2.5D Engine/Particle Effects/Sword Slash Particles/Materials/Slash.mat.meta
similarity index 100%
rename from unity/Assets/Materials/Materials/Misc/Sword/slash_ADD.mat.meta
rename to unity/Assets/2.5D Engine/Particle Effects/Sword Slash Particles/Materials/Slash.mat.meta
diff --git a/unity/Assets/2.5D Engine/Particle Effects/Sword Slash Particles/Textures/Slash.png b/unity/Assets/2.5D Engine/Particle Effects/Sword Slash Particles/Textures/Slash.png
new file mode 100644
index 0000000..9508787
Binary files /dev/null and b/unity/Assets/2.5D Engine/Particle Effects/Sword Slash Particles/Textures/Slash.png differ
diff --git a/unity/Assets/Materials/Textures/slash.png.meta b/unity/Assets/2.5D Engine/Particle Effects/Sword Slash Particles/Textures/Slash.png.meta
similarity index 100%
rename from unity/Assets/Materials/Textures/slash.png.meta
rename to unity/Assets/2.5D Engine/Particle Effects/Sword Slash Particles/Textures/Slash.png.meta
diff --git a/unity/Assets/2.5D Engine/Prefabs/Scarecrow.prefab b/unity/Assets/2.5D Engine/Prefabs/Scarecrow.prefab
new file mode 100644
index 0000000..f328f55
--- /dev/null
+++ b/unity/Assets/2.5D Engine/Prefabs/Scarecrow.prefab
@@ -0,0 +1,201 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2363241074000552831
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6215090515645932799}
+ - component: {fileID: 6923226934955006161}
+ m_Layer: 0
+ m_Name: Shadow
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6215090515645932799
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2363241074000552831}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1067823222478139255}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &6923226934955006161
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2363241074000552831}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: -876546973899608171, guid: be3236dea9f1e304da1a5e3a513dad5e, type: 3}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_Sprite: {fileID: 21300000, guid: f605a81430a1aff4695577f89657408e, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 11.08, y: 8.65}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!1 &7447625193278080842
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1067823222478139255}
+ - component: {fileID: 1108994882380700425}
+ - component: {fileID: 5010735564622604771}
+ m_Layer: 0
+ m_Name: Scarecrow
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1067823222478139255
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 1
+ m_Children:
+ - {fileID: 6215090515645932799}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &1108994882380700425
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 1
+ m_Sprite: {fileID: 21300000, guid: f605a81430a1aff4695577f89657408e, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 11.08, y: 8.65}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!136 &5010735564622604771
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 3.93
+ m_Height: 9.3
+ m_Direction: 1
+ m_Center: {x: 0, y: 4.65, z: 0}
diff --git a/unity/Assets/2.5D Engine/Prefabs/Scarecrow.prefab.meta b/unity/Assets/2.5D Engine/Prefabs/Scarecrow.prefab.meta
new file mode 100644
index 0000000..2b2c664
--- /dev/null
+++ b/unity/Assets/2.5D Engine/Prefabs/Scarecrow.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: aad240ed1ff801843947266441166987
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/unity/Assets/2.5D Engine/Prefabs/Skeleton Staff.prefab b/unity/Assets/2.5D Engine/Prefabs/Skeleton Staff.prefab
new file mode 100644
index 0000000..c893551
--- /dev/null
+++ b/unity/Assets/2.5D Engine/Prefabs/Skeleton Staff.prefab
@@ -0,0 +1,201 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2363241074000552831
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6215090515645932799}
+ - component: {fileID: 6923226934955006161}
+ m_Layer: 0
+ m_Name: Shadow
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6215090515645932799
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2363241074000552831}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1067823222478139255}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &6923226934955006161
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2363241074000552831}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: -876546973899608171, guid: be3236dea9f1e304da1a5e3a513dad5e, type: 3}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_Sprite: {fileID: 21300000, guid: 18675d39fd8c5324794bb095ee21e9b9, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 11.08, y: 8.65}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!1 &7447625193278080842
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1067823222478139255}
+ - component: {fileID: 1108994882380700425}
+ - component: {fileID: 5010735564622604771}
+ m_Layer: 0
+ m_Name: Skeleton Staff
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1067823222478139255
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 1
+ m_Children:
+ - {fileID: 6215090515645932799}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &1108994882380700425
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 1
+ m_Sprite: {fileID: 21300000, guid: 18675d39fd8c5324794bb095ee21e9b9, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 11.08, y: 8.65}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!136 &5010735564622604771
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.2514887
+ m_Height: 20.605522
+ m_Direction: 1
+ m_Center: {x: 0.03238964, y: 10.538977, z: 0}
diff --git a/unity/Assets/2.5D Engine/Prefabs/Skeleton Staff.prefab.meta b/unity/Assets/2.5D Engine/Prefabs/Skeleton Staff.prefab.meta
new file mode 100644
index 0000000..3c1780a
--- /dev/null
+++ b/unity/Assets/2.5D Engine/Prefabs/Skeleton Staff.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 4793c8194e5492a48b329a0707c57d64
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/unity/Assets/2.5D Engine/Prefabs/Skull.prefab b/unity/Assets/2.5D Engine/Prefabs/Skull.prefab
new file mode 100644
index 0000000..3e4bea9
--- /dev/null
+++ b/unity/Assets/2.5D Engine/Prefabs/Skull.prefab
@@ -0,0 +1,201 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2363241074000552831
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6215090515645932799}
+ - component: {fileID: 6923226934955006161}
+ m_Layer: 0
+ m_Name: Shadow
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6215090515645932799
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2363241074000552831}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1067823222478139255}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &6923226934955006161
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2363241074000552831}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: -876546973899608171, guid: be3236dea9f1e304da1a5e3a513dad5e, type: 3}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_Sprite: {fileID: 21300000, guid: 60f7600e391f2614880ab6faf3c2a980, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 11.08, y: 8.65}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!1 &7447625193278080842
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1067823222478139255}
+ - component: {fileID: 1108994882380700425}
+ - component: {fileID: 5010735564622604771}
+ m_Layer: 0
+ m_Name: Skull
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1067823222478139255
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 1
+ m_Children:
+ - {fileID: 6215090515645932799}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &1108994882380700425
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 1
+ m_Sprite: {fileID: 21300000, guid: 60f7600e391f2614880ab6faf3c2a980, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 11.08, y: 8.65}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!136 &5010735564622604771
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 2.1847768
+ m_Height: 9.437778
+ m_Direction: 0
+ m_Center: {x: 0.06888962, y: 2.3077235, z: 0}
diff --git a/unity/Assets/2.5D Engine/Prefabs/Skull.prefab.meta b/unity/Assets/2.5D Engine/Prefabs/Skull.prefab.meta
new file mode 100644
index 0000000..c13b5ab
--- /dev/null
+++ b/unity/Assets/2.5D Engine/Prefabs/Skull.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 1856a62e01a472742ac6f96498b129f8
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/unity/Assets/2.5D Engine/Prefabs/Spear 1.prefab b/unity/Assets/2.5D Engine/Prefabs/Spear 1.prefab
new file mode 100644
index 0000000..6253318
--- /dev/null
+++ b/unity/Assets/2.5D Engine/Prefabs/Spear 1.prefab
@@ -0,0 +1,201 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2363241074000552831
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6215090515645932799}
+ - component: {fileID: 6923226934955006161}
+ m_Layer: 0
+ m_Name: Shadow
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6215090515645932799
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2363241074000552831}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1067823222478139255}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &6923226934955006161
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2363241074000552831}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: -876546973899608171, guid: be3236dea9f1e304da1a5e3a513dad5e, type: 3}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_Sprite: {fileID: 21300000, guid: 64baf3b6a778cca49b9fc7eb00af9d7b, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 11.08, y: 8.65}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!1 &7447625193278080842
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1067823222478139255}
+ - component: {fileID: 1108994882380700425}
+ - component: {fileID: 5010735564622604771}
+ m_Layer: 0
+ m_Name: Spear 1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1067823222478139255
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 1
+ m_Children:
+ - {fileID: 6215090515645932799}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &1108994882380700425
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 1
+ m_Sprite: {fileID: 21300000, guid: 64baf3b6a778cca49b9fc7eb00af9d7b, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 11.08, y: 8.65}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!136 &5010735564622604771
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.2514887
+ m_Height: 15.713491
+ m_Direction: 1
+ m_Center: {x: 0.03238964, y: 8.092961, z: 0}
diff --git a/unity/Assets/2.5D Engine/Prefabs/Spear 1.prefab.meta b/unity/Assets/2.5D Engine/Prefabs/Spear 1.prefab.meta
new file mode 100644
index 0000000..406951f
--- /dev/null
+++ b/unity/Assets/2.5D Engine/Prefabs/Spear 1.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 7af5a02ea03f651478b05941ccb7ec5c
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/unity/Assets/2.5D Engine/Prefabs/Spear 2.prefab b/unity/Assets/2.5D Engine/Prefabs/Spear 2.prefab
new file mode 100644
index 0000000..2e91962
--- /dev/null
+++ b/unity/Assets/2.5D Engine/Prefabs/Spear 2.prefab
@@ -0,0 +1,201 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2363241074000552831
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6215090515645932799}
+ - component: {fileID: 6923226934955006161}
+ m_Layer: 0
+ m_Name: Shadow
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6215090515645932799
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2363241074000552831}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1067823222478139255}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &6923226934955006161
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2363241074000552831}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: -876546973899608171, guid: be3236dea9f1e304da1a5e3a513dad5e, type: 3}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_Sprite: {fileID: 21300000, guid: 56b9790d196251d4ba9803a6c64d169e, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 11.08, y: 8.65}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!1 &7447625193278080842
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1067823222478139255}
+ - component: {fileID: 1108994882380700425}
+ - component: {fileID: 5010735564622604771}
+ m_Layer: 0
+ m_Name: Spear 2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1067823222478139255
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 1
+ m_Children:
+ - {fileID: 6215090515645932799}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &1108994882380700425
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 1
+ m_Sprite: {fileID: 21300000, guid: 56b9790d196251d4ba9803a6c64d169e, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 11.08, y: 8.65}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!136 &5010735564622604771
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.2514887
+ m_Height: 15.713491
+ m_Direction: 1
+ m_Center: {x: 0.03238964, y: 8.092961, z: 0}
diff --git a/unity/Assets/2.5D Engine/Prefabs/Spear 2.prefab.meta b/unity/Assets/2.5D Engine/Prefabs/Spear 2.prefab.meta
new file mode 100644
index 0000000..a3e2989
--- /dev/null
+++ b/unity/Assets/2.5D Engine/Prefabs/Spear 2.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 8eb255d01df1af34ea45b0852ffcfd02
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/unity/Assets/2.5D Engine/Prefabs/Spear 3.prefab b/unity/Assets/2.5D Engine/Prefabs/Spear 3.prefab
new file mode 100644
index 0000000..074a3f4
--- /dev/null
+++ b/unity/Assets/2.5D Engine/Prefabs/Spear 3.prefab
@@ -0,0 +1,201 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2363241074000552831
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6215090515645932799}
+ - component: {fileID: 6923226934955006161}
+ m_Layer: 0
+ m_Name: Shadow
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6215090515645932799
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2363241074000552831}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1067823222478139255}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &6923226934955006161
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2363241074000552831}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: -876546973899608171, guid: be3236dea9f1e304da1a5e3a513dad5e, type: 3}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_Sprite: {fileID: 21300000, guid: 8b0a1de40e575a6478370dd74f07346d, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 11.08, y: 8.65}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!1 &7447625193278080842
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1067823222478139255}
+ - component: {fileID: 1108994882380700425}
+ - component: {fileID: 5010735564622604771}
+ m_Layer: 0
+ m_Name: Spear 3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1067823222478139255
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 1
+ m_Children:
+ - {fileID: 6215090515645932799}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &1108994882380700425
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 1
+ m_Sprite: {fileID: 21300000, guid: 8b0a1de40e575a6478370dd74f07346d, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 11.08, y: 8.65}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!136 &5010735564622604771
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7447625193278080842}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.9560499
+ m_Height: 5.117481
+ m_Direction: 1
+ m_Center: {x: 2.54, y: 2.7949562, z: -0.70456123}
diff --git a/unity/Assets/2.5D Engine/Prefabs/Spear 3.prefab.meta b/unity/Assets/2.5D Engine/Prefabs/Spear 3.prefab.meta
new file mode 100644
index 0000000..b624c15
--- /dev/null
+++ b/unity/Assets/2.5D Engine/Prefabs/Spear 3.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d43bdff8650c4f440b2f6bd0f33c90dc
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Skulls.meta b/unity/Assets/2.5D Engine/Scripts.meta
similarity index 77%
rename from unity/Assets/Materials/Materials/Misc/Skulls.meta
rename to unity/Assets/2.5D Engine/Scripts.meta
index acd42e5..ea93b68 100644
--- a/unity/Assets/Materials/Materials/Misc/Skulls.meta
+++ b/unity/Assets/2.5D Engine/Scripts.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 90157d49a9b32944a83fbe23bbbdefef
+guid: 2c5d0362c58d18a4982f9d509374eaa9
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/unity/Assets/Resources/Spine/Brute/images/Brute/SmearLarge.meta b/unity/Assets/2.5D Engine/Shaders.meta
similarity index 77%
rename from unity/Assets/Resources/Spine/Brute/images/Brute/SmearLarge.meta
rename to unity/Assets/2.5D Engine/Shaders.meta
index cc465ba..be6467f 100644
--- a/unity/Assets/Resources/Spine/Brute/images/Brute/SmearLarge.meta
+++ b/unity/Assets/2.5D Engine/Shaders.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 43e569359e58f3946bf5efb0c13b8620
+guid: 5a47317560a688441a5d700134160540
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/unity/Assets/Script.meta b/unity/Assets/2.5D Engine/Sounds.meta
similarity index 77%
rename from unity/Assets/Script.meta
rename to unity/Assets/2.5D Engine/Sounds.meta
index 81323e3..3d25b49 100644
--- a/unity/Assets/Script.meta
+++ b/unity/Assets/2.5D Engine/Sounds.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 65e107dd9c5afa6468a4087a032544d9
+guid: b0d0926a4f773db41b587ef80df13b3f
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/unity/Assets/2.5D Engine/Sprites/Other/Skull 1.png b/unity/Assets/2.5D Engine/Sprites/Other/Skull 1.png
new file mode 100644
index 0000000..faf01e7
Binary files /dev/null and b/unity/Assets/2.5D Engine/Sprites/Other/Skull 1.png differ
diff --git a/unity/Assets/Resources/Spine/Brute/images/Brute/SmearLarge/SmearLarge.png.meta b/unity/Assets/2.5D Engine/Sprites/Other/Skull 1.png.meta
similarity index 71%
rename from unity/Assets/Resources/Spine/Brute/images/Brute/SmearLarge/SmearLarge.png.meta
rename to unity/Assets/2.5D Engine/Sprites/Other/Skull 1.png.meta
index cfaeeb8..42f254a 100644
--- a/unity/Assets/Resources/Spine/Brute/images/Brute/SmearLarge/SmearLarge.png.meta
+++ b/unity/Assets/2.5D Engine/Sprites/Other/Skull 1.png.meta
@@ -1,9 +1,12 @@
fileFormatVersion: 2
-guid: bae0c08e6e352574d8277b7373ce8d41
+guid: 60f7600e391f2614880ab6faf3c2a980
TextureImporter:
- internalIDToNameTable: []
+ internalIDToNameTable:
+ - first:
+ 213: -367487875906956285
+ second: _0065_67.png_0
externalObjects: {}
- serializedVersion: 12
+ serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,11 +23,12 @@ TextureImporter:
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
+ flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
- ignoreMasterTextureLimit: 0
+ ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -45,7 +49,7 @@ TextureImporter:
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
- alignment: 0
+ alignment: 7
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
@@ -63,9 +67,10 @@ TextureImporter:
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
+ swizzle: 50462976
cookieLightType: 0
platformSettings:
- - serializedVersion: 3
+ - serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
@@ -75,9 +80,10 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- - serializedVersion: 3
+ - serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
@@ -87,21 +93,10 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- - serializedVersion: 3
- buildTarget: Server
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- forceMaximumCompressionQuality_BC6H_BC7: 0
- - serializedVersion: 3
+ - serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
@@ -111,12 +106,49 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WebGL
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
- sprites: []
+ sprites:
+ - serializedVersion: 2
+ name: _0065_67.png_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1258
+ height: 588
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 3049d4159bb66eaf0800000000000000
+ internalID: -367487875906956285
+ vertices: []
+ indices:
+ edges: []
+ weights: []
outline: []
+ customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
@@ -126,10 +158,12 @@ TextureImporter:
edges: []
weights: []
secondaryTextures: []
- nameFileIdTable: {}
- spritePackingTag:
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ _0065_67.png_0: -367487875906956285
+ mipmapLimitGroupName:
pSDRemoveMatte: 0
- pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/unity/Assets/2.5D Engine/Sprites/Other/Skull 2.png b/unity/Assets/2.5D Engine/Sprites/Other/Skull 2.png
new file mode 100644
index 0000000..bfe78a0
Binary files /dev/null and b/unity/Assets/2.5D Engine/Sprites/Other/Skull 2.png differ
diff --git a/unity/Assets/Resources/Spine/Brute/images/Brute/pentagram/Skull.png.meta b/unity/Assets/2.5D Engine/Sprites/Other/Skull 2.png.meta
similarity index 71%
rename from unity/Assets/Resources/Spine/Brute/images/Brute/pentagram/Skull.png.meta
rename to unity/Assets/2.5D Engine/Sprites/Other/Skull 2.png.meta
index df275b3..082b88b 100644
--- a/unity/Assets/Resources/Spine/Brute/images/Brute/pentagram/Skull.png.meta
+++ b/unity/Assets/2.5D Engine/Sprites/Other/Skull 2.png.meta
@@ -1,9 +1,12 @@
fileFormatVersion: 2
-guid: 3e216ac7f62d16a4b87300b486b5f206
+guid: 18675d39fd8c5324794bb095ee21e9b9
TextureImporter:
- internalIDToNameTable: []
+ internalIDToNameTable:
+ - first:
+ 213: 6294709003494146569
+ second: _0057_59.png_0
externalObjects: {}
- serializedVersion: 12
+ serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,11 +23,12 @@ TextureImporter:
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
+ flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
- ignoreMasterTextureLimit: 0
+ ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -45,7 +49,7 @@ TextureImporter:
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
- alignment: 0
+ alignment: 7
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
@@ -63,9 +67,10 @@ TextureImporter:
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
+ swizzle: 50462976
cookieLightType: 0
platformSettings:
- - serializedVersion: 3
+ - serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
@@ -75,9 +80,10 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- - serializedVersion: 3
+ - serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
@@ -87,21 +93,10 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- - serializedVersion: 3
- buildTarget: Server
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- forceMaximumCompressionQuality_BC6H_BC7: 0
- - serializedVersion: 3
+ - serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
@@ -111,12 +106,49 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WebGL
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
- sprites: []
+ sprites:
+ - serializedVersion: 2
+ name: _0057_59.png_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 458
+ height: 2416
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 902c8b5ec7c4b5750800000000000000
+ internalID: 6294709003494146569
+ vertices: []
+ indices:
+ edges: []
+ weights: []
outline: []
+ customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
@@ -126,10 +158,12 @@ TextureImporter:
edges: []
weights: []
secondaryTextures: []
- nameFileIdTable: {}
- spritePackingTag:
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ _0057_59.png_0: 6294709003494146569
+ mipmapLimitGroupName:
pSDRemoveMatte: 0
- pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/unity/Assets/Light/scripts.meta b/unity/Assets/Light/scripts.meta
new file mode 100644
index 0000000..e0143e8
--- /dev/null
+++ b/unity/Assets/Light/scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: W3oWvHyqBnvWOyXZtjqOQEgCHiPhFwor4I6wYgNWQfSp5DHreJ44o2Q=
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/unity/Assets/Light/scripts/SceneInteraction.cs b/unity/Assets/Light/scripts/SceneInteraction.cs
new file mode 100644
index 0000000..e02a42c
--- /dev/null
+++ b/unity/Assets/Light/scripts/SceneInteraction.cs
@@ -0,0 +1,142 @@
+using UnityEngine;
+using System.Collections;
+
+namespace IndianOceanAssets.Engine2_5D
+{
+ ///
+ /// 场景交互点 —— 玩家走到指定物体附近,按 Q 触å‘过场。
+ /// 触å‘åŽä¸»è§’çš„å…‰åœˆé€æ¸æ‰©å¤§ï¼Œæœ€ç»ˆç‚¹äº®æ•´ä¸ªåœºæ™¯ï¼ˆPPTå¼è¿‡æ¸¡ï¼‰ã€‚
+ ///
+ /// 挂载ä½ç½®ï¼šåœºæ™¯ä¸çš„交互物件(如ç¥å›ã€æœºå…³ã€ç‰¹æ®ŠNPCç‰ï¼‰
+ /// 需è¦ï¼šç‰©ä½“上有 Collider + 勾选 IsTrigger
+ /// çŽ©å®¶éœ€è¦ Tag = "Player"
+ ///
+ public class SceneInteraction : MonoBehaviour
+ {
+ [Header("交互设置")]
+ [SerializeField] private KeyCode interactKey = KeyCode.Q;
+ [Tooltip("玩家进入æ¤èŒƒå›´æ‰èƒ½äº¤äº’")]
+ [SerializeField] private float interactionRadius = 3f;
+
+ [Header("è¿‡åœºå‚æ•°")]
+ [Tooltip("光圈扩大的æŒç»æ—¶é—´ï¼ˆç§’),类似PPT过场")]
+ [SerializeField] private float transitionDuration = 5f;
+
+ [Tooltip("最终光圈åŠå¾„(è¦è¦†ç›–整个场景的è¯è®¾å¤§ä¸€ç‚¹ï¼‰")]
+ [SerializeField] private float finalLightRadius = 60f;
+
+ [Tooltip("最终全局最å°äº®åº¦ï¼ˆ0.6=全场景å¯è§ä½†åæš—, 1.0=全亮)")]
+ [SerializeField, Range(0f, 1f)] private float finalMinBrightness = 0.7f;
+
+ [Header("引用")]
+ [Tooltip("玩家的 LightSource 组件(必须已挂载)")]
+ [SerializeField] private LightSource playerLightSource;
+
+ [Tooltip("交互æç¤º UI(å¯é€‰ï¼Œçީ家é 近时显示)")]
+ [SerializeField] private GameObject interactionPrompt;
+
+ [Header("音效(å¯é€‰ï¼‰")]
+ [SerializeField] private AudioSource interactionSFX;
+
+ // 状æ€
+ private bool _triggered = false;
+ private bool _playerInRange = false;
+ private Transform _player;
+
+ private void Start()
+ {
+ // 自动查找玩家
+ GameObject playerObj = GameObject.FindGameObjectWithTag("Player");
+ if (playerObj != null)
+ {
+ _player = playerObj.transform;
+ if (playerLightSource == null)
+ playerLightSource = playerObj.GetComponent();
+ }
+
+ if (interactionPrompt != null)
+ interactionPrompt.SetActive(false);
+ }
+
+ private void Update()
+ {
+ if (_triggered) return;
+
+ // 检测玩家是å¦åœ¨èŒƒå›´å†…
+ if (_player != null)
+ {
+ float dist = Vector3.Distance(transform.position, _player.position);
+ _playerInRange = dist <= interactionRadius;
+ }
+
+ // 显示/éšè—交互æç¤º
+ if (interactionPrompt != null)
+ interactionPrompt.SetActive(_playerInRange);
+
+ // 检测 Q 键
+ if (_playerInRange && Input.GetKeyDown(interactKey))
+ {
+ StartCoroutine(ExpandLightTransition());
+ }
+ }
+
+ ///
+ /// 过场åç¨‹ï¼šå…‰åœˆé€æ¸æ‰©å¤§ + 全局亮度æå‡
+ ///
+ private IEnumerator ExpandLightTransition()
+ {
+ _triggered = true;
+
+ // éšè—交互æç¤º
+ if (interactionPrompt != null)
+ interactionPrompt.SetActive(false);
+
+ // æ’æ”¾éŸ³æ•ˆ
+ if (interactionSFX != null)
+ interactionSFX.Play();
+
+ // 记录åˆå§‹å€¼
+ float startRadius = playerLightSource != null ? playerLightSource.Radius : 5f;
+ float startBrightness = LightMaskSystem.Instance != null ? 0f : 0f;
+
+ float elapsed = 0f;
+
+ // 过程:平滑æ’值扩大
+ while (elapsed < transitionDuration)
+ {
+ elapsed += Time.deltaTime;
+ float t = elapsed / transitionDuration;
+
+ // SmoothStep æ’值(开始和结æŸéƒ½æŸ”和)
+ float smoothT = t * t * (3f - 2f * t);
+
+ // 扩大玩家光圈åŠå¾„
+ if (playerLightSource != null)
+ playerLightSource.SetRadius(Mathf.Lerp(startRadius, finalLightRadius, smoothT));
+
+ // æå‡å…¨å±€æœ€å°äº®åº¦ï¼ˆè®©é»‘æš—åŒºåŸŸä¹Ÿé€æ¸å¯è§ï¼‰
+ if (LightMaskSystem.Instance != null)
+ LightMaskSystem.Instance.SetMinBrightness(Mathf.Lerp(startBrightness, finalMinBrightness, smoothT));
+
+ yield return null;
+ }
+
+ // ç¡®ä¿æœ€ç»ˆå€¼
+ if (playerLightSource != null)
+ playerLightSource.SetRadius(finalLightRadius);
+
+ if (LightMaskSystem.Instance != null)
+ LightMaskSystem.Instance.SetMinBrightness(finalMinBrightness);
+
+ Debug.Log("[SceneInteraction] 过场完æˆï¼Œåœºæ™¯å·²å…¨éƒ¨ç‚¹äº®");
+ }
+
+ // ===== 编辑器å¯è§†åŒ– =====
+
+ private void OnDrawGizmosSelected()
+ {
+ Gizmos.color = new Color(0f, 1f, 0f, 0.3f);
+ Gizmos.DrawWireSphere(transform.position, interactionRadius);
+ }
+ }
+}
diff --git a/unity/Assets/Script/Managers/SceneMonsterManager.cs.meta b/unity/Assets/Light/scripts/SceneInteraction.cs.meta
similarity index 76%
rename from unity/Assets/Script/Managers/SceneMonsterManager.cs.meta
rename to unity/Assets/Light/scripts/SceneInteraction.cs.meta
index 63e023f..353b74a 100644
--- a/unity/Assets/Script/Managers/SceneMonsterManager.cs.meta
+++ b/unity/Assets/Light/scripts/SceneInteraction.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 3c6d37fb46cffe1408e982d6d1b9a190
+guid: DHwc5iOpASgd5J94B1Q5+fBP0YzEOJ7hKYw+A3fa57BhVdIhBdXVDIw=
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/unity/Assets/Light/shaders.meta b/unity/Assets/Light/shaders.meta
new file mode 100644
index 0000000..20c180a
--- /dev/null
+++ b/unity/Assets/Light/shaders.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: XnhL5n7+Ui3TNcYLM45XiTfMXZPZUeGJ7vfNaCpVxxNIsNT2p+90gY0=
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Basics/solid_AB.mat b/unity/Assets/Materials/Materials/Basics/solid_AB.mat
deleted file mode 100644
index 532bdc0..0000000
--- a/unity/Assets/Materials/Materials/Basics/solid_AB.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: solid_AB
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON _FADING_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 2
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 3
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 1
- - _SoftParticlesFarFadeDistance: 0.2
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 5, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Basics/solid_AB.mat.meta b/unity/Assets/Materials/Materials/Basics/solid_AB.mat.meta
deleted file mode 100644
index 0e2e070..0000000
--- a/unity/Assets/Materials/Materials/Basics/solid_AB.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 072ade2f5404113439ad723bd09909d2
-timeCreated: 1448817852
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Basics/sparkle2_ADD.mat b/unity/Assets/Materials/Materials/Basics/sparkle2_ADD.mat
deleted file mode 100644
index ee625de..0000000
--- a/unity/Assets/Materials/Materials/Basics/sparkle2_ADD.mat
+++ /dev/null
@@ -1,70 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 8
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: sparkle2_ADD
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ValidKeywords:
- - _ALPHABLEND_ON
- m_InvalidKeywords: []
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - GRABPASS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 81c2794b522bc6a4fa81c3ad4900b9c6, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 2
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 1
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 4
- - _SoftParticlesEnabled: 0
- - _SoftParticlesFarFadeDistance: 1
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- m_BuildTextureStacks: []
diff --git a/unity/Assets/Materials/Materials/Basics/sparkle2_ADD.mat.meta b/unity/Assets/Materials/Materials/Basics/sparkle2_ADD.mat.meta
deleted file mode 100644
index 4fd8845..0000000
--- a/unity/Assets/Materials/Materials/Basics/sparkle2_ADD.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 1fe38ac1a569ae54590f6e2aff679c74
-timeCreated: 1446214052
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Basics/sparkle_AB.mat b/unity/Assets/Materials/Materials/Basics/sparkle_AB.mat
deleted file mode 100644
index 9af8f72..0000000
--- a/unity/Assets/Materials/Materials/Basics/sparkle_AB.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: sparkle_AB
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 42c6cbafef4b45440b6e298646aa1ec5, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 2
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 0
- - _SoftParticlesFarFadeDistance: 1
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Basics/sparkle_AB.mat.meta b/unity/Assets/Materials/Materials/Basics/sparkle_AB.mat.meta
deleted file mode 100644
index 8e8202d..0000000
--- a/unity/Assets/Materials/Materials/Basics/sparkle_AB.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 4408abb7a30b61a4a9a19dbb5f761d2b
-timeCreated: 1455389945
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Basics/sparkle_ADD.mat b/unity/Assets/Materials/Materials/Basics/sparkle_ADD.mat
deleted file mode 100644
index 940698b..0000000
--- a/unity/Assets/Materials/Materials/Basics/sparkle_ADD.mat
+++ /dev/null
@@ -1,70 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 8
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: sparkle_ADD
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ValidKeywords:
- - _ALPHABLEND_ON
- m_InvalidKeywords: []
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - GRABPASS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 42c6cbafef4b45440b6e298646aa1ec5, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 2
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 1
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 4
- - _SoftParticlesEnabled: 0
- - _SoftParticlesFarFadeDistance: 1
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- m_BuildTextureStacks: []
diff --git a/unity/Assets/Materials/Materials/Basics/sparkle_ADD.mat.meta b/unity/Assets/Materials/Materials/Basics/sparkle_ADD.mat.meta
deleted file mode 100644
index ef1e586..0000000
--- a/unity/Assets/Materials/Materials/Basics/sparkle_ADD.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: a976a44ca501e564bb2adee42f573b4d
-timeCreated: 1446213834
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Magic/shield_magic_ADD.mat b/unity/Assets/Materials/Materials/Misc/Magic/shield_magic_ADD.mat
deleted file mode 100644
index cc6625d..0000000
--- a/unity/Assets/Materials/Materials/Misc/Magic/shield_magic_ADD.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: shield_magic_ADD
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON _FADING_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: cf85581cb07626b46bceb11ed2b4349e, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 0
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 1
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 4
- - _SoftParticlesEnabled: 1
- - _SoftParticlesFarFadeDistance: 1
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 1, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Misc/Magic/shield_magic_ADD.mat.meta b/unity/Assets/Materials/Materials/Misc/Magic/shield_magic_ADD.mat.meta
deleted file mode 100644
index a010871..0000000
--- a/unity/Assets/Materials/Materials/Misc/Magic/shield_magic_ADD.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 139f4c1696c68e54390a5ad669273cab
-timeCreated: 1454968819
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Skulls/skull2_AB.mat b/unity/Assets/Materials/Materials/Misc/Skulls/skull2_AB.mat
deleted file mode 100644
index 2fd01df..0000000
--- a/unity/Assets/Materials/Materials/Misc/Skulls/skull2_AB.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: skull2_AB
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: bd1c06c9454b93249b1bf03e39dd3587, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 2
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 0
- - _SoftParticlesFarFadeDistance: 1
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Misc/Skulls/skull2_AB.mat.meta b/unity/Assets/Materials/Materials/Misc/Skulls/skull2_AB.mat.meta
deleted file mode 100644
index 878582c..0000000
--- a/unity/Assets/Materials/Materials/Misc/Skulls/skull2_AB.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: bab1fe4217d50234dad4b94da5a2227a
-timeCreated: 1529164765
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Skulls/skull3_AB.mat b/unity/Assets/Materials/Materials/Misc/Skulls/skull3_AB.mat
deleted file mode 100644
index b29c403..0000000
--- a/unity/Assets/Materials/Materials/Misc/Skulls/skull3_AB.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: skull3_AB
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: ebd9ac46f0a6811498a4195ac10fcfba, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 2
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 0
- - _SoftParticlesFarFadeDistance: 1
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Misc/Skulls/skull3_AB.mat.meta b/unity/Assets/Materials/Materials/Misc/Skulls/skull3_AB.mat.meta
deleted file mode 100644
index eaee147..0000000
--- a/unity/Assets/Materials/Materials/Misc/Skulls/skull3_AB.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 46bc5c80807d4f7469309d4067c72757
-timeCreated: 1529164767
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Skulls/skull4_AB.mat b/unity/Assets/Materials/Materials/Misc/Skulls/skull4_AB.mat
deleted file mode 100644
index 5cadbef..0000000
--- a/unity/Assets/Materials/Materials/Misc/Skulls/skull4_AB.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: skull4_AB
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: c550bb0cbd3237e4a88b543a96518cce, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 2
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 0
- - _SoftParticlesFarFadeDistance: 1
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Misc/Skulls/skull4_AB.mat.meta b/unity/Assets/Materials/Materials/Misc/Skulls/skull4_AB.mat.meta
deleted file mode 100644
index 2ee3489..0000000
--- a/unity/Assets/Materials/Materials/Misc/Skulls/skull4_AB.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: b32d83f23be6ff846b7e4581eb6eaf9b
-timeCreated: 1529164769
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Skulls/skull_evil_AB.mat b/unity/Assets/Materials/Materials/Misc/Skulls/skull_evil_AB.mat
deleted file mode 100644
index 5cdba0d..0000000
--- a/unity/Assets/Materials/Materials/Misc/Skulls/skull_evil_AB.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: skull_evil_AB
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 8b30ec1b990cb3b4f961fd47cd31d653, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 2
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 0
- - _SoftParticlesFarFadeDistance: 1
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Misc/Skulls/skull_evil_AB.mat.meta b/unity/Assets/Materials/Materials/Misc/Skulls/skull_evil_AB.mat.meta
deleted file mode 100644
index fa6913c..0000000
--- a/unity/Assets/Materials/Materials/Misc/Skulls/skull_evil_AB.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: d9d84bf291981044f8a47027ad0956fc
-timeCreated: 1529438016
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Skulls/skull_love_AB.mat b/unity/Assets/Materials/Materials/Misc/Skulls/skull_love_AB.mat
deleted file mode 100644
index 9368882..0000000
--- a/unity/Assets/Materials/Materials/Misc/Skulls/skull_love_AB.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: skull_love_AB
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 529f928ce594e144ba6b086b892cfd98, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 2
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 0
- - _SoftParticlesFarFadeDistance: 1
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Misc/Skulls/skull_love_AB.mat.meta b/unity/Assets/Materials/Materials/Misc/Skulls/skull_love_AB.mat.meta
deleted file mode 100644
index 95019b5..0000000
--- a/unity/Assets/Materials/Materials/Misc/Skulls/skull_love_AB.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 9508913321a683748b47ef37ee8cd11b
-timeCreated: 1529166220
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash01_AB.mat b/unity/Assets/Materials/Materials/Misc/Sword/slash01_AB.mat
deleted file mode 100644
index b572b4b..0000000
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash01_AB.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: slash01_AB
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON _FADING_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: d478fb64565f90c4498c4f5a68148fac, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 0
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 1
- - _SoftParticlesFarFadeDistance: 0.2
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 5, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash01_ADD.mat b/unity/Assets/Materials/Materials/Misc/Sword/slash01_ADD.mat
deleted file mode 100644
index 02ba36a..0000000
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash01_ADD.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: slash01_ADD
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON _FADING_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: d478fb64565f90c4498c4f5a68148fac, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 0
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 1
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 4
- - _SoftParticlesEnabled: 1
- - _SoftParticlesFarFadeDistance: 0.2
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 5, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash02_AB.mat b/unity/Assets/Materials/Materials/Misc/Sword/slash02_AB.mat
deleted file mode 100644
index b13b63a..0000000
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash02_AB.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: slash02_AB
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON _FADING_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 2b5fb67be84c87243835738b6d3828c1, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 0
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 1
- - _SoftParticlesFarFadeDistance: 0.2
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 5, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash02_ADD.mat b/unity/Assets/Materials/Materials/Misc/Sword/slash02_ADD.mat
deleted file mode 100644
index 4e3100d..0000000
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash02_ADD.mat
+++ /dev/null
@@ -1,71 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 8
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: slash02_ADD
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ValidKeywords:
- - _ALPHABLEND_ON
- - _FADING_ON
- m_InvalidKeywords: []
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - GRABPASS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 2b5fb67be84c87243835738b6d3828c1, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 0
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 1
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 4
- - _SoftParticlesEnabled: 1
- - _SoftParticlesFarFadeDistance: 0.2
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 5, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- m_BuildTextureStacks: []
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash02_ADD.mat.meta b/unity/Assets/Materials/Materials/Misc/Sword/slash02_ADD.mat.meta
deleted file mode 100644
index e9047b4..0000000
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash02_ADD.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: d37aef7de1fc0aa42810d38ede4bce9f
-NativeFormatImporter:
- externalObjects: {}
- mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash03_AB.mat b/unity/Assets/Materials/Materials/Misc/Sword/slash03_AB.mat
deleted file mode 100644
index fd4e24b..0000000
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash03_AB.mat
+++ /dev/null
@@ -1,71 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 8
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: slash03_AB
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ValidKeywords:
- - _ALPHABLEND_ON
- - _FADING_ON
- m_InvalidKeywords: []
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - GRABPASS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 0db0d2c7ee689544ab71a3a24818a71c, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 0
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 1
- - _SoftParticlesFarFadeDistance: 0.2
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 5, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- m_BuildTextureStacks: []
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash03_AB.mat.meta b/unity/Assets/Materials/Materials/Misc/Sword/slash03_AB.mat.meta
deleted file mode 100644
index 2c17573..0000000
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash03_AB.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 6e95095aaaabd654b99cc226c305f807
-NativeFormatImporter:
- externalObjects: {}
- mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash03_ADD.mat b/unity/Assets/Materials/Materials/Misc/Sword/slash03_ADD.mat
deleted file mode 100644
index a0fdf4d..0000000
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash03_ADD.mat
+++ /dev/null
@@ -1,71 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 8
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: slash03_ADD
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ValidKeywords:
- - _ALPHABLEND_ON
- - _FADING_ON
- m_InvalidKeywords: []
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - GRABPASS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 0db0d2c7ee689544ab71a3a24818a71c, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 0
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 1
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 4
- - _SoftParticlesEnabled: 1
- - _SoftParticlesFarFadeDistance: 0.2
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 5, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- m_BuildTextureStacks: []
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash03_ADD.mat.meta b/unity/Assets/Materials/Materials/Misc/Sword/slash03_ADD.mat.meta
deleted file mode 100644
index d04dcf4..0000000
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash03_ADD.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: c00f4ebbd07bea24f9aeb168ec407416
-NativeFormatImporter:
- externalObjects: {}
- mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash_circle01_AB.mat b/unity/Assets/Materials/Materials/Misc/Sword/slash_circle01_AB.mat
deleted file mode 100644
index ca7b30b..0000000
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash_circle01_AB.mat
+++ /dev/null
@@ -1,71 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 8
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: slash_circle01_AB
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ValidKeywords:
- - _ALPHABLEND_ON
- - _FADING_ON
- m_InvalidKeywords: []
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - GRABPASS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 1e1561d4b6abcb3439826647480d5a2a, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 0
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 3
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 1
- - _SoftParticlesFarFadeDistance: 0.2
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 5, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- m_BuildTextureStacks: []
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash_circle01_AB.mat.meta b/unity/Assets/Materials/Materials/Misc/Sword/slash_circle01_AB.mat.meta
deleted file mode 100644
index 2516535..0000000
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash_circle01_AB.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: e9edc2d464bda70448a5f572f7c7d5be
-timeCreated: 1446058551
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash_circle01_ADD.mat b/unity/Assets/Materials/Materials/Misc/Sword/slash_circle01_ADD.mat
deleted file mode 100644
index 610772a..0000000
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash_circle01_ADD.mat
+++ /dev/null
@@ -1,71 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 8
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: slash_circle01_ADD
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ValidKeywords:
- - _ALPHABLEND_ON
- - _FADING_ON
- m_InvalidKeywords: []
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - GRABPASS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 1e1561d4b6abcb3439826647480d5a2a, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 0
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 1
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 3
- - _LightingEnabled: 0
- - _Mode: 4
- - _SoftParticlesEnabled: 1
- - _SoftParticlesFarFadeDistance: 0.2
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 5, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- m_BuildTextureStacks: []
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash_circle01_ADD.mat.meta b/unity/Assets/Materials/Materials/Misc/Sword/slash_circle01_ADD.mat.meta
deleted file mode 100644
index 45b5721..0000000
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash_circle01_ADD.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 6eb991e61c0314441bebec3f82ff5838
-timeCreated: 1447015813
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash_circle02_ADD.mat b/unity/Assets/Materials/Materials/Misc/Sword/slash_circle02_ADD.mat
deleted file mode 100644
index faa3942..0000000
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash_circle02_ADD.mat
+++ /dev/null
@@ -1,71 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 8
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: slash_circle02_ADD
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ValidKeywords:
- - _ALPHABLEND_ON
- - _FADING_ON
- m_InvalidKeywords: []
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - GRABPASS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 509425df8368aeb49ac69d0a04553f23, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 0
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 1
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 4
- - _SoftParticlesEnabled: 1
- - _SoftParticlesFarFadeDistance: 0.2
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 5, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- m_BuildTextureStacks: []
diff --git a/unity/Assets/Materials/Materials/Misc/Sword/slash_circle02_ADD.mat.meta b/unity/Assets/Materials/Materials/Misc/Sword/slash_circle02_ADD.mat.meta
deleted file mode 100644
index 90f9cc5..0000000
--- a/unity/Assets/Materials/Materials/Misc/Sword/slash_circle02_ADD.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: aada8adea3c6bfc4d928c85123b0c100
-NativeFormatImporter:
- externalObjects: {}
- mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Text/sharp_blue.mat b/unity/Assets/Materials/Materials/Misc/Text/sharp_blue.mat
deleted file mode 100644
index 41feddb..0000000
--- a/unity/Assets/Materials/Materials/Misc/Text/sharp_blue.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: sharp_blue
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 6e9049c4381a52441905f0b6f22c50b7, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 2
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 0
- - _SoftParticlesFarFadeDistance: 1
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5019608}
diff --git a/unity/Assets/Materials/Materials/Misc/Text/sharp_blue.mat.meta b/unity/Assets/Materials/Materials/Misc/Text/sharp_blue.mat.meta
deleted file mode 100644
index 78146ad..0000000
--- a/unity/Assets/Materials/Materials/Misc/Text/sharp_blue.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 666a9773a2ea0cc4c9d0c65884f33431
-timeCreated: 1446473460
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Text/sharp_red.mat b/unity/Assets/Materials/Materials/Misc/Text/sharp_red.mat
deleted file mode 100644
index 699d5af..0000000
--- a/unity/Assets/Materials/Materials/Misc/Text/sharp_red.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: sharp_red
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 52dc7fc8504ffa4478509abbf225397b, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 2
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 0
- - _SoftParticlesFarFadeDistance: 1
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Misc/Text/sharp_red.mat.meta b/unity/Assets/Materials/Materials/Misc/Text/sharp_red.mat.meta
deleted file mode 100644
index 21b0e15..0000000
--- a/unity/Assets/Materials/Materials/Misc/Text/sharp_red.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: c8c5f86f3a7ff694faf5f45758f045de
-timeCreated: 1446473857
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Text/sharp_white.mat b/unity/Assets/Materials/Materials/Misc/Text/sharp_white.mat
deleted file mode 100644
index 08c4864..0000000
--- a/unity/Assets/Materials/Materials/Misc/Text/sharp_white.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: sharp_white
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 365b61a3eb5291e49913e6a3fa1e998f, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 2
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 0
- - _SoftParticlesFarFadeDistance: 1
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Misc/Text/sharp_white.mat.meta b/unity/Assets/Materials/Materials/Misc/Text/sharp_white.mat.meta
deleted file mode 100644
index 0944b87..0000000
--- a/unity/Assets/Materials/Materials/Misc/Text/sharp_white.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: e90b17dfed84ba44a86ade94a99606d2
-timeCreated: 1553006576
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Text/sharp_yellow.mat b/unity/Assets/Materials/Materials/Misc/Text/sharp_yellow.mat
deleted file mode 100644
index 79a4026..0000000
--- a/unity/Assets/Materials/Materials/Misc/Text/sharp_yellow.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: sharp_yellow
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: cba5f2c9bebcb774c892f091de39e67c, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 2
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 0
- - _SoftParticlesFarFadeDistance: 1
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Misc/Text/sharp_yellow.mat.meta b/unity/Assets/Materials/Materials/Misc/Text/sharp_yellow.mat.meta
deleted file mode 100644
index 58499cb..0000000
--- a/unity/Assets/Materials/Materials/Misc/Text/sharp_yellow.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: a5fb89a338069534188b51c3abb7a128
-timeCreated: 1448289834
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Text/smack.mat b/unity/Assets/Materials/Materials/Misc/Text/smack.mat
deleted file mode 100644
index 6b8b9ef..0000000
--- a/unity/Assets/Materials/Materials/Misc/Text/smack.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: smack
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 2e75d274f07452744b768f19594ad72f, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 2
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 0
- - _SoftParticlesFarFadeDistance: 1
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Misc/Text/smack.mat.meta b/unity/Assets/Materials/Materials/Misc/Text/smack.mat.meta
deleted file mode 100644
index 6601e3d..0000000
--- a/unity/Assets/Materials/Materials/Misc/Text/smack.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: a03694b155628b44e94d75e444aa7341
-timeCreated: 1446473866
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Materials/Misc/Unsorted/snowflake_AB.mat b/unity/Assets/Materials/Materials/Misc/Unsorted/snowflake_AB.mat
deleted file mode 100644
index 35b1825..0000000
--- a/unity/Assets/Materials/Materials/Misc/Unsorted/snowflake_AB.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_Name: snowflake_AB
- m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
- m_ShaderKeywords: _ALPHABLEND_ON
- m_LightmapFlags: 0
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3000
- stringTagMap:
- RenderType: Transparent
- disabledShaderPasses:
- - ALWAYS
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 7a5dd798dffc8604fbac6d07059eadd5, type: 3}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BlendOp: 0
- - _BumpScale: 1
- - _CameraFadingEnabled: 0
- - _CameraFarFadeDistance: 2
- - _CameraNearFadeDistance: 1
- - _ColorMode: 0
- - _Cull: 2
- - _Cutoff: 0.5
- - _DistortionBlend: 0.5
- - _DistortionEnabled: 0
- - _DistortionStrength: 1
- - _DistortionStrengthScaled: 0
- - _DstBlend: 10
- - _EmissionEnabled: 0
- - _FlipbookMode: 0
- - _InvFade: 1
- - _LightingEnabled: 0
- - _Mode: 2
- - _SoftParticlesEnabled: 0
- - _SoftParticlesFarFadeDistance: 1
- - _SoftParticlesNearFadeDistance: 0
- - _SrcBlend: 5
- - _ZWrite: 0
- m_Colors:
- - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
diff --git a/unity/Assets/Materials/Materials/Misc/Unsorted/snowflake_AB.mat.meta b/unity/Assets/Materials/Materials/Misc/Unsorted/snowflake_AB.mat.meta
deleted file mode 100644
index de3ed9e..0000000
--- a/unity/Assets/Materials/Materials/Misc/Unsorted/snowflake_AB.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: e886185bff410b84fa34b22a2dc8fbb7
-timeCreated: 1520710061
-licenseType: Store
-NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Emojis/sad.png.meta b/unity/Assets/Materials/Textures/Emojis/sad.png.meta
deleted file mode 100644
index b45570d..0000000
--- a/unity/Assets/Materials/Textures/Emojis/sad.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: b50bd2fcc72be4046ad095b737b93af5
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Emojis/sadcry.png b/unity/Assets/Materials/Textures/Emojis/sadcry.png
deleted file mode 100644
index 72387aa..0000000
Binary files a/unity/Assets/Materials/Textures/Emojis/sadcry.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Emojis/sadcry.png.meta b/unity/Assets/Materials/Textures/Emojis/sadcry.png.meta
deleted file mode 100644
index 0f303c9..0000000
--- a/unity/Assets/Materials/Textures/Emojis/sadcry.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: dede9400561424d4ea636df766dbb13e
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: 1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Emojis/scared.png b/unity/Assets/Materials/Textures/Emojis/scared.png
deleted file mode 100644
index 399fd2c..0000000
Binary files a/unity/Assets/Materials/Textures/Emojis/scared.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Emojis/scared.png.meta b/unity/Assets/Materials/Textures/Emojis/scared.png.meta
deleted file mode 100644
index 087e69f..0000000
--- a/unity/Assets/Materials/Textures/Emojis/scared.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: d235b9bd26b61f144a9efcd9cc34354a
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: 1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Emojis/shocked.png b/unity/Assets/Materials/Textures/Emojis/shocked.png
deleted file mode 100644
index 9f39315..0000000
Binary files a/unity/Assets/Materials/Textures/Emojis/shocked.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Emojis/shocked.png.meta b/unity/Assets/Materials/Textures/Emojis/shocked.png.meta
deleted file mode 100644
index d92f6de..0000000
--- a/unity/Assets/Materials/Textures/Emojis/shocked.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: ea8eac43fda39234b8b3e86a903abfb5
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Emojis/sick.png b/unity/Assets/Materials/Textures/Emojis/sick.png
deleted file mode 100644
index f100eb5..0000000
Binary files a/unity/Assets/Materials/Textures/Emojis/sick.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Emojis/sick.png.meta b/unity/Assets/Materials/Textures/Emojis/sick.png.meta
deleted file mode 100644
index 02ba634..0000000
--- a/unity/Assets/Materials/Textures/Emojis/sick.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: 7459bff9594199d4fa805edd8690f45e
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Emojis/sick2.png b/unity/Assets/Materials/Textures/Emojis/sick2.png
deleted file mode 100644
index 19130d5..0000000
Binary files a/unity/Assets/Materials/Textures/Emojis/sick2.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Emojis/sick2.png.meta b/unity/Assets/Materials/Textures/Emojis/sick2.png.meta
deleted file mode 100644
index 9da58b8..0000000
--- a/unity/Assets/Materials/Textures/Emojis/sick2.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: d9a2368c278c6244390f41b1b90d9f16
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Emojis/sick3.png b/unity/Assets/Materials/Textures/Emojis/sick3.png
deleted file mode 100644
index fa32072..0000000
Binary files a/unity/Assets/Materials/Textures/Emojis/sick3.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Emojis/sick3.png.meta b/unity/Assets/Materials/Textures/Emojis/sick3.png.meta
deleted file mode 100644
index 259c66b..0000000
--- a/unity/Assets/Materials/Textures/Emojis/sick3.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: 8a466238394200140be18244a670ec6a
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Emojis/silly.png b/unity/Assets/Materials/Textures/Emojis/silly.png
deleted file mode 100644
index 91e6ee6..0000000
Binary files a/unity/Assets/Materials/Textures/Emojis/silly.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Emojis/silly.png.meta b/unity/Assets/Materials/Textures/Emojis/silly.png.meta
deleted file mode 100644
index 9952948..0000000
--- a/unity/Assets/Materials/Textures/Emojis/silly.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: b30825b13c97bf643aee84ebd6554515
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Emojis/sillyhappy.png b/unity/Assets/Materials/Textures/Emojis/sillyhappy.png
deleted file mode 100644
index 6d4f6b2..0000000
Binary files a/unity/Assets/Materials/Textures/Emojis/sillyhappy.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Emojis/sillyhappy.png.meta b/unity/Assets/Materials/Textures/Emojis/sillyhappy.png.meta
deleted file mode 100644
index 7cff165..0000000
--- a/unity/Assets/Materials/Textures/Emojis/sillyhappy.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: 6886d504329f0714e96c9b0e05a61783
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: 1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Emojis/sillysmile.png b/unity/Assets/Materials/Textures/Emojis/sillysmile.png
deleted file mode 100644
index e435d46..0000000
Binary files a/unity/Assets/Materials/Textures/Emojis/sillysmile.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Emojis/sillysmile.png.meta b/unity/Assets/Materials/Textures/Emojis/sillysmile.png.meta
deleted file mode 100644
index be3643b..0000000
--- a/unity/Assets/Materials/Textures/Emojis/sillysmile.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: 84d869922a971f046bdf8f5346a287b4
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: 1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Emojis/sillywink.png b/unity/Assets/Materials/Textures/Emojis/sillywink.png
deleted file mode 100644
index 75c72ad..0000000
Binary files a/unity/Assets/Materials/Textures/Emojis/sillywink.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Emojis/sillywink.png.meta b/unity/Assets/Materials/Textures/Emojis/sillywink.png.meta
deleted file mode 100644
index 2500c8d..0000000
--- a/unity/Assets/Materials/Textures/Emojis/sillywink.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: c9bbbf1bdbae9624080588e1e0be2b78
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: 1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Emojis/sinister.png b/unity/Assets/Materials/Textures/Emojis/sinister.png
deleted file mode 100644
index 6fda4f8..0000000
Binary files a/unity/Assets/Materials/Textures/Emojis/sinister.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Emojis/sinister.png.meta b/unity/Assets/Materials/Textures/Emojis/sinister.png.meta
deleted file mode 100644
index 002a8ed..0000000
--- a/unity/Assets/Materials/Textures/Emojis/sinister.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: 6d52fe2e6f67dbd4c848cb2fcd19683f
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: 1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Emojis/sleep.png b/unity/Assets/Materials/Textures/Emojis/sleep.png
deleted file mode 100644
index 2c6e596..0000000
Binary files a/unity/Assets/Materials/Textures/Emojis/sleep.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Emojis/sleep.png.meta b/unity/Assets/Materials/Textures/Emojis/sleep.png.meta
deleted file mode 100644
index ed3c44f..0000000
--- a/unity/Assets/Materials/Textures/Emojis/sleep.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: 90a56fbdc69e92241ae44f6e7ae3f9f6
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: 1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Text/sharp_blue.png b/unity/Assets/Materials/Textures/Text/sharp_blue.png
deleted file mode 100644
index a3ffd73..0000000
Binary files a/unity/Assets/Materials/Textures/Text/sharp_blue.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Text/sharp_blue.png.meta b/unity/Assets/Materials/Textures/Text/sharp_blue.png.meta
deleted file mode 100644
index 14cd7fc..0000000
--- a/unity/Assets/Materials/Textures/Text/sharp_blue.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: 6e9049c4381a52441905f0b6f22c50b7
-timeCreated: 1446473434
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 8
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapMode: 0
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Text/sharp_green.png b/unity/Assets/Materials/Textures/Text/sharp_green.png
deleted file mode 100644
index 78cd7b9..0000000
Binary files a/unity/Assets/Materials/Textures/Text/sharp_green.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Text/sharp_green.png.meta b/unity/Assets/Materials/Textures/Text/sharp_green.png.meta
deleted file mode 100644
index f545060..0000000
--- a/unity/Assets/Materials/Textures/Text/sharp_green.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: b7cf90a528b15844b89589ffc27e113d
-timeCreated: 1446473435
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 8
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapMode: -1
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Text/sharp_red.png b/unity/Assets/Materials/Textures/Text/sharp_red.png
deleted file mode 100644
index b95b999..0000000
Binary files a/unity/Assets/Materials/Textures/Text/sharp_red.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Text/sharp_red.png.meta b/unity/Assets/Materials/Textures/Text/sharp_red.png.meta
deleted file mode 100644
index d05cf8e..0000000
--- a/unity/Assets/Materials/Textures/Text/sharp_red.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: 52dc7fc8504ffa4478509abbf225397b
-timeCreated: 1446473433
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 8
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapMode: -1
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Text/sharp_white.png b/unity/Assets/Materials/Textures/Text/sharp_white.png
deleted file mode 100644
index 7109cf7..0000000
Binary files a/unity/Assets/Materials/Textures/Text/sharp_white.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Text/sharp_white.png.meta b/unity/Assets/Materials/Textures/Text/sharp_white.png.meta
deleted file mode 100644
index f06c993..0000000
--- a/unity/Assets/Materials/Textures/Text/sharp_white.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: 365b61a3eb5291e49913e6a3fa1e998f
-timeCreated: 1553006534
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 7
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapMode: -1
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Text/sharp_yellow.png b/unity/Assets/Materials/Textures/Text/sharp_yellow.png
deleted file mode 100644
index 5c1d6d9..0000000
Binary files a/unity/Assets/Materials/Textures/Text/sharp_yellow.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Text/sharp_yellow.png.meta b/unity/Assets/Materials/Textures/Text/sharp_yellow.png.meta
deleted file mode 100644
index c9dcd0c..0000000
--- a/unity/Assets/Materials/Textures/Text/sharp_yellow.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: cba5f2c9bebcb774c892f091de39e67c
-timeCreated: 1446473435
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 8
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapMode: -1
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/Text/smack.png b/unity/Assets/Materials/Textures/Text/smack.png
deleted file mode 100644
index 5142169..0000000
Binary files a/unity/Assets/Materials/Textures/Text/smack.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/Text/smack.png.meta b/unity/Assets/Materials/Textures/Text/smack.png.meta
deleted file mode 100644
index 61f830e..0000000
--- a/unity/Assets/Materials/Textures/Text/smack.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: 2e75d274f07452744b768f19594ad72f
-timeCreated: 1446473433
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 8
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapMode: -1
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/shield_magic.png b/unity/Assets/Materials/Textures/shield_magic.png
deleted file mode 100644
index 575bc4b..0000000
Binary files a/unity/Assets/Materials/Textures/shield_magic.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/shield_magic.png.meta b/unity/Assets/Materials/Textures/shield_magic.png.meta
deleted file mode 100644
index 403de16..0000000
--- a/unity/Assets/Materials/Textures/shield_magic.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: cf85581cb07626b46bceb11ed2b4349e
-timeCreated: 1454968809
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 7
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapMode: -1
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/skull2.png b/unity/Assets/Materials/Textures/skull2.png
deleted file mode 100644
index d12e7b2..0000000
Binary files a/unity/Assets/Materials/Textures/skull2.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/skull2.png.meta b/unity/Assets/Materials/Textures/skull2.png.meta
deleted file mode 100644
index f89bc42..0000000
--- a/unity/Assets/Materials/Textures/skull2.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: bd1c06c9454b93249b1bf03e39dd3587
-timeCreated: 1529164709
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 7
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapMode: -1
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/skull3.png b/unity/Assets/Materials/Textures/skull3.png
deleted file mode 100644
index 644a8ea..0000000
Binary files a/unity/Assets/Materials/Textures/skull3.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/skull3.png.meta b/unity/Assets/Materials/Textures/skull3.png.meta
deleted file mode 100644
index cfd1adc..0000000
--- a/unity/Assets/Materials/Textures/skull3.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: ebd9ac46f0a6811498a4195ac10fcfba
-timeCreated: 1529164709
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 7
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapMode: -1
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/skull4.png b/unity/Assets/Materials/Textures/skull4.png
deleted file mode 100644
index 658ae0b..0000000
Binary files a/unity/Assets/Materials/Textures/skull4.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/skull4.png.meta b/unity/Assets/Materials/Textures/skull4.png.meta
deleted file mode 100644
index 6f79b00..0000000
--- a/unity/Assets/Materials/Textures/skull4.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: c550bb0cbd3237e4a88b543a96518cce
-timeCreated: 1529164709
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 7
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapMode: -1
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/skull5.png b/unity/Assets/Materials/Textures/skull5.png
deleted file mode 100644
index b1256fa..0000000
Binary files a/unity/Assets/Materials/Textures/skull5.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/skull5.png.meta b/unity/Assets/Materials/Textures/skull5.png.meta
deleted file mode 100644
index 3306062..0000000
--- a/unity/Assets/Materials/Textures/skull5.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: 95ec1a446ccdf444f87596eaf078fb9b
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: 1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/skull_evil.png b/unity/Assets/Materials/Textures/skull_evil.png
deleted file mode 100644
index 88c26d4..0000000
Binary files a/unity/Assets/Materials/Textures/skull_evil.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/skull_evil.png.meta b/unity/Assets/Materials/Textures/skull_evil.png.meta
deleted file mode 100644
index 8f17a97..0000000
--- a/unity/Assets/Materials/Textures/skull_evil.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: 8b30ec1b990cb3b4f961fd47cd31d653
-timeCreated: 1529437043
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 7
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapMode: -1
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/skull_love.png b/unity/Assets/Materials/Textures/skull_love.png
deleted file mode 100644
index 1e137c4..0000000
Binary files a/unity/Assets/Materials/Textures/skull_love.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/skull_love.png.meta b/unity/Assets/Materials/Textures/skull_love.png.meta
deleted file mode 100644
index 8583b53..0000000
--- a/unity/Assets/Materials/Textures/skull_love.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: 529f928ce594e144ba6b086b892cfd98
-timeCreated: 1529166212
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 7
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapMode: -1
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/slash.png b/unity/Assets/Materials/Textures/slash.png
deleted file mode 100644
index da617a6..0000000
Binary files a/unity/Assets/Materials/Textures/slash.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/slash01.png b/unity/Assets/Materials/Textures/slash01.png
deleted file mode 100644
index 8b4991a..0000000
Binary files a/unity/Assets/Materials/Textures/slash01.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/slash01.png.meta b/unity/Assets/Materials/Textures/slash01.png.meta
deleted file mode 100644
index 60568ae..0000000
--- a/unity/Assets/Materials/Textures/slash01.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: d478fb64565f90c4498c4f5a68148fac
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: 1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/slash02.png b/unity/Assets/Materials/Textures/slash02.png
deleted file mode 100644
index 35f4daa..0000000
Binary files a/unity/Assets/Materials/Textures/slash02.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/slash02.png.meta b/unity/Assets/Materials/Textures/slash02.png.meta
deleted file mode 100644
index 1d14a6d..0000000
--- a/unity/Assets/Materials/Textures/slash02.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: 2b5fb67be84c87243835738b6d3828c1
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: 1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/slash03.png b/unity/Assets/Materials/Textures/slash03.png
deleted file mode 100644
index f2ae5e7..0000000
Binary files a/unity/Assets/Materials/Textures/slash03.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/slash03.png.meta b/unity/Assets/Materials/Textures/slash03.png.meta
deleted file mode 100644
index 7f8324c..0000000
--- a/unity/Assets/Materials/Textures/slash03.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: 0db0d2c7ee689544ab71a3a24818a71c
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: 1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/slash_circle01.png b/unity/Assets/Materials/Textures/slash_circle01.png
deleted file mode 100644
index 956c872..0000000
Binary files a/unity/Assets/Materials/Textures/slash_circle01.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/slash_circle01.png.meta b/unity/Assets/Materials/Textures/slash_circle01.png.meta
deleted file mode 100644
index 494161d..0000000
--- a/unity/Assets/Materials/Textures/slash_circle01.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: 1e1561d4b6abcb3439826647480d5a2a
-timeCreated: 1446058546
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 8
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: 1
- mipBias: -1
- wrapMode: -1
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/slash_circle01_soft.png b/unity/Assets/Materials/Textures/slash_circle01_soft.png
deleted file mode 100644
index 0b68b3e..0000000
Binary files a/unity/Assets/Materials/Textures/slash_circle01_soft.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/slash_circle01_soft.png.meta b/unity/Assets/Materials/Textures/slash_circle01_soft.png.meta
deleted file mode 100644
index bba94f7..0000000
--- a/unity/Assets/Materials/Textures/slash_circle01_soft.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: 71fbd3c088c69ba41aa0cf637312af49
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: 1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/slash_circle02.png b/unity/Assets/Materials/Textures/slash_circle02.png
deleted file mode 100644
index 04bbee7..0000000
Binary files a/unity/Assets/Materials/Textures/slash_circle02.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/slash_circle02.png.meta b/unity/Assets/Materials/Textures/slash_circle02.png.meta
deleted file mode 100644
index 473c570..0000000
--- a/unity/Assets/Materials/Textures/slash_circle02.png.meta
+++ /dev/null
@@ -1,116 +0,0 @@
-fileFormatVersion: 2
-guid: 509425df8368aeb49ac69d0a04553f23
-TextureImporter:
- fileIDToRecycleName: {}
- externalObjects: {}
- serializedVersion: 4
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- sRGBTexture: 1
- linearTexture: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapsPreserveCoverage: 0
- alphaTestReferenceValue: 0.5
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 6
- cubemapConvolution: 0
- seamlessCubemap: 0
- textureFormat: 1
- maxTextureSize: 2048
- textureSettings:
- serializedVersion: 2
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapU: -1
- wrapV: -1
- wrapW: -1
- nPOTScale: 1
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spritePixelsToUnits: 100
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spriteGenerateFallbackPhysicsShape: 1
- alphaUsage: 1
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 0
- textureShape: 1
- maxTextureSizeSet: 0
- compressionQualitySet: 0
- textureFormatSet: 0
- platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: WebGL
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- physicsShape: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/snowflake.png b/unity/Assets/Materials/Textures/snowflake.png
deleted file mode 100644
index 782db29..0000000
Binary files a/unity/Assets/Materials/Textures/snowflake.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/snowflake.png.meta b/unity/Assets/Materials/Textures/snowflake.png.meta
deleted file mode 100644
index ba146c7..0000000
--- a/unity/Assets/Materials/Textures/snowflake.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: 7a5dd798dffc8604fbac6d07059eadd5
-timeCreated: 1520710043
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 7
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapMode: -1
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/sparkle.png b/unity/Assets/Materials/Textures/sparkle.png
deleted file mode 100644
index 2d6013d..0000000
Binary files a/unity/Assets/Materials/Textures/sparkle.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/sparkle.png.meta b/unity/Assets/Materials/Textures/sparkle.png.meta
deleted file mode 100644
index 50aa088..0000000
--- a/unity/Assets/Materials/Textures/sparkle.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: 42c6cbafef4b45440b6e298646aa1ec5
-timeCreated: 1446213826
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 8
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapMode: -1
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Materials/Textures/sparkle2.png b/unity/Assets/Materials/Textures/sparkle2.png
deleted file mode 100644
index 863be2f..0000000
Binary files a/unity/Assets/Materials/Textures/sparkle2.png and /dev/null differ
diff --git a/unity/Assets/Materials/Textures/sparkle2.png.meta b/unity/Assets/Materials/Textures/sparkle2.png.meta
deleted file mode 100644
index 5907aba..0000000
--- a/unity/Assets/Materials/Textures/sparkle2.png.meta
+++ /dev/null
@@ -1,57 +0,0 @@
-fileFormatVersion: 2
-guid: 81c2794b522bc6a4fa81c3ad4900b9c6
-timeCreated: 1446213826
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 8
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: -1
- mipBias: -1
- wrapMode: -1
- nPOTScale: 1
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: -1
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs
deleted file mode 100644
index 5cb6eca..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs
+++ /dev/null
@@ -1,1247 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#define SPINE_SKELETON_MECANIM
-
- #if (UNITY_2017_4 || UNITY_2018_1_OR_NEWER )
- #define SPINE_UNITY_2018_PREVIEW_API
- #endif
-
-
-using System;
-using System.Reflection;
-using System.Collections.Generic;
-using UnityEditor;
-using UnityEngine;
-
-using CompatibilityProblemInfo = Spine.Unity.SkeletonDataCompatibility.CompatibilityProblemInfo;
-
-namespace Spine.Unity.Editor {
- using Event = UnityEngine.Event;
- using Icons = SpineEditorUtilities.Icons;
- using Animation = Spine.Animation;
-
- [CustomEditor(typeof(SkeletonDataAsset)), CanEditMultipleObjects]
- public class SkeletonDataAssetInspector : UnityEditor.Editor {
- internal static bool showAnimationStateData = true;
- internal static bool showAnimationList = true;
- internal static bool showSlotList = false;
- internal static bool showAttachments = false;
-
- SerializedProperty atlasAssets, skeletonJSON, scale, fromAnimation, toAnimation, duration, defaultMix;
- SerializedProperty skeletonDataModifiers;
- SerializedProperty blendModeMaterials;
- #if SPINE_TK2D
- SerializedProperty spriteCollection;
- #endif
-
- #if SPINE_SKELETON_MECANIM
- static bool isMecanimExpanded = false;
- SerializedProperty controller;
- #endif
-
- SkeletonDataAsset targetSkeletonDataAsset;
- SkeletonData targetSkeletonData;
-
- readonly List warnings = new List();
- CompatibilityProblemInfo compatibilityProblemInfo = null;
- readonly SkeletonInspectorPreview preview = new SkeletonInspectorPreview();
-
- GUIStyle activePlayButtonStyle, idlePlayButtonStyle;
- readonly GUIContent DefaultMixLabel = new GUIContent("Default Mix Duration", "Sets 'SkeletonDataAsset.defaultMix' in the asset and 'AnimationState.data.defaultMix' at runtime load time.");
-
- string TargetAssetGUID { get { return AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(targetSkeletonDataAsset)); } }
- string LastSkinKey { get { return TargetAssetGUID + "_lastSkin"; } }
- string LastSkinName { get { return EditorPrefs.GetString(LastSkinKey, ""); } }
-
- void OnEnable () {
- InitializeEditor();
- }
-
- void OnDestroy () {
- HandleOnDestroyPreview();
- AppDomain.CurrentDomain.DomainUnload -= OnDomainUnload;
- EditorApplication.update -= preview.HandleEditorUpdate;
- }
-
- private void OnDomainUnload (object sender, EventArgs e) {
- OnDestroy();
- }
-
- public void UpdateSkeletonData () {
- preview.Clear();
- InitializeEditor();
- if (targetSkeletonDataAsset)
- EditorUtility.SetDirty(targetSkeletonDataAsset);
- }
-
- void InitializeEditor () {
- SpineEditorUtilities.ConfirmInitialization();
- targetSkeletonDataAsset = (SkeletonDataAsset)target;
-
- bool newAtlasAssets = atlasAssets == null;
- if (newAtlasAssets) atlasAssets = serializedObject.FindProperty("atlasAssets");
- skeletonJSON = serializedObject.FindProperty("skeletonJSON");
- scale = serializedObject.FindProperty("scale");
- fromAnimation = serializedObject.FindProperty("fromAnimation");
- toAnimation = serializedObject.FindProperty("toAnimation");
- duration = serializedObject.FindProperty("duration");
- defaultMix = serializedObject.FindProperty("defaultMix");
-
- skeletonDataModifiers = serializedObject.FindProperty("skeletonDataModifiers");
- blendModeMaterials = serializedObject.FindProperty("blendModeMaterials");
-
- #if SPINE_SKELETON_MECANIM
- controller = serializedObject.FindProperty("controller");
- #endif
-
- #if SPINE_TK2D
- if (newAtlasAssets) atlasAssets.isExpanded = false;
- spriteCollection = serializedObject.FindProperty("spriteCollection");
- #else
- // Analysis disable once ConvertIfToOrExpression
- if (newAtlasAssets) atlasAssets.isExpanded = true;
- #endif
-
- // This handles the case where the managed editor assembly is unloaded before recompilation when code changes.
- AppDomain.CurrentDomain.DomainUnload -= OnDomainUnload;
- AppDomain.CurrentDomain.DomainUnload += OnDomainUnload;
-
- EditorApplication.update -= preview.HandleEditorUpdate;
- EditorApplication.update += preview.HandleEditorUpdate;
- preview.OnSkinChanged -= HandlePreviewSkinChanged;
- preview.OnSkinChanged += HandlePreviewSkinChanged;
-
- PopulateWarnings();
- if (targetSkeletonDataAsset.skeletonJSON == null) {
- targetSkeletonData = null;
- return;
- }
-
- targetSkeletonData = NoProblems() ? targetSkeletonDataAsset.GetSkeletonData(false) : null;
-
- if (targetSkeletonData != null && NoProblems()) {
- preview.Initialize(this.Repaint, targetSkeletonDataAsset, this.LastSkinName);
- }
-
- }
-
- void Clear () {
- preview.Clear();
- targetSkeletonDataAsset.Clear();
- targetSkeletonData = null;
- }
-
- override public void OnInspectorGUI () {
- // Multi-Editing
- if (serializedObject.isEditingMultipleObjects) {
- OnInspectorGUIMulti();
- return;
- }
-
- { // Lazy initialization because accessing EditorStyles values in OnEnable during a recompile causes UnityEditor to throw null exceptions. (Unity 5.3.5)
- idlePlayButtonStyle = idlePlayButtonStyle ?? new GUIStyle(EditorStyles.miniButton);
- if (activePlayButtonStyle == null) {
- activePlayButtonStyle = new GUIStyle(idlePlayButtonStyle);
- activePlayButtonStyle.normal.textColor = Color.red;
- }
- }
-
- serializedObject.Update();
-
- // Header
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(target.name + " (SkeletonDataAsset)", Icons.spine), EditorStyles.whiteLargeLabel);
- if (targetSkeletonData != null) EditorGUILayout.LabelField("(Drag and Drop to instantiate.)", EditorStyles.miniLabel);
-
- // Main Serialized Fields
- using (var changeCheck = new EditorGUI.ChangeCheckScope()) {
- using (new SpineInspectorUtility.BoxScope())
- DrawSkeletonDataFields();
-
- if (compatibilityProblemInfo != null)
- return;
-
- using (new SpineInspectorUtility.BoxScope()) {
- DrawAtlasAssetsFields();
- HandleAtlasAssetsNulls();
- }
-
- if (changeCheck.changed) {
- if (serializedObject.ApplyModifiedProperties()) {
- this.Clear();
- this.InitializeEditor();
-
- if (SpineEditorUtilities.Preferences.autoReloadSceneSkeletons)
- SpineEditorUtilities.DataReloadHandler.ReloadSceneSkeletonComponents(targetSkeletonDataAsset);
-
- return;
- }
- }
- }
-
- // Unity Quirk: Some code depends on valid preview. If preview is initialized elsewhere, this can cause contents to change between Layout and Repaint events, causing GUILayout control count errors.
- if (NoProblems())
- preview.Initialize(this.Repaint, targetSkeletonDataAsset, this.LastSkinName);
-
- if (targetSkeletonData != null) {
- GUILayout.Space(20f);
-
- using (new SpineInspectorUtility.BoxScope(false)) {
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Mix Settings", Icons.animationRoot), EditorStyles.boldLabel);
- DrawAnimationStateInfo();
- EditorGUILayout.Space();
- }
-
- EditorGUILayout.LabelField("Preview", EditorStyles.boldLabel);
- DrawAnimationList();
- if (targetSkeletonData.Animations.Count > 0) {
- const string AnimationReferenceButtonText = "Create Animation Reference Assets";
- const string AnimationReferenceTooltipText = "AnimationReferenceAsset acts as Unity asset for a reference to a Spine.Animation. This can be used in inspectors.\n\nIt serializes a reference to a SkeletonDataAsset and an animationName.\n\nAt runtime, a reference to its Spine.Animation is loaded and cached into the object to be used as needed. This skips the need to find and cache animation references in individual MonoBehaviours.";
- if (GUILayout.Button(SpineInspectorUtility.TempContent(AnimationReferenceButtonText, Icons.animationRoot, AnimationReferenceTooltipText), GUILayout.Width(250), GUILayout.Height(26))) {
- CreateAnimationReferenceAssets();
- }
- }
- EditorGUILayout.Space();
- DrawSlotList();
- EditorGUILayout.Space();
-
- DrawUnityTools();
-
- } else {
- #if !SPINE_TK2D
- // Draw Reimport Button
- using (new EditorGUI.DisabledGroupScope(skeletonJSON.objectReferenceValue == null)) {
- if (GUILayout.Button(SpineInspectorUtility.TempContent("Attempt Reimport", Icons.warning)))
- DoReimport();
- }
- #else
- EditorGUILayout.HelpBox("Couldn't load SkeletonData.", MessageType.Error);
- #endif
-
- DrawWarningList();
- }
-
- if (!Application.isPlaying)
- serializedObject.ApplyModifiedProperties();
- }
-
- void CreateAnimationReferenceAssets () {
- const string AssetFolderName = "ReferenceAssets";
- string parentFolder = System.IO.Path.GetDirectoryName(AssetDatabase.GetAssetPath(targetSkeletonDataAsset));
- string dataPath = parentFolder + "/" + AssetFolderName;
- if (!AssetDatabase.IsValidFolder(dataPath)) {
- AssetDatabase.CreateFolder(parentFolder, AssetFolderName);
- }
-
- FieldInfo nameField = typeof(AnimationReferenceAsset).GetField("animationName", BindingFlags.NonPublic | BindingFlags.Instance);
- FieldInfo skeletonDataAssetField = typeof(AnimationReferenceAsset).GetField("skeletonDataAsset", BindingFlags.NonPublic | BindingFlags.Instance);
- foreach (var animation in targetSkeletonData.Animations) {
- string assetPath = string.Format("{0}/{1}.asset", dataPath, AssetUtility.GetPathSafeName(animation.Name));
- AnimationReferenceAsset existingAsset = AssetDatabase.LoadAssetAtPath(assetPath);
- if (existingAsset == null) {
- AnimationReferenceAsset newAsset = ScriptableObject.CreateInstance();
- skeletonDataAssetField.SetValue(newAsset, targetSkeletonDataAsset);
- nameField.SetValue(newAsset, animation.Name);
- AssetDatabase.CreateAsset(newAsset, assetPath);
- }
- }
-
- var folderObject = AssetDatabase.LoadAssetAtPath(dataPath, typeof(UnityEngine.Object));
- if (folderObject != null) {
- Selection.activeObject = folderObject;
- EditorGUIUtility.PingObject(folderObject);
- }
- }
-
- void OnInspectorGUIMulti () {
-
- // Skeleton data file field.
- using (new SpineInspectorUtility.BoxScope()) {
- EditorGUILayout.LabelField("SkeletonData", EditorStyles.boldLabel);
- EditorGUILayout.PropertyField(skeletonJSON, SpineInspectorUtility.TempContent(skeletonJSON.displayName, Icons.spine));
- EditorGUILayout.DelayedFloatField(scale); //EditorGUILayout.PropertyField(scale);
- EditorGUILayout.Space();
- EditorGUILayout.PropertyField(skeletonDataModifiers, true);
-
- DrawBlendModeMaterialProperties();
- }
-
- // Texture source field.
- using (new SpineInspectorUtility.BoxScope()) {
- EditorGUILayout.LabelField("Atlas", EditorStyles.boldLabel);
- #if !SPINE_TK2D
- EditorGUILayout.PropertyField(atlasAssets, true);
- #else
- using (new EditorGUI.DisabledGroupScope(spriteCollection.objectReferenceValue != null)) {
- EditorGUILayout.PropertyField(atlasAssets, true);
- }
- EditorGUILayout.LabelField("spine-tk2d", EditorStyles.boldLabel);
- EditorGUILayout.PropertyField(spriteCollection, true);
- #endif
- }
-
- // Mix settings.
- using (new SpineInspectorUtility.BoxScope()) {
- EditorGUILayout.LabelField("Mix Settings", EditorStyles.boldLabel);
- SpineInspectorUtility.PropertyFieldWideLabel(defaultMix, DefaultMixLabel, 160);
- EditorGUILayout.Space();
- }
-
- }
-
- void DrawBlendModeMaterialProperties () {
- if (skeletonDataModifiers.arraySize > 0) {
- EditorGUILayout.BeginHorizontal(GUILayout.Height(EditorGUIUtility.singleLineHeight + 5));
- EditorGUILayout.PrefixLabel("Blend Modes");
- if (GUILayout.Button(new GUIContent("Upgrade", "Upgrade BlendModeMaterialAsset to built-in BlendModeMaterials."), EditorStyles.miniButton, GUILayout.Width(65f))) {
- foreach (SkeletonDataAsset skeletonData in targets) {
- BlendModeMaterialsUtility.UpgradeBlendModeMaterials(skeletonData);
- }
- }
- EditorGUILayout.EndHorizontal();
- }
- EditorGUI.BeginChangeCheck();
- EditorGUILayout.PropertyField(blendModeMaterials, true);
- if (EditorGUI.EndChangeCheck()) {
- serializedObject.ApplyModifiedProperties();
- foreach (SkeletonDataAsset skeletonData in targets) {
- BlendModeMaterialsUtility.UpdateBlendModeMaterials(skeletonData);
- }
- }
- }
-
- void DrawSkeletonDataFields () {
- using (new EditorGUILayout.HorizontalScope()) {
- EditorGUILayout.LabelField("SkeletonData", EditorStyles.boldLabel);
- if (targetSkeletonData != null) {
- var sd = targetSkeletonData;
- string m = string.Format("{8} - {0} {1}\nBones: {2}\nConstraints: \n {5} IK \n {6} Path \n {7} Transform\n\nSlots: {3}\nSkins: {4}\n\nAnimations: {9}",
- sd.Version, string.IsNullOrEmpty(sd.Version) ? "" : "export ", sd.Bones.Count, sd.Slots.Count, sd.Skins.Count, sd.IkConstraints.Count, sd.PathConstraints.Count, sd.TransformConstraints.Count, skeletonJSON.objectReferenceValue.name, sd.Animations.Count);
- EditorGUILayout.LabelField(GUIContent.none, new GUIContent(Icons.info, m), GUILayout.Width(30f));
- }
- }
- EditorGUILayout.PropertyField(skeletonJSON, SpineInspectorUtility.TempContent(skeletonJSON.displayName, Icons.spine));
-
- if (compatibilityProblemInfo != null) {
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(compatibilityProblemInfo.DescriptionString(), Icons.warning), GUILayout.Height(52));
- return;
- }
-
- EditorGUILayout.DelayedFloatField(scale); //EditorGUILayout.PropertyField(scale);
- EditorGUILayout.Space();
- EditorGUILayout.PropertyField(skeletonDataModifiers, true);
-
- DrawBlendModeMaterialProperties();
- }
-
- void DrawAtlasAssetsFields () {
- EditorGUILayout.LabelField("Atlas", EditorStyles.boldLabel);
- #if !SPINE_TK2D
- EditorGUILayout.PropertyField(atlasAssets, true);
- #else
- using (new EditorGUI.DisabledGroupScope(spriteCollection.objectReferenceValue != null)) {
- EditorGUILayout.PropertyField(atlasAssets, true);
- }
- EditorGUILayout.LabelField("spine-tk2d", EditorStyles.boldLabel);
- EditorGUILayout.PropertyField(spriteCollection, true);
- #endif
-
- if (atlasAssets.arraySize == 0)
- EditorGUILayout.HelpBox("AtlasAssets array is empty. Skeleton's attachments will load without being mapped to images.", MessageType.Info);
- }
-
- void HandleAtlasAssetsNulls () {
- bool hasNulls = false;
- foreach (var a in targetSkeletonDataAsset.atlasAssets) {
- if (a == null) {
- hasNulls = true;
- break;
- }
- }
- if (hasNulls) {
- if (targetSkeletonDataAsset.atlasAssets.Length == 1) {
- EditorGUILayout.HelpBox("Atlas array cannot have null entries!", MessageType.None);
- }
- else {
- EditorGUILayout.HelpBox("Atlas array should not have null entries!", MessageType.Error);
- if (SpineInspectorUtility.CenteredButton(SpineInspectorUtility.TempContent("Remove null entries"))) {
- var trimmedAtlasAssets = new List();
- foreach (var a in targetSkeletonDataAsset.atlasAssets) {
- if (a != null)
- trimmedAtlasAssets.Add(a);
- }
- targetSkeletonDataAsset.atlasAssets = trimmedAtlasAssets.ToArray();
- serializedObject.Update();
- }
- }
- }
- }
-
- void DrawAnimationStateInfo () {
- using (new SpineInspectorUtility.IndentScope())
- showAnimationStateData = EditorGUILayout.Foldout(showAnimationStateData, "Animation State Data");
-
- if (!showAnimationStateData)
- return;
-
- using (var cc = new EditorGUI.ChangeCheckScope()) {
- using (new SpineInspectorUtility.IndentScope())
- SpineInspectorUtility.PropertyFieldWideLabel(defaultMix, DefaultMixLabel, 160);
-
-
- if (fromAnimation.arraySize > 0) {
- using (new SpineInspectorUtility.IndentScope()) {
- EditorGUILayout.LabelField("Custom Mix Durations", EditorStyles.boldLabel);
- }
-
- for (int i = 0; i < fromAnimation.arraySize; i++) {
- SerializedProperty from = fromAnimation.GetArrayElementAtIndex(i);
- SerializedProperty to = toAnimation.GetArrayElementAtIndex(i);
- SerializedProperty durationProp = duration.GetArrayElementAtIndex(i);
- using (new EditorGUILayout.HorizontalScope()) {
- GUILayout.Space(16f); // Space instead of EditorGUIUtility.indentLevel. indentLevel will add the space on every field.
- EditorGUILayout.PropertyField(from, GUIContent.none);
- //EditorGUILayout.LabelField(">", EditorStyles.miniLabel, GUILayout.Width(9f));
- EditorGUILayout.PropertyField(to, GUIContent.none);
- //GUILayout.Space(5f);
- durationProp.floatValue = EditorGUILayout.FloatField(durationProp.floatValue, GUILayout.MinWidth(25f), GUILayout.MaxWidth(60f));
- if (GUILayout.Button("Delete", EditorStyles.miniButton)) {
- duration.DeleteArrayElementAtIndex(i);
- toAnimation.DeleteArrayElementAtIndex(i);
- fromAnimation.DeleteArrayElementAtIndex(i);
- }
- }
- }
- }
-
- using (new EditorGUILayout.HorizontalScope()) {
- EditorGUILayout.Space();
- if (GUILayout.Button("Add Custom Mix")) {
- duration.arraySize++;
- toAnimation.arraySize++;
- fromAnimation.arraySize++;
- }
- EditorGUILayout.Space();
- }
-
- if (cc.changed) {
- targetSkeletonDataAsset.FillStateData();
- EditorUtility.SetDirty(targetSkeletonDataAsset);
- serializedObject.ApplyModifiedProperties();
- }
- }
- }
-
- void DrawAnimationList () {
- showAnimationList = EditorGUILayout.Foldout(showAnimationList, SpineInspectorUtility.TempContent(string.Format("Animations [{0}]", targetSkeletonData.Animations.Count), Icons.animationRoot));
- if (!showAnimationList)
- return;
-
- bool isPreviewWindowOpen = preview.IsValid;
-
- if (isPreviewWindowOpen) {
- if (GUILayout.Button(SpineInspectorUtility.TempContent("Setup Pose", Icons.skeleton), GUILayout.Width(105), GUILayout.Height(18))) {
- preview.ClearAnimationSetupPose();
- preview.RefreshOnNextUpdate();
- }
- } else {
- EditorGUILayout.HelpBox("Animations can be previewed if you expand the Preview window below.", MessageType.Info);
- }
-
- EditorGUILayout.LabelField("Name", " Duration");
- //bool nonessential = targetSkeletonData.ImagesPath != null; // Currently the only way to determine if skeleton data has nonessential data. (Spine 3.6)
- //float fps = targetSkeletonData.Fps;
- //if (nonessential && fps == 0) fps = 30;
-
- var activeTrack = preview.ActiveTrack;
- foreach (Animation animation in targetSkeletonData.Animations) {
- using (new GUILayout.HorizontalScope()) {
- if (isPreviewWindowOpen) {
- bool active = activeTrack != null && activeTrack.Animation == animation;
- //bool sameAndPlaying = active && activeTrack.TimeScale > 0f;
- if (GUILayout.Button("\u25BA", active ? activePlayButtonStyle : idlePlayButtonStyle, GUILayout.Width(24))) {
- preview.PlayPauseAnimation(animation.Name, true);
- activeTrack = preview.ActiveTrack;
- }
- } else {
- GUILayout.Label("-", GUILayout.Width(24));
- }
- //string frameCountString = (fps > 0) ? ("(" + (Mathf.RoundToInt(animation.Duration * fps)) + ")").PadLeft(12, ' ') : string.Empty;
- //EditorGUILayout.LabelField(new GUIContent(animation.Name, Icons.animation), SpineInspectorUtility.TempContent(animation.Duration.ToString("f3") + "s" + frameCountString));
- string durationString = animation.Duration.ToString("f3");
- EditorGUILayout.LabelField(new GUIContent(animation.Name, Icons.animation), SpineInspectorUtility.TempContent(durationString + "s", tooltip: string.Format("{0} seconds\n{1} timelines", durationString, animation.Timelines.Count)));
- }
- }
- }
-
- void DrawSlotList () {
- showSlotList = EditorGUILayout.Foldout(showSlotList, SpineInspectorUtility.TempContent("Slots", Icons.slotRoot));
-
- if (!showSlotList) return;
- if (!preview.IsValid) return;
-
- var defaultSkin = targetSkeletonData.DefaultSkin;
- Skin skin = preview.Skeleton.Skin ?? defaultSkin;
-
- using (new SpineInspectorUtility.IndentScope()) {
-
- using (new EditorGUILayout.HorizontalScope()) {
- showAttachments = EditorGUILayout.ToggleLeft("Show Attachments", showAttachments, GUILayout.MaxWidth(150f));
- if (showAttachments) {
- if (skin != null) {
- int attachmentCount = skin.Attachments.Count;
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(string.Format("{0} ({1} attachment{2})", skin.Name, attachmentCount, SpineInspectorUtility.PluralThenS(attachmentCount)), Icons.skin));
- }
-
- }
- }
-
- var slotAttachments = new List();
- var defaultSkinAttachments = new List();
- var slotsItems = preview.Skeleton.Slots.Items;
- for (int i = preview.Skeleton.Slots.Count - 1; i >= 0; i--) {
- Slot slot = slotsItems[i];
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(slot.Data.Name, Icons.slot));
- if (showAttachments) {
- slotAttachments.Clear();
- defaultSkinAttachments.Clear();
-
- using (new SpineInspectorUtility.IndentScope()) {
- {
- skin.GetAttachments(i, slotAttachments);
- if (defaultSkin != null) {
- if (skin != defaultSkin) {
- defaultSkin.GetAttachments(i, slotAttachments);
- defaultSkin.GetAttachments(i, defaultSkinAttachments);
- }
- else {
- defaultSkin.GetAttachments(i, defaultSkinAttachments);
- }
- }
- }
-
- for (int a = 0; a < slotAttachments.Count; a++) {
- var skinEntry = slotAttachments[a];
- Attachment attachment = skinEntry.Attachment;
- string attachmentName = skinEntry.Name;
- bool attachmentIsFromSkin = !defaultSkinAttachments.Contains(skinEntry);
-
- Texture2D attachmentTypeIcon = Icons.GetAttachmentIcon(attachment);
- bool initialState = slot.Attachment == attachment;
-
- Texture2D iconToUse = attachmentIsFromSkin ? Icons.skinPlaceholder : attachmentTypeIcon;
- bool toggled = EditorGUILayout.ToggleLeft(SpineInspectorUtility.TempContent(attachmentName, iconToUse), slot.Attachment == attachment, GUILayout.MinWidth(150f));
-
- if (attachmentIsFromSkin) {
- Rect extraIconRect = GUILayoutUtility.GetLastRect();
- extraIconRect.x += extraIconRect.width - (attachmentTypeIcon.width * 2f);
- extraIconRect.width = attachmentTypeIcon.width;
- extraIconRect.height = attachmentTypeIcon.height;
- GUI.DrawTexture(extraIconRect, attachmentTypeIcon);
- }
-
- if (toggled != initialState) {
- slot.Attachment = toggled ? attachment : null;
- preview.RefreshOnNextUpdate();
- }
- }
- }
-
- }
- }
- }
-
- }
-
- void DrawUnityTools () {
- #if SPINE_SKELETON_MECANIM
- using (new SpineInspectorUtility.BoxScope()) {
- isMecanimExpanded = EditorGUILayout.Foldout(isMecanimExpanded, SpineInspectorUtility.TempContent("SkeletonMecanim", SpineInspectorUtility.UnityIcon()));
- if (isMecanimExpanded) {
- using (new SpineInspectorUtility.IndentScope()) {
- EditorGUILayout.PropertyField(controller, SpineInspectorUtility.TempContent("Controller", SpineInspectorUtility.UnityIcon()));
- if (controller.objectReferenceValue == null) {
-
- // Generate Mecanim Controller Button
- using (new GUILayout.HorizontalScope()) {
- GUILayout.Space(EditorGUIUtility.labelWidth);
- if (GUILayout.Button(SpineInspectorUtility.TempContent("Generate Mecanim Controller"), GUILayout.Height(20)))
- SkeletonBaker.GenerateMecanimAnimationClips(targetSkeletonDataAsset);
- }
- EditorGUILayout.HelpBox("SkeletonMecanim is the Mecanim alternative to SkeletonAnimation.\nIt is not required.", MessageType.Info);
-
- } else {
-
- // Update AnimationClips button.
- using (new GUILayout.HorizontalScope()) {
- GUILayout.Space(EditorGUIUtility.labelWidth);
- if (GUILayout.Button(SpineInspectorUtility.TempContent("Force Update AnimationClips"), GUILayout.Height(20)))
- SkeletonBaker.GenerateMecanimAnimationClips(targetSkeletonDataAsset);
- }
-
- }
- }
- }
- }
- #endif
- }
-
- void DrawWarningList () {
- foreach (string line in warnings)
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(line, Icons.warning));
- }
-
- void PopulateWarnings () {
- warnings.Clear();
- compatibilityProblemInfo = null;
-
- if (skeletonJSON.objectReferenceValue == null) {
- warnings.Add("Missing Skeleton JSON");
- } else {
- var fieldValue = (TextAsset)skeletonJSON.objectReferenceValue;
- string problemDescription = null;
- if (!AssetUtility.IsSpineData(fieldValue, out compatibilityProblemInfo, ref problemDescription)) {
- if (problemDescription != null)
- warnings.Add(problemDescription);
- else
- warnings.Add("Skeleton data file is not a valid Spine JSON or binary file.");
- } else {
- #if SPINE_TK2D
- bool searchForSpineAtlasAssets = true;
- bool isSpriteCollectionNull = spriteCollection.objectReferenceValue == null;
- if (!isSpriteCollectionNull) searchForSpineAtlasAssets = false;
- #else
- // Analysis disable once ConvertToConstant.Local
- bool searchForSpineAtlasAssets = true;
- #endif
-
- if (searchForSpineAtlasAssets) {
- bool detectedNullAtlasEntry = false;
- var atlasList = new List();
- var actualAtlasAssets = targetSkeletonDataAsset.atlasAssets;
-
- for (int i = 0; i < actualAtlasAssets.Length; i++) {
- if (actualAtlasAssets[i] == null) {
- detectedNullAtlasEntry = true;
- break;
- } else {
- if (actualAtlasAssets[i].MaterialCount > 0)
- atlasList.Add(actualAtlasAssets[i].GetAtlas());
- }
- }
-
- if (detectedNullAtlasEntry) {
- warnings.Add("AtlasAsset elements should not be null.");
- } else {
- List missingPaths = null;
- if (atlasAssets.arraySize > 0) {
- missingPaths = AssetUtility.GetRequiredAtlasRegions(AssetDatabase.GetAssetPath(skeletonJSON.objectReferenceValue));
- foreach (var atlas in atlasList) {
- if (atlas == null)
- continue;
- for (int i = 0; i < missingPaths.Count; i++) {
- if (atlas.FindRegion(missingPaths[i]) != null) {
- missingPaths.RemoveAt(i);
- i--;
- }
- }
- }
-
- #if SPINE_TK2D
- if (missingPaths.Count > 0)
- warnings.Add("Missing regions. SkeletonDataAsset requires tk2DSpriteCollectionData or Spine AtlasAssets.");
- #endif
- }
-
- if (missingPaths != null) {
- foreach (string missingRegion in missingPaths)
- warnings.Add(string.Format("Missing Region: '{0}'", missingRegion));
- }
-
- }
- }
-
- }
- }
- }
-
- void DoReimport () {
- AssetUtility.ImportSpineContent(new [] { AssetDatabase.GetAssetPath(skeletonJSON.objectReferenceValue) }, null, true);
- preview.Clear();
- InitializeEditor();
- EditorUtility.SetDirty(targetSkeletonDataAsset);
- }
-
- void HandlePreviewSkinChanged (string skinName) {
- EditorPrefs.SetString(LastSkinKey, skinName);
- }
-
- bool NoProblems() {
- return warnings.Count == 0 && compatibilityProblemInfo == null;
- }
-
- #region Preview Handlers
- void HandleOnDestroyPreview () {
- EditorApplication.update -= preview.HandleEditorUpdate;
- preview.OnDestroy();
- }
-
- override public bool HasPreviewGUI () {
- if (serializedObject.isEditingMultipleObjects)
- return false;
-
- for (int i = 0; i < atlasAssets.arraySize; i++) {
- var prop = atlasAssets.GetArrayElementAtIndex(i);
- if (prop.objectReferenceValue == null)
- return false;
- }
-
- return skeletonJSON.objectReferenceValue != null;
- }
-
- override public void OnInteractivePreviewGUI (Rect r, GUIStyle background) {
- if (NoProblems()) {
- preview.Initialize(this.Repaint, targetSkeletonDataAsset, this.LastSkinName);
- preview.HandleInteractivePreviewGUI(r, background);
- }
- }
-
- override public GUIContent GetPreviewTitle () { return SpineInspectorUtility.TempContent("Preview"); }
- public override void OnPreviewSettings () { preview.HandleDrawSettings(); }
- public override Texture2D RenderStaticPreview (string assetPath, UnityEngine.Object[] subAssets, int width, int height) { return preview.GetStaticPreview(width, height); }
- #endregion
- }
-
- internal class SkeletonInspectorPreview {
- Color OriginColor = new Color(0.3f, 0.3f, 0.3f, 1);
- static readonly int SliderHash = "Slider".GetHashCode();
-
- SkeletonDataAsset skeletonDataAsset;
- SkeletonData skeletonData;
-
- SkeletonAnimation skeletonAnimation;
- GameObject previewGameObject;
- internal bool requiresRefresh;
- float animationLastTime;
-
- static float CurrentTime { get { return (float)EditorApplication.timeSinceStartup; } }
-
- Action Repaint;
- public event Action OnSkinChanged;
-
- Texture previewTexture;
- PreviewRenderUtility previewRenderUtility;
- Camera PreviewUtilityCamera {
- get {
- if (previewRenderUtility == null) return null;
- #if UNITY_2017_1_OR_NEWER
- return previewRenderUtility.camera;
- #else
- return previewRenderUtility.m_Camera;
- #endif
- }
- }
-
- static Vector3 lastCameraPositionGoal;
- static float lastCameraOrthoGoal;
- float cameraOrthoGoal = 1;
- Vector3 cameraPositionGoal = new Vector3(0, 0, -10);
- double cameraAdjustEndFrame = 0;
-
- List currentAnimationEvents = new List();
- List currentAnimationEventTimes = new List();
- List currentAnimationEventTooltips = new List();
-
- public bool IsValid { get { return skeletonAnimation != null && skeletonAnimation.valid; } }
-
- public Skeleton Skeleton { get { return IsValid ? skeletonAnimation.Skeleton : null; } }
-
- public float TimeScale {
- get { return IsValid ? skeletonAnimation.timeScale : 1f; }
- set { if (IsValid) skeletonAnimation.timeScale = value; }
- }
-
- public bool IsPlayingAnimation { get {
- if (!IsValid) return false;
- var currentTrack = skeletonAnimation.AnimationState.GetCurrent(0);
- return currentTrack != null && currentTrack.TimeScale > 0;
- }
- }
-
- public TrackEntry ActiveTrack { get { return IsValid ? skeletonAnimation.AnimationState.GetCurrent(0) : null; } }
-
- public Vector3 PreviewCameraPosition {
- get { return PreviewUtilityCamera.transform.position; }
- set { PreviewUtilityCamera.transform.position = value; }
- }
-
- public void HandleDrawSettings () {
- const float SliderWidth = 150;
- const float SliderSnap = 0.25f;
- const float SliderMin = 0f;
- const float SliderMax = 2f;
-
- if (IsValid) {
- float timeScale = GUILayout.HorizontalSlider(TimeScale, SliderMin, SliderMax, GUILayout.MaxWidth(SliderWidth));
- timeScale = Mathf.RoundToInt(timeScale / SliderSnap) * SliderSnap;
- TimeScale = timeScale;
- }
- }
-
- public void HandleEditorUpdate () {
- AdjustCamera();
- if (IsPlayingAnimation) {
- RefreshOnNextUpdate();
- Repaint();
- } else if (requiresRefresh) {
- Repaint();
- }
- }
-
- public void Initialize (Action repaintCallback, SkeletonDataAsset skeletonDataAsset, string skinName = "") {
- if (skeletonDataAsset == null) return;
- if (skeletonDataAsset.GetSkeletonData(false) == null) {
- DestroyPreviewGameObject();
- return;
- }
-
- this.Repaint = repaintCallback;
- this.skeletonDataAsset = skeletonDataAsset;
- this.skeletonData = skeletonDataAsset.GetSkeletonData(false);
-
- if (skeletonData == null) {
- DestroyPreviewGameObject();
- return;
- }
-
- const int PreviewLayer = 30;
- const int PreviewCameraCullingMask = 1 << PreviewLayer;
-
- if (previewRenderUtility == null) {
- previewRenderUtility = new PreviewRenderUtility(true);
- animationLastTime = CurrentTime;
-
- {
- var c = this.PreviewUtilityCamera;
- c.orthographic = true;
- c.cullingMask = PreviewCameraCullingMask;
- c.nearClipPlane = 0.01f;
- c.farClipPlane = 1000f;
- c.orthographicSize = lastCameraOrthoGoal;
- c.transform.position = lastCameraPositionGoal;
- }
-
- DestroyPreviewGameObject();
- }
-
- if (previewGameObject == null) {
- try {
- previewGameObject = EditorInstantiation.InstantiateSkeletonAnimation(skeletonDataAsset, skinName, useObjectFactory:false).gameObject;
-
- if (previewGameObject != null) {
- previewGameObject.hideFlags = HideFlags.HideAndDontSave;
- previewGameObject.layer = PreviewLayer;
- skeletonAnimation = previewGameObject.GetComponent();
- skeletonAnimation.initialSkinName = skinName;
- skeletonAnimation.LateUpdate();
- previewGameObject.GetComponent().enabled = false;
-
- #if SPINE_UNITY_2018_PREVIEW_API
- previewRenderUtility.AddSingleGO(previewGameObject);
- #endif
- }
-
- if (this.ActiveTrack != null) cameraAdjustEndFrame = EditorApplication.timeSinceStartup + skeletonAnimation.AnimationState.GetCurrent(0).Alpha;
- AdjustCameraGoals();
- } catch {
- DestroyPreviewGameObject();
- }
-
- RefreshOnNextUpdate();
- }
- }
-
- public void HandleInteractivePreviewGUI (Rect r, GUIStyle background) {
- if (Event.current.type == EventType.Repaint) {
- if (requiresRefresh) {
- previewRenderUtility.BeginPreview(r, background);
- DoRenderPreview(true);
- previewTexture = previewRenderUtility.EndPreview();
- requiresRefresh = false;
- }
- if (previewTexture != null)
- GUI.DrawTexture(r, previewTexture, ScaleMode.StretchToFill, false);
- }
-
- DrawSkinToolbar(r);
- //DrawSetupPoseButton(r);
- DrawTimeBar(r);
- HandleMouseScroll(r);
- }
-
- public Texture2D GetStaticPreview (int width, int height) {
- var c = this.PreviewUtilityCamera;
- if (c == null)
- return null;
-
- RefreshOnNextUpdate();
- AdjustCameraGoals();
- c.orthographicSize = cameraOrthoGoal / 2;
- c.transform.position = cameraPositionGoal;
- previewRenderUtility.BeginStaticPreview(new Rect(0, 0, width, height));
- DoRenderPreview(false);
- var tex = previewRenderUtility.EndStaticPreview();
-
- return tex;
- }
-
- public void DoRenderPreview (bool drawHandles) {
- if (this.PreviewUtilityCamera.activeTexture == null || this.PreviewUtilityCamera.targetTexture == null)
- return;
-
- GameObject go = previewGameObject;
- if (requiresRefresh && go != null) {
- var renderer = go.GetComponent();
- renderer.enabled = true;
-
-
- if (!EditorApplication.isPlaying) {
- float current = CurrentTime;
- float deltaTime = (current - animationLastTime);
- skeletonAnimation.Update(deltaTime);
- animationLastTime = current;
- skeletonAnimation.LateUpdate();
- }
-
- var thisPreviewUtilityCamera = this.PreviewUtilityCamera;
-
- if (drawHandles) {
- Handles.SetCamera(thisPreviewUtilityCamera);
- Handles.color = OriginColor;
-
- // Draw Cross
- float scale = skeletonDataAsset.scale;
- float cl = 1000 * scale;
- Handles.DrawLine(new Vector3(-cl, 0), new Vector3(cl, 0));
- Handles.DrawLine(new Vector3(0, cl), new Vector3(0, -cl));
- }
-
- thisPreviewUtilityCamera.Render();
-
- if (drawHandles) {
- Handles.SetCamera(thisPreviewUtilityCamera);
- SpineHandles.DrawBoundingBoxes(skeletonAnimation.transform, skeletonAnimation.skeleton);
- if (SkeletonDataAssetInspector.showAttachments)
- SpineHandles.DrawPaths(skeletonAnimation.transform, skeletonAnimation.skeleton);
- }
-
- renderer.enabled = false;
- }
- }
-
- public void AdjustCamera () {
- if (previewRenderUtility == null)
- return;
-
- if (CurrentTime < cameraAdjustEndFrame)
- AdjustCameraGoals();
-
- lastCameraPositionGoal = cameraPositionGoal;
- lastCameraOrthoGoal = cameraOrthoGoal;
-
- var c = this.PreviewUtilityCamera;
- float orthoSet = Mathf.Lerp(c.orthographicSize, cameraOrthoGoal, 0.1f);
-
- c.orthographicSize = orthoSet;
-
- float dist = Vector3.Distance(c.transform.position, cameraPositionGoal);
- if (dist > 0f) {
- Vector3 pos = Vector3.Lerp(c.transform.position, cameraPositionGoal, 0.1f);
- pos.x = 0;
- c.transform.position = pos;
- c.transform.rotation = Quaternion.identity;
- RefreshOnNextUpdate();
- }
- }
-
- void AdjustCameraGoals () {
- if (previewGameObject == null) return;
-
- Bounds bounds = previewGameObject.GetComponent().bounds;
- cameraOrthoGoal = bounds.size.y;
- cameraPositionGoal = bounds.center + new Vector3(0, 0, -10f);
- }
-
- void HandleMouseScroll (Rect position) {
- Event current = Event.current;
- int controlID = GUIUtility.GetControlID(SliderHash, FocusType.Passive);
- switch (current.GetTypeForControl(controlID)) {
- case EventType.ScrollWheel:
- if (position.Contains(current.mousePosition)) {
- cameraOrthoGoal += current.delta.y * 0.06f;
- cameraOrthoGoal = Mathf.Max(0.01f, cameraOrthoGoal);
- GUIUtility.hotControl = controlID;
- current.Use();
- }
- break;
- }
- }
-
- public void RefreshOnNextUpdate () {
- requiresRefresh = true;
- }
-
- public void ClearAnimationSetupPose () {
- if (skeletonAnimation == null) {
- Debug.LogWarning("Animation was stopped but preview doesn't exist. It's possible that the Preview Panel is closed.");
- }
-
- skeletonAnimation.AnimationState.ClearTracks();
- skeletonAnimation.Skeleton.SetToSetupPose();
- }
-
- public void PlayPauseAnimation (string animationName, bool loop) {
- if (skeletonData == null) return;
-
- if (skeletonAnimation == null) {
- //Debug.LogWarning("Animation was stopped but preview doesn't exist. It's possible that the Preview Panel is closed.");
- return;
- }
-
- if (!skeletonAnimation.valid) return;
-
- if (string.IsNullOrEmpty(animationName)) {
- skeletonAnimation.Skeleton.SetToSetupPose();
- skeletonAnimation.AnimationState.ClearTracks();
- return;
- }
-
- var targetAnimation = skeletonData.FindAnimation(animationName);
- if (targetAnimation != null) {
- var currentTrack = this.ActiveTrack;
- bool isEmpty = (currentTrack == null);
- bool isNewAnimation = isEmpty || currentTrack.Animation != targetAnimation;
-
- var skeleton = skeletonAnimation.Skeleton;
- var animationState = skeletonAnimation.AnimationState;
-
- if (isEmpty) {
- skeleton.SetToSetupPose();
- animationState.SetAnimation(0, targetAnimation, loop);
- } else {
- bool sameAnimation = (currentTrack.Animation == targetAnimation);
- if (sameAnimation) {
- currentTrack.TimeScale = (currentTrack.TimeScale == 0) ? 1f : 0f; // pause/play
- } else {
- currentTrack.TimeScale = 1f;
- animationState.SetAnimation(0, targetAnimation, loop);
- }
- }
-
- if (isNewAnimation) {
- currentAnimationEvents.Clear();
- currentAnimationEventTimes.Clear();
- foreach (Timeline timeline in targetAnimation.Timelines) {
- var eventTimeline = timeline as EventTimeline;
- if (eventTimeline != null) {
- for (int i = 0; i < eventTimeline.Events.Length; i++) {
- currentAnimationEvents.Add(eventTimeline.Events[i]);
- currentAnimationEventTimes.Add(eventTimeline.Frames[i]);
- }
- }
- }
- }
- } else {
- Debug.LogFormat("The Spine.Animation named '{0}' was not found for this Skeleton.", animationName);
- }
-
- }
-
- void DrawSkinToolbar (Rect r) {
- if (!this.IsValid) return;
-
- var skeleton = this.Skeleton;
- string label = (skeleton.Skin != null) ? skeleton.Skin.Name : "default";
-
- Rect popRect = new Rect(r);
- popRect.y += 32;
- popRect.x += 4;
- popRect.height = 24;
- popRect.width = 40;
- EditorGUI.DropShadowLabel(popRect, SpineInspectorUtility.TempContent("Skin"));
-
- popRect.y += 11;
- popRect.width = 150;
- popRect.x += 44;
-
- if (GUI.Button(popRect, SpineInspectorUtility.TempContent(label, Icons.skin), EditorStyles.popup)) {
- DrawSkinDropdown();
- }
- }
-
- void DrawSetupPoseButton (Rect r) {
- if (!this.IsValid)
- return;
-
- var skeleton = this.Skeleton;
-
- Rect popRect = new Rect(r);
- popRect.y += 64;
- popRect.x += 4;
- popRect.height = 24;
- popRect.width = 40;
-
- //popRect.y += 11;
- popRect.width = 150;
- //popRect.x += 44;
-
- if (GUI.Button(popRect, SpineInspectorUtility.TempContent("Reset to SetupPose", Icons.skeleton))) {
- ClearAnimationSetupPose();
- RefreshOnNextUpdate();
- }
- }
-
- void DrawSkinDropdown () {
- var menu = new GenericMenu();
- foreach (Skin s in skeletonData.Skins)
- menu.AddItem(new GUIContent(s.Name, Icons.skin), skeletonAnimation.skeleton.Skin == s, HandleSkinDropdownSelection, s);
-
- menu.ShowAsContext();
- }
-
- void HandleSkinDropdownSelection (object o) {
- Skin skin = (Skin)o;
- skeletonAnimation.initialSkinName = skin.Name;
- skeletonAnimation.Initialize(true);
- RefreshOnNextUpdate();
- if (OnSkinChanged != null) OnSkinChanged(skin.Name);
- }
-
- void DrawTimeBar (Rect r) {
- if (skeletonAnimation == null)
- return;
-
- Rect barRect = new Rect(r);
- barRect.height = 32;
- barRect.x += 4;
- barRect.width -= 4;
-
- GUI.Box(barRect, "");
-
- Rect lineRect = new Rect(barRect);
- float lineRectWidth = lineRect.width;
- TrackEntry t = skeletonAnimation.AnimationState.GetCurrent(0);
-
- if (t != null && Icons.userEvent != null) { // when changing to play mode, Icons.userEvent will not be reset
- int loopCount = (int)(t.TrackTime / t.TrackEnd);
- float currentTime = t.TrackTime - (t.TrackEnd * loopCount);
- float normalizedTime = currentTime / t.Animation.Duration;
- float wrappedTime = normalizedTime % 1f;
-
- lineRect.x = barRect.x + (lineRectWidth * wrappedTime) - 0.5f;
- lineRect.width = 2;
-
- GUI.color = Color.red;
- GUI.DrawTexture(lineRect, EditorGUIUtility.whiteTexture);
- GUI.color = Color.white;
-
- currentAnimationEventTooltips = currentAnimationEventTooltips ?? new List();
- currentAnimationEventTooltips.Clear();
- for (int i = 0; i < currentAnimationEvents.Count; i++) {
- float eventTime = currentAnimationEventTimes[i];
- var userEventIcon = Icons.userEvent;
- float iconX = Mathf.Max(((eventTime / t.Animation.Duration) * lineRectWidth) - (userEventIcon.width / 2), barRect.x);
- float iconY = barRect.y + userEventIcon.height;
- var evRect = new Rect(barRect) {
- x = iconX,
- y = iconY,
- width = userEventIcon.width,
- height = userEventIcon.height
- };
- GUI.DrawTexture(evRect, userEventIcon);
- Event ev = Event.current;
- if (ev.type == EventType.Repaint) {
- if (evRect.Contains(ev.mousePosition)) {
- string eventName = currentAnimationEvents[i].Data.Name;
- Rect tooltipRect = new Rect(evRect) {
- width = EditorStyles.helpBox.CalcSize(new GUIContent(eventName)).x
- };
- tooltipRect.y -= 4;
- tooltipRect.y -= tooltipRect.height * currentAnimationEventTooltips.Count; // Avoid several overlapping tooltips.
- tooltipRect.x += 4;
-
- // Handle tooltip overflowing to the right.
- float rightEdgeOverflow = (tooltipRect.x + tooltipRect.width) - (barRect.x + barRect.width);
- if (rightEdgeOverflow > 0)
- tooltipRect.x -= rightEdgeOverflow;
-
- currentAnimationEventTooltips.Add(new SpineEventTooltip { rect = tooltipRect, text = eventName });
- }
- }
- }
-
- // Draw tooltips.
- for (int i = 0; i < currentAnimationEventTooltips.Count; i++) {
- GUI.Label(currentAnimationEventTooltips[i].rect, currentAnimationEventTooltips[i].text, EditorStyles.helpBox);
- GUI.tooltip = currentAnimationEventTooltips[i].text;
- }
- }
- }
-
- public void OnDestroy () {
- DisposePreviewRenderUtility();
- DestroyPreviewGameObject();
- }
-
- public void Clear () {
- DisposePreviewRenderUtility();
- DestroyPreviewGameObject();
- }
-
- void DisposePreviewRenderUtility () {
- if (previewRenderUtility != null) {
- previewRenderUtility.Cleanup();
- previewRenderUtility = null;
- }
- }
-
- void DestroyPreviewGameObject () {
- if (previewGameObject != null) {
- GameObject.DestroyImmediate(previewGameObject);
- previewGameObject = null;
- }
- }
-
- internal struct SpineEventTooltip {
- public Rect rect;
- public string text;
- }
- }
-
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs.meta
deleted file mode 100644
index fba64b6..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 01cbef8f24d105f4bafa9668d669e040
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonAnimationInspector.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonAnimationInspector.cs
deleted file mode 100644
index c332324..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonAnimationInspector.cs
+++ /dev/null
@@ -1,139 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using UnityEditor;
-using UnityEngine;
-using Spine;
-
-namespace Spine.Unity.Editor {
-
- [CustomEditor(typeof(SkeletonAnimation))]
- [CanEditMultipleObjects]
- public class SkeletonAnimationInspector : SkeletonRendererInspector {
- protected SerializedProperty animationName, loop, timeScale, autoReset;
- protected bool wasAnimationParameterChanged = false;
- protected bool requireRepaint;
- readonly GUIContent LoopLabel = new GUIContent("Loop", "Whether or not .AnimationName should loop. This only applies to the initial animation specified in the inspector, or any subsequent Animations played through .AnimationName. Animations set through state.SetAnimation are unaffected.");
- readonly GUIContent TimeScaleLabel = new GUIContent("Time Scale", "The rate at which animations progress over time. 1 means normal speed. 0.5 means 50% speed.");
-
- protected override void OnEnable () {
- base.OnEnable();
- animationName = serializedObject.FindProperty("_animationName");
- loop = serializedObject.FindProperty("loop");
- timeScale = serializedObject.FindProperty("timeScale");
- }
-
- protected override void DrawInspectorGUI (bool multi) {
- base.DrawInspectorGUI(multi);
- if (!TargetIsValid) return;
- bool sameData = SpineInspectorUtility.TargetsUseSameData(serializedObject);
-
- foreach (var o in targets)
- TrySetAnimation(o as SkeletonAnimation);
-
- EditorGUILayout.Space();
- if (!sameData) {
- EditorGUILayout.DelayedTextField(animationName);
- } else {
- EditorGUI.BeginChangeCheck();
- EditorGUILayout.PropertyField(animationName);
- wasAnimationParameterChanged |= EditorGUI.EndChangeCheck(); // Value used in the next update.
- }
-
- EditorGUI.BeginChangeCheck();
- EditorGUILayout.PropertyField(loop, LoopLabel);
- wasAnimationParameterChanged |= EditorGUI.EndChangeCheck(); // Value used in the next update.
- EditorGUILayout.PropertyField(timeScale, TimeScaleLabel);
- foreach (var o in targets) {
- var component = o as SkeletonAnimation;
- component.timeScale = Mathf.Max(component.timeScale, 0);
- }
-
- EditorGUILayout.Space();
- SkeletonRootMotionParameter();
-
- serializedObject.ApplyModifiedProperties();
-
- if (!isInspectingPrefab) {
- if (requireRepaint) {
- UnityEditorInternal.InternalEditorUtility.RepaintAllViews();
- requireRepaint = false;
- }
- }
- }
-
- protected void TrySetAnimation (SkeletonAnimation skeletonAnimation) {
- if (skeletonAnimation == null) return;
- if (!skeletonAnimation.valid || skeletonAnimation.AnimationState == null)
- return;
-
- TrackEntry current = skeletonAnimation.AnimationState.GetCurrent(0);
- if (!isInspectingPrefab) {
- string activeAnimation = (current != null) ? current.Animation.Name : "";
- bool activeLoop = (current != null) ? current.Loop : false;
- bool animationParameterChanged = this.wasAnimationParameterChanged &&
- ((activeAnimation != animationName.stringValue) || (activeLoop != loop.boolValue));
- if (animationParameterChanged) {
- this.wasAnimationParameterChanged = false;
- var skeleton = skeletonAnimation.Skeleton;
- var state = skeletonAnimation.AnimationState;
-
- if (!Application.isPlaying) {
- if (state != null) state.ClearTrack(0);
- skeleton.SetToSetupPose();
- }
-
- Spine.Animation animationToUse = skeleton.Data.FindAnimation(animationName.stringValue);
-
- if (!Application.isPlaying) {
- if (animationToUse != null) {
- skeletonAnimation.AnimationState.SetAnimation(0, animationToUse, loop.boolValue);
- }
- skeletonAnimation.Update(0);
- skeletonAnimation.LateUpdate();
- requireRepaint = true;
- } else {
- if (animationToUse != null)
- state.SetAnimation(0, animationToUse, loop.boolValue);
- else
- state.ClearTrack(0);
- }
- }
-
- // Reflect animationName serialized property in the inspector even if SetAnimation API was used.
- if (Application.isPlaying) {
- if (current != null && current.Animation != null) {
- if (skeletonAnimation.AnimationName != animationName.stringValue)
- animationName.stringValue = current.Animation.Name;
- }
- }
- }
- }
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonAnimationInspector.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonAnimationInspector.cs.meta
deleted file mode 100644
index 1ca7941..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonAnimationInspector.cs.meta
+++ /dev/null
@@ -1,10 +0,0 @@
-fileFormatVersion: 2
-guid: 39fbfef61034ca045b5aa80088e1e8a4
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicCustomMaterialsInspector.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicCustomMaterialsInspector.cs
deleted file mode 100644
index f9a1c2d..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicCustomMaterialsInspector.cs
+++ /dev/null
@@ -1,159 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using UnityEditor;
-using UnityEngine;
-using Spine.Unity.Examples;
-
-namespace Spine.Unity.Editor {
-
- // This script is not intended for use with code. See spine-unity documentation page for additional information.
- [CustomEditor(typeof(SkeletonGraphicCustomMaterials))]
- public class SkeletonGraphicCustomMaterialsInspector : UnityEditor.Editor {
- List componentCustomMaterialOverrides, _customMaterialOverridesPrev;
- List componentCustomTextureOverrides, _customTextureOverridesPrev;
- SkeletonGraphicCustomMaterials component;
-
- const BindingFlags PrivateInstance = BindingFlags.Instance | BindingFlags.NonPublic;
- MethodInfo RemoveCustomMaterialOverrides, RemoveCustomTextureOverrides, SetCustomMaterialOverrides, SetCustomTextureOverrides;
-
- #region SkeletonGraphic context menu
- [MenuItem("CONTEXT/SkeletonGraphic/Add Basic Serialized Custom Materials")]
- static void AddSkeletonGraphicCustomMaterials (MenuCommand menuCommand) {
- var skeletonGraphic = (SkeletonGraphic)menuCommand.context;
- var newComponent = skeletonGraphic.gameObject.AddComponent();
- Undo.RegisterCreatedObjectUndo(newComponent, "Add Basic Serialized Custom Materials");
- }
-
- [MenuItem("CONTEXT/SkeletonGraphic/Add Basic Serialized Custom Materials", true)]
- static bool AddSkeletonGraphicCustomMaterials_Validate (MenuCommand menuCommand) {
- var skeletonGraphic = (SkeletonGraphic)menuCommand.context;
- return (skeletonGraphic.GetComponent() == null);
- }
- #endregion
-
- void OnEnable () {
- Type cm = typeof(SkeletonGraphicCustomMaterials);
- RemoveCustomMaterialOverrides = cm.GetMethod("RemoveCustomMaterialOverrides", PrivateInstance);
- RemoveCustomTextureOverrides = cm.GetMethod("RemoveCustomTextureOverrides", PrivateInstance);
- SetCustomMaterialOverrides = cm.GetMethod("SetCustomMaterialOverrides", PrivateInstance);
- SetCustomTextureOverrides = cm.GetMethod("SetCustomTextureOverrides", PrivateInstance);
- }
-
- public override void OnInspectorGUI () {
- component = (SkeletonGraphicCustomMaterials)target;
- var skeletonGraphic = component.skeletonGraphic;
-
- // Draw the default inspector
- DrawDefaultInspector();
-
- if (serializedObject.isEditingMultipleObjects)
- return;
-
- if (componentCustomMaterialOverrides == null) {
- Type cm = typeof(SkeletonGraphicCustomMaterials);
- componentCustomMaterialOverrides = cm.GetField("customMaterialOverrides", PrivateInstance).GetValue(component) as List;
- componentCustomTextureOverrides = cm.GetField("customTextureOverrides", PrivateInstance).GetValue(component) as List;
- if (componentCustomMaterialOverrides == null) {
- Debug.Log("Reflection failed.");
- return;
- }
- }
-
- // Fill with current values at start
- if (_customMaterialOverridesPrev == null || _customTextureOverridesPrev == null) {
- _customMaterialOverridesPrev = CopyList(componentCustomMaterialOverrides);
- _customTextureOverridesPrev = CopyList(componentCustomTextureOverrides);
- }
-
- // Compare new values with saved. If change is detected:
- // store new values, restore old values, remove overrides, restore new values, restore overrides.
-
- // 1. Store new values
- var customMaterialOverridesNew = CopyList(componentCustomMaterialOverrides);
- var customTextureOverridesNew = CopyList(componentCustomTextureOverrides);
-
- // Detect changes
- if (!_customMaterialOverridesPrev.SequenceEqual(customMaterialOverridesNew) ||
- !_customTextureOverridesPrev.SequenceEqual(customTextureOverridesNew)) {
- // 2. Restore old values
- componentCustomMaterialOverrides.Clear();
- componentCustomTextureOverrides.Clear();
- componentCustomMaterialOverrides.AddRange(_customMaterialOverridesPrev);
- componentCustomTextureOverrides.AddRange(_customTextureOverridesPrev);
-
- // 3. Remove overrides
- RemoveCustomMaterials();
-
- // 4. Restore new values
- componentCustomMaterialOverrides.Clear();
- componentCustomTextureOverrides.Clear();
- componentCustomMaterialOverrides.AddRange(customMaterialOverridesNew);
- componentCustomTextureOverrides.AddRange(customTextureOverridesNew);
-
- // 5. Restore overrides
- SetCustomMaterials();
-
- if (skeletonGraphic != null)
- skeletonGraphic.LateUpdate();
- }
-
- _customMaterialOverridesPrev = CopyList(componentCustomMaterialOverrides);
- _customTextureOverridesPrev = CopyList(componentCustomTextureOverrides);
-
- if (SpineInspectorUtility.LargeCenteredButton(SpineInspectorUtility.TempContent("Clear and Reapply Changes", tooltip: "Removes all non-serialized overrides in the SkeletonGraphic and reapplies the overrides on this component."))) {
- if (skeletonGraphic != null) {
- skeletonGraphic.CustomMaterialOverride.Clear();
- skeletonGraphic.CustomTextureOverride.Clear();
- RemoveCustomMaterials();
- SetCustomMaterials();
- skeletonGraphic.LateUpdate();
- }
- }
- }
-
- void RemoveCustomMaterials () {
- RemoveCustomMaterialOverrides.Invoke(component, null);
- RemoveCustomTextureOverrides.Invoke(component, null);
- }
-
- void SetCustomMaterials () {
- SetCustomMaterialOverrides.Invoke(component, null);
- SetCustomTextureOverrides.Invoke(component, null);
- }
-
- static List CopyList (List list) {
- return list.GetRange(0, list.Count);
- }
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicCustomMaterialsInspector.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicCustomMaterialsInspector.cs.meta
deleted file mode 100644
index 4a5d351..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicCustomMaterialsInspector.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 349bf125947e3aa4bb78690fec69ea17
-timeCreated: 1588789940
-licenseType: Pro
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs
deleted file mode 100644
index e1406ca..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs
+++ /dev/null
@@ -1,436 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER
-#define NEW_PREFAB_SYSTEM
-#endif
-
-using UnityEngine;
-using UnityEditor;
-
-namespace Spine.Unity.Editor {
- using Icons = SpineEditorUtilities.Icons;
-
- [CustomEditor(typeof(SkeletonGraphic))]
- [CanEditMultipleObjects]
- public class SkeletonGraphicInspector : UnityEditor.Editor {
-
- const string SeparatorSlotNamesFieldName = "separatorSlotNames";
- const string ReloadButtonString = "Reload";
- protected GUIContent SkeletonDataAssetLabel;
- static GUILayoutOption reloadButtonWidth;
- static GUILayoutOption ReloadButtonWidth { get { return reloadButtonWidth = reloadButtonWidth ?? GUILayout.Width(GUI.skin.label.CalcSize(new GUIContent(ReloadButtonString)).x + 20); } }
- static GUIStyle ReloadButtonStyle { get { return EditorStyles.miniButton; } }
-
- SerializedProperty material, color;
- SerializedProperty skeletonDataAsset, initialSkinName;
- SerializedProperty startingAnimation, startingLoop, timeScale, freeze, updateWhenInvisible, unscaledTime, tintBlack;
- SerializedProperty initialFlipX, initialFlipY;
- SerializedProperty meshGeneratorSettings;
- SerializedProperty allowMultipleCanvasRenderers, separatorSlotNames, enableSeparatorSlots, updateSeparatorPartLocation;
- SerializedProperty raycastTarget;
-
- SkeletonGraphic thisSkeletonGraphic;
- protected bool isInspectingPrefab;
- protected bool slotsReapplyRequired = false;
- protected bool forceReloadQueued = false;
-
- protected bool TargetIsValid {
- get {
- if (serializedObject.isEditingMultipleObjects) {
- foreach (var o in targets) {
- var component = (SkeletonGraphic)o;
- if (!component.IsValid)
- return false;
- }
- return true;
- }
- else {
- var component = (SkeletonGraphic)target;
- return component.IsValid;
- }
- }
- }
-
- void OnEnable () {
-#if NEW_PREFAB_SYSTEM
- isInspectingPrefab = false;
-#else
- isInspectingPrefab = (PrefabUtility.GetPrefabType(target) == PrefabType.Prefab);
-#endif
- SpineEditorUtilities.ConfirmInitialization();
-
- // Labels
- SkeletonDataAssetLabel = new GUIContent("SkeletonData Asset", Icons.spine);
-
- var so = this.serializedObject;
- thisSkeletonGraphic = target as SkeletonGraphic;
-
- // MaskableGraphic
- material = so.FindProperty("m_Material");
- color = so.FindProperty("m_Color");
- raycastTarget = so.FindProperty("m_RaycastTarget");
-
- // SkeletonRenderer
- skeletonDataAsset = so.FindProperty("skeletonDataAsset");
- initialSkinName = so.FindProperty("initialSkinName");
-
- initialFlipX = so.FindProperty("initialFlipX");
- initialFlipY = so.FindProperty("initialFlipY");
-
- // SkeletonAnimation
- startingAnimation = so.FindProperty("startingAnimation");
- startingLoop = so.FindProperty("startingLoop");
- timeScale = so.FindProperty("timeScale");
- unscaledTime = so.FindProperty("unscaledTime");
- freeze = so.FindProperty("freeze");
- updateWhenInvisible = so.FindProperty("updateWhenInvisible");
-
- meshGeneratorSettings = so.FindProperty("meshGenerator").FindPropertyRelative("settings");
- meshGeneratorSettings.isExpanded = SkeletonRendererInspector.advancedFoldout;
-
- allowMultipleCanvasRenderers = so.FindProperty("allowMultipleCanvasRenderers");
- updateSeparatorPartLocation = so.FindProperty("updateSeparatorPartLocation");
- enableSeparatorSlots = so.FindProperty("enableSeparatorSlots");
-
- separatorSlotNames = so.FindProperty("separatorSlotNames");
- separatorSlotNames.isExpanded = true;
- }
-
- public override void OnInspectorGUI () {
-
- if (UnityEngine.Event.current.type == EventType.Layout) {
- if (forceReloadQueued) {
- forceReloadQueued = false;
- foreach (var c in targets) {
- SpineEditorUtilities.ReloadSkeletonDataAssetAndComponent(c as SkeletonGraphic);
- }
- }
- else {
- foreach (var c in targets) {
- var component = c as SkeletonGraphic;
- if (!component.IsValid) {
- SpineEditorUtilities.ReinitializeComponent(component);
- if (!component.IsValid) continue;
- }
- }
- }
- }
-
- bool wasChanged = false;
- EditorGUI.BeginChangeCheck();
-
- using (new EditorGUILayout.HorizontalScope(EditorStyles.helpBox)) {
- SpineInspectorUtility.PropertyFieldFitLabel(skeletonDataAsset, SkeletonDataAssetLabel);
- if (GUILayout.Button(ReloadButtonString, ReloadButtonStyle, ReloadButtonWidth))
- forceReloadQueued = true;
- }
-
- EditorGUILayout.PropertyField(material);
- EditorGUILayout.PropertyField(color);
-
- if (thisSkeletonGraphic.skeletonDataAsset == null) {
- EditorGUILayout.HelpBox("You need to assign a SkeletonDataAsset first.", MessageType.Info);
- serializedObject.ApplyModifiedProperties();
- serializedObject.Update();
- return;
- }
-
- string errorMessage = null;
- if (SpineEditorUtilities.Preferences.componentMaterialWarning &&
- MaterialChecks.IsMaterialSetupProblematic(thisSkeletonGraphic, ref errorMessage)) {
- EditorGUILayout.HelpBox(errorMessage, MessageType.Error, true);
- }
-
- bool isSingleRendererOnly = (!allowMultipleCanvasRenderers.hasMultipleDifferentValues && allowMultipleCanvasRenderers.boolValue == false);
- bool isSeparationEnabledButNotMultipleRenderers =
- isSingleRendererOnly && (!enableSeparatorSlots.hasMultipleDifferentValues && enableSeparatorSlots.boolValue == true);
- bool meshRendersIncorrectlyWithSingleRenderer =
- isSingleRendererOnly && SkeletonHasMultipleSubmeshes();
-
- if (isSeparationEnabledButNotMultipleRenderers || meshRendersIncorrectlyWithSingleRenderer)
- meshGeneratorSettings.isExpanded = true;
-
- using (new SpineInspectorUtility.BoxScope()) {
-
- EditorGUILayout.PropertyField(meshGeneratorSettings, SpineInspectorUtility.TempContent("Advanced..."), includeChildren: true);
- SkeletonRendererInspector.advancedFoldout = meshGeneratorSettings.isExpanded;
-
- if (meshGeneratorSettings.isExpanded) {
- EditorGUILayout.Space();
- using (new SpineInspectorUtility.IndentScope()) {
- EditorGUILayout.BeginHorizontal();
- EditorGUILayout.PropertyField(allowMultipleCanvasRenderers, SpineInspectorUtility.TempContent("Multiple CanvasRenderers"));
-
- if (GUILayout.Button(new GUIContent("Trim Renderers", "Remove currently unused CanvasRenderer GameObjects. These will be regenerated whenever needed."),
- EditorStyles.miniButton, GUILayout.Width(100f))) {
-
- foreach (var skeletonGraphic in targets) {
- ((SkeletonGraphic)skeletonGraphic).TrimRenderers();
- }
- }
- EditorGUILayout.EndHorizontal();
-
- EditorGUILayout.PropertyField(updateWhenInvisible);
-
- // warning box
- if (isSeparationEnabledButNotMultipleRenderers) {
- using (new SpineInspectorUtility.BoxScope()) {
- meshGeneratorSettings.isExpanded = true;
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("'Multiple Canvas Renderers' must be enabled\nwhen 'Enable Separation' is enabled.", Icons.warning), GUILayout.Height(42), GUILayout.Width(340));
- }
- }
- else if (meshRendersIncorrectlyWithSingleRenderer) {
- using (new SpineInspectorUtility.BoxScope()) {
- meshGeneratorSettings.isExpanded = true;
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("This mesh uses multiple atlas pages. You\n" +
- "need to enable 'Multiple Canvas Renderers'\n" +
- "for correct rendering. Consider packing\n" +
- "attachments to a single atlas page if possible.", Icons.warning), GUILayout.Height(60), GUILayout.Width(340));
- }
- }
- }
-
- EditorGUILayout.Space();
- SeparatorsField(separatorSlotNames, enableSeparatorSlots, updateSeparatorPartLocation);
- }
- }
-
- EditorGUILayout.Space();
- EditorGUILayout.PropertyField(initialSkinName);
- {
- var rect = GUILayoutUtility.GetRect(EditorGUIUtility.currentViewWidth, EditorGUIUtility.singleLineHeight);
- EditorGUI.PrefixLabel(rect, SpineInspectorUtility.TempContent("Initial Flip"));
- rect.x += EditorGUIUtility.labelWidth;
- rect.width = 30f;
- SpineInspectorUtility.ToggleLeft(rect, initialFlipX, SpineInspectorUtility.TempContent("X", tooltip: "initialFlipX"));
- rect.x += 35f;
- SpineInspectorUtility.ToggleLeft(rect, initialFlipY, SpineInspectorUtility.TempContent("Y", tooltip: "initialFlipY"));
- }
-
- EditorGUILayout.Space();
- EditorGUILayout.LabelField("Animation", EditorStyles.boldLabel);
- EditorGUILayout.PropertyField(startingAnimation);
- EditorGUILayout.PropertyField(startingLoop);
- EditorGUILayout.PropertyField(timeScale);
- EditorGUILayout.PropertyField(unscaledTime, SpineInspectorUtility.TempContent(unscaledTime.displayName, tooltip: "If checked, this will use Time.unscaledDeltaTime to make this update independent of game Time.timeScale. Instance SkeletonGraphic.timeScale will still be applied."));
- EditorGUILayout.Space();
- EditorGUILayout.PropertyField(freeze);
- EditorGUILayout.Space();
- SkeletonRendererInspector.SkeletonRootMotionParameter(targets);
- EditorGUILayout.Space();
- EditorGUILayout.LabelField("UI", EditorStyles.boldLabel);
- EditorGUILayout.PropertyField(raycastTarget);
-
- EditorGUILayout.BeginHorizontal(GUILayout.Height(EditorGUIUtility.singleLineHeight + 5));
- EditorGUILayout.PrefixLabel("Match RectTransform with Mesh");
- if (GUILayout.Button("Match", EditorStyles.miniButton, GUILayout.Width(65f))) {
- foreach (var skeletonGraphic in targets) {
- MatchRectTransformWithBounds((SkeletonGraphic)skeletonGraphic);
- }
- }
- EditorGUILayout.EndHorizontal();
-
- if (TargetIsValid && !isInspectingPrefab) {
- EditorGUILayout.Space();
- if (SpineInspectorUtility.CenteredButton(new GUIContent("Add Skeleton Utility", Icons.skeletonUtility), 21, true, 200f))
- foreach (var t in targets) {
- var component = t as Component;
- if (component.GetComponent() == null) {
- component.gameObject.AddComponent();
- }
- }
- }
-
- wasChanged |= EditorGUI.EndChangeCheck();
-
- if (wasChanged) {
- serializedObject.ApplyModifiedProperties();
- slotsReapplyRequired = true;
- }
-
- if (slotsReapplyRequired && UnityEngine.Event.current.type == EventType.Repaint) {
- foreach (var target in targets) {
- var skeletonGraphic = (SkeletonGraphic)target;
- skeletonGraphic.ReapplySeparatorSlotNames();
- skeletonGraphic.LateUpdate();
- SceneView.RepaintAll();
- }
- slotsReapplyRequired = false;
- }
- }
-
- protected bool SkeletonHasMultipleSubmeshes () {
- foreach (var target in targets) {
- var skeletonGraphic = (SkeletonGraphic)target;
- if (skeletonGraphic.HasMultipleSubmeshInstructions())
- return true;
- }
- return false;
- }
-
- public static void SetSeparatorSlotNames (SkeletonRenderer skeletonRenderer, string[] newSlotNames) {
- var field = SpineInspectorUtility.GetNonPublicField(typeof(SkeletonRenderer), SeparatorSlotNamesFieldName);
- field.SetValue(skeletonRenderer, newSlotNames);
- }
-
- public static string[] GetSeparatorSlotNames (SkeletonRenderer skeletonRenderer) {
- var field = SpineInspectorUtility.GetNonPublicField(typeof(SkeletonRenderer), SeparatorSlotNamesFieldName);
- return field.GetValue(skeletonRenderer) as string[];
- }
-
- public static void SeparatorsField (SerializedProperty separatorSlotNames, SerializedProperty enableSeparatorSlots,
- SerializedProperty updateSeparatorPartLocation) {
-
- bool multi = separatorSlotNames.serializedObject.isEditingMultipleObjects;
- bool hasTerminalSlot = false;
- if (!multi) {
- var sr = separatorSlotNames.serializedObject.targetObject as ISkeletonComponent;
- var skeleton = sr.Skeleton;
- int lastSlot = skeleton.Slots.Count - 1;
- if (skeleton != null) {
- for (int i = 0, n = separatorSlotNames.arraySize; i < n; i++) {
- int index = skeleton.FindSlotIndex(separatorSlotNames.GetArrayElementAtIndex(i).stringValue);
- if (index == 0 || index == lastSlot) {
- hasTerminalSlot = true;
- break;
- }
- }
- }
- }
-
- string terminalSlotWarning = hasTerminalSlot ? " (!)" : "";
-
- using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) {
- const string SeparatorsDescription = "Stored names of slots where the Skeleton's render will be split into different batches. This is used by separate components that split the render into different MeshRenderers or GameObjects.";
- if (separatorSlotNames.isExpanded) {
- EditorGUILayout.PropertyField(separatorSlotNames, SpineInspectorUtility.TempContent(separatorSlotNames.displayName + terminalSlotWarning, Icons.slotRoot, SeparatorsDescription), true);
- GUILayout.BeginHorizontal();
- GUILayout.FlexibleSpace();
- if (GUILayout.Button("+", GUILayout.MaxWidth(28f), GUILayout.MaxHeight(15f))) {
- separatorSlotNames.arraySize++;
- }
- GUILayout.EndHorizontal();
- }
- else
- EditorGUILayout.PropertyField(separatorSlotNames, new GUIContent(separatorSlotNames.displayName + string.Format("{0} [{1}]", terminalSlotWarning, separatorSlotNames.arraySize), SeparatorsDescription), true);
-
- EditorGUILayout.PropertyField(enableSeparatorSlots, SpineInspectorUtility.TempContent("Enable Separation", tooltip: "Whether to enable separation at the above separator slots."));
- EditorGUILayout.PropertyField(updateSeparatorPartLocation, SpineInspectorUtility.TempContent("Update Part Location", tooltip:"Update separator part GameObject location to match the position of the SkeletonGraphic. This can be helpful when re-parenting parts to a different GameObject."));
- }
- }
-
- #region Menus
- [MenuItem("CONTEXT/SkeletonGraphic/Match RectTransform with Mesh Bounds")]
- static void MatchRectTransformWithBounds (MenuCommand command) {
- var skeletonGraphic = (SkeletonGraphic)command.context;
- MatchRectTransformWithBounds(skeletonGraphic);
- }
-
- static void MatchRectTransformWithBounds (SkeletonGraphic skeletonGraphic) {
- if (!skeletonGraphic.MatchRectTransformWithBounds())
- Debug.Log("Mesh was not previously generated.");
- }
-
- [MenuItem("GameObject/Spine/SkeletonGraphic (UnityUI)", false, 15)]
- static public void SkeletonGraphicCreateMenuItem () {
- var parentGameObject = Selection.activeObject as GameObject;
- var parentTransform = parentGameObject == null ? null : parentGameObject.GetComponent();
-
- if (parentTransform == null)
- Debug.LogWarning("Your new SkeletonGraphic will not be visible until it is placed under a Canvas");
-
- var gameObject = NewSkeletonGraphicGameObject("New SkeletonGraphic");
- gameObject.transform.SetParent(parentTransform, false);
- EditorUtility.FocusProjectWindow();
- Selection.activeObject = gameObject;
- EditorGUIUtility.PingObject(Selection.activeObject);
- }
-
- // SpineEditorUtilities.InstantiateDelegate. Used by drag and drop.
- public static Component SpawnSkeletonGraphicFromDrop (SkeletonDataAsset data) {
- return InstantiateSkeletonGraphic(data);
- }
-
- public static SkeletonGraphic InstantiateSkeletonGraphic (SkeletonDataAsset skeletonDataAsset, string skinName) {
- return InstantiateSkeletonGraphic(skeletonDataAsset, skeletonDataAsset.GetSkeletonData(true).FindSkin(skinName));
- }
-
- public static SkeletonGraphic InstantiateSkeletonGraphic (SkeletonDataAsset skeletonDataAsset, Skin skin = null) {
- string spineGameObjectName = string.Format("SkeletonGraphic ({0})", skeletonDataAsset.name.Replace("_SkeletonData", ""));
- var go = NewSkeletonGraphicGameObject(spineGameObjectName);
- var graphic = go.GetComponent();
- graphic.skeletonDataAsset = skeletonDataAsset;
-
- SkeletonData data = skeletonDataAsset.GetSkeletonData(true);
-
- if (data == null) {
- for (int i = 0; i < skeletonDataAsset.atlasAssets.Length; i++) {
- string reloadAtlasPath = AssetDatabase.GetAssetPath(skeletonDataAsset.atlasAssets[i]);
- skeletonDataAsset.atlasAssets[i] = (AtlasAssetBase)AssetDatabase.LoadAssetAtPath(reloadAtlasPath, typeof(AtlasAssetBase));
- }
-
- data = skeletonDataAsset.GetSkeletonData(true);
- }
-
- skin = skin ?? data.DefaultSkin ?? data.Skins.Items[0];
- graphic.MeshGenerator.settings.zSpacing = SpineEditorUtilities.Preferences.defaultZSpacing;
-
- graphic.startingLoop = SpineEditorUtilities.Preferences.defaultInstantiateLoop;
- graphic.Initialize(false);
- if (skin != null) graphic.Skeleton.SetSkin(skin);
- graphic.initialSkinName = skin.Name;
- graphic.Skeleton.UpdateWorldTransform();
- graphic.UpdateMesh();
- return graphic;
- }
-
- static GameObject NewSkeletonGraphicGameObject (string gameObjectName) {
- var go = EditorInstantiation.NewGameObject(gameObjectName, true, typeof(RectTransform), typeof(CanvasRenderer), typeof(SkeletonGraphic));
- var graphic = go.GetComponent();
- graphic.material = SkeletonGraphicInspector.DefaultSkeletonGraphicMaterial;
- return go;
- }
-
- public static Material DefaultSkeletonGraphicMaterial {
- get {
- var guids = AssetDatabase.FindAssets("SkeletonGraphicDefault t:material");
- if (guids.Length <= 0) return null;
-
- var firstAssetPath = AssetDatabase.GUIDToAssetPath(guids[0]);
- if (string.IsNullOrEmpty(firstAssetPath)) return null;
-
- var firstMaterial = AssetDatabase.LoadAssetAtPath(firstAssetPath);
- return firstMaterial;
- }
- }
-
- #endregion
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs.meta
deleted file mode 100644
index 5fced2e..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 0d81cc76b52fcdf499b2db252a317726
-timeCreated: 1455570945
-licenseType: Free
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimInspector.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimInspector.cs
deleted file mode 100644
index c322a8e..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimInspector.cs
+++ /dev/null
@@ -1,153 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-// Contributed by: Mitch Thompson
-
-using UnityEditor;
-using UnityEngine;
-
-namespace Spine.Unity.Editor {
- [CustomEditor(typeof(SkeletonMecanim))]
- [CanEditMultipleObjects]
- public class SkeletonMecanimInspector : SkeletonRendererInspector {
- public static bool mecanimSettingsFoldout;
-
- protected SerializedProperty autoReset;
- protected SerializedProperty useCustomMixMode;
- protected SerializedProperty layerMixModes;
- protected SerializedProperty layerBlendModes;
-
- protected override void OnEnable () {
- base.OnEnable();
- SerializedProperty mecanimTranslator = serializedObject.FindProperty("translator");
- autoReset = mecanimTranslator.FindPropertyRelative("autoReset");
- useCustomMixMode = mecanimTranslator.FindPropertyRelative("useCustomMixMode");
- layerMixModes = mecanimTranslator.FindPropertyRelative("layerMixModes");
- layerBlendModes = mecanimTranslator.FindPropertyRelative("layerBlendModes");
- }
-
- protected override void DrawInspectorGUI (bool multi) {
-
- AddRootMotionComponentIfEnabled();
-
- base.DrawInspectorGUI(multi);
-
- using (new SpineInspectorUtility.BoxScope()) {
- mecanimSettingsFoldout = EditorGUILayout.Foldout(mecanimSettingsFoldout, "Mecanim Translator");
- if (mecanimSettingsFoldout) {
- EditorGUILayout.PropertyField(autoReset, new GUIContent("Auto Reset",
- "When set to true, the skeleton state is mixed out to setup-" +
- "pose when an animation finishes, according to the " +
- "animation's keyed items."));
-
- EditorGUILayout.PropertyField(useCustomMixMode, new GUIContent("Custom MixMode",
- "When disabled, the recommended MixMode is used according to the layer blend mode. Enable to specify a custom MixMode for each Mecanim layer."));
-
- if (useCustomMixMode.hasMultipleDifferentValues || useCustomMixMode.boolValue == true) {
- DrawLayerSettings();
- EditorGUILayout.Space();
- }
- }
- }
- }
-
- protected void AddRootMotionComponentIfEnabled () {
- foreach (var t in targets) {
- var component = t as Component;
- var animator = component.GetComponent();
- if (animator != null && animator.applyRootMotion) {
- if (component.GetComponent() == null) {
- component.gameObject.AddComponent();
- }
- }
- }
- }
-
- protected void DrawLayerSettings () {
- string[] layerNames = GetLayerNames();
- float widthLayerColumn = 140;
- float widthMixColumn = 84;
-
- using (new GUILayout.HorizontalScope()) {
- var rect = GUILayoutUtility.GetRect(EditorGUIUtility.currentViewWidth, EditorGUIUtility.singleLineHeight);
- rect.width = widthLayerColumn;
- EditorGUI.LabelField(rect, SpineInspectorUtility.TempContent("Mecanim Layer"), EditorStyles.boldLabel);
-
- var savedIndent = EditorGUI.indentLevel;
- EditorGUI.indentLevel = 0;
-
- rect.position += new Vector2(rect.width, 0);
- rect.width = widthMixColumn;
- EditorGUI.LabelField(rect, SpineInspectorUtility.TempContent("Mix Mode"), EditorStyles.boldLabel);
-
- EditorGUI.indentLevel = savedIndent;
- }
-
- using (new SpineInspectorUtility.IndentScope()) {
- int layerCount = layerMixModes.arraySize;
- for (int i = 0; i < layerCount; ++i) {
- using (new GUILayout.HorizontalScope()) {
- string layerName = i < layerNames.Length ? layerNames[i] : ("Layer " + i);
-
- var rect = GUILayoutUtility.GetRect(EditorGUIUtility.currentViewWidth, EditorGUIUtility.singleLineHeight);
- rect.width = widthLayerColumn;
- EditorGUI.PrefixLabel(rect, SpineInspectorUtility.TempContent(layerName));
-
- var savedIndent = EditorGUI.indentLevel;
- EditorGUI.indentLevel = 0;
-
- var mixMode = layerMixModes.GetArrayElementAtIndex(i);
- rect.position += new Vector2(rect.width, 0);
- rect.width = widthMixColumn;
- EditorGUI.PropertyField(rect, mixMode, GUIContent.none);
-
- EditorGUI.indentLevel = savedIndent;
- }
- }
- }
- }
-
- protected string[] GetLayerNames () {
- int maxLayerCount = 0;
- int maxIndex = 0;
- for (int i = 0; i < targets.Length; ++i) {
- var skeletonMecanim = ((SkeletonMecanim)targets[i]);
- int count = skeletonMecanim.Translator.MecanimLayerCount;
- if (count > maxLayerCount) {
- maxLayerCount = count;
- maxIndex = i;
- }
- }
- if (maxLayerCount == 0)
- return new string[0];
- var skeletonMecanimMaxLayers = ((SkeletonMecanim)targets[maxIndex]);
- return skeletonMecanimMaxLayers.Translator.MecanimLayerNames;
- }
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimInspector.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimInspector.cs.meta
deleted file mode 100644
index 9ef306e..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimInspector.cs.meta
+++ /dev/null
@@ -1,10 +0,0 @@
-fileFormatVersion: 2
-guid: 6a9ca5213a3a4614c9a9f2e60909bc33
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimRootMotionInspector.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimRootMotionInspector.cs
deleted file mode 100644
index bcdbbaa..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimRootMotionInspector.cs
+++ /dev/null
@@ -1,81 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using UnityEditor;
-using UnityEngine;
-
-namespace Spine.Unity.Editor {
- [CustomEditor(typeof(SkeletonMecanimRootMotion))]
- [CanEditMultipleObjects]
- public class SkeletonMecanimRootMotionInspector : SkeletonRootMotionBaseInspector {
- protected SerializedProperty mecanimLayerFlags;
-
- protected GUIContent mecanimLayersLabel;
-
- protected override void OnEnable () {
- base.OnEnable();
- mecanimLayerFlags = serializedObject.FindProperty("mecanimLayerFlags");
-
- mecanimLayersLabel = new UnityEngine.GUIContent("Mecanim Layers", "Mecanim layers to apply root motion at. Defaults to the first Mecanim layer.");
- }
-
- override public void OnInspectorGUI () {
-
- base.MainPropertyFields();
- MecanimLayerMaskPropertyField();
-
- base.OptionalPropertyFields();
- serializedObject.ApplyModifiedProperties();
- }
-
- protected string[] GetLayerNames () {
- int maxLayerCount = 0;
- int maxIndex = 0;
- for (int i = 0; i < targets.Length; ++i) {
- var skeletonMecanim = ((SkeletonMecanimRootMotion)targets[i]).SkeletonMecanim;
- int count = skeletonMecanim.Translator.MecanimLayerCount;
- if (count > maxLayerCount) {
- maxLayerCount = count;
- maxIndex = i;
- }
- }
- if (maxLayerCount == 0)
- return new string[0];
- var skeletonMecanimMaxLayers = ((SkeletonMecanimRootMotion)targets[maxIndex]).SkeletonMecanim;
- return skeletonMecanimMaxLayers.Translator.MecanimLayerNames;
- }
-
- protected void MecanimLayerMaskPropertyField () {
- string[] layerNames = GetLayerNames();
- if (layerNames.Length > 0)
- mecanimLayerFlags.intValue = EditorGUILayout.MaskField(
- mecanimLayersLabel, mecanimLayerFlags.intValue, layerNames);
- }
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimRootMotionInspector.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimRootMotionInspector.cs.meta
deleted file mode 100644
index 04c6dcf..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimRootMotionInspector.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 4613924c50d66cf458f0db803776dd2f
-timeCreated: 1593175106
-licenseType: Pro
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererCustomMaterialsInspector.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererCustomMaterialsInspector.cs
deleted file mode 100644
index 44c9f4a..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererCustomMaterialsInspector.cs
+++ /dev/null
@@ -1,165 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#define SPINE_OPTIONAL_MATERIALOVERRIDE
-
-// Contributed by: Lost Polygon
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using UnityEditor;
-using UnityEngine;
-using Spine.Unity.Examples;
-
-namespace Spine.Unity.Editor {
-
- // This script is not intended for use with code. See the readme.txt file in SkeletonRendererCustomMaterials folder to learn more.
- [CustomEditor(typeof(SkeletonRendererCustomMaterials))]
- public class SkeletonRendererCustomMaterialsInspector : UnityEditor.Editor {
- List componentCustomMaterialOverrides, _customMaterialOverridesPrev;
- List componentCustomSlotMaterials, _customSlotMaterialsPrev;
- SkeletonRendererCustomMaterials component;
-
- const BindingFlags PrivateInstance = BindingFlags.Instance | BindingFlags.NonPublic;
- MethodInfo RemoveCustomMaterialOverrides, RemoveCustomSlotMaterials, SetCustomMaterialOverrides, SetCustomSlotMaterials;
-
- #region SkeletonRenderer context menu
- [MenuItem("CONTEXT/SkeletonRenderer/Add Basic Serialized Custom Materials")]
- static void AddSkeletonRendererCustomMaterials (MenuCommand menuCommand) {
- var skeletonRenderer = (SkeletonRenderer)menuCommand.context;
- var newComponent = skeletonRenderer.gameObject.AddComponent();
- Undo.RegisterCreatedObjectUndo(newComponent, "Add Basic Serialized Custom Materials");
- }
-
- [MenuItem("CONTEXT/SkeletonRenderer/Add Basic Serialized Custom Materials", true)]
- static bool AddSkeletonRendererCustomMaterials_Validate (MenuCommand menuCommand) {
- var skeletonRenderer = (SkeletonRenderer)menuCommand.context;
- return (skeletonRenderer.GetComponent() == null);
- }
- #endregion
-
- void OnEnable () {
- Type cm = typeof(SkeletonRendererCustomMaterials);
- RemoveCustomMaterialOverrides = cm.GetMethod("RemoveCustomMaterialOverrides", PrivateInstance);
- RemoveCustomSlotMaterials = cm.GetMethod("RemoveCustomSlotMaterials", PrivateInstance);
- SetCustomMaterialOverrides = cm.GetMethod("SetCustomMaterialOverrides", PrivateInstance);
- SetCustomSlotMaterials = cm.GetMethod("SetCustomSlotMaterials", PrivateInstance);
- }
-
- public override void OnInspectorGUI () {
- component = (SkeletonRendererCustomMaterials)target;
- var skeletonRenderer = component.skeletonRenderer;
-
- // Draw the default inspector
- DrawDefaultInspector();
-
- if (serializedObject.isEditingMultipleObjects)
- return;
-
- if (componentCustomMaterialOverrides == null) {
- Type cm = typeof(SkeletonRendererCustomMaterials);
- componentCustomMaterialOverrides = cm.GetField("customMaterialOverrides", PrivateInstance).GetValue(component) as List;
- componentCustomSlotMaterials = cm.GetField("customSlotMaterials", PrivateInstance).GetValue(component) as List;
- if (componentCustomMaterialOverrides == null) {
- Debug.Log("Reflection failed.");
- return;
- }
- }
-
- // Fill with current values at start
- if (_customMaterialOverridesPrev == null || _customSlotMaterialsPrev == null) {
- _customMaterialOverridesPrev = CopyList(componentCustomMaterialOverrides);
- _customSlotMaterialsPrev = CopyList(componentCustomSlotMaterials);
- }
-
- // Compare new values with saved. If change is detected:
- // store new values, restore old values, remove overrides, restore new values, restore overrides.
-
- // 1. Store new values
- var customMaterialOverridesNew = CopyList(componentCustomMaterialOverrides);
- var customSlotMaterialsNew = CopyList(componentCustomSlotMaterials);
-
- // Detect changes
- if (!_customMaterialOverridesPrev.SequenceEqual(customMaterialOverridesNew) ||
- !_customSlotMaterialsPrev.SequenceEqual(customSlotMaterialsNew)) {
- // 2. Restore old values
- componentCustomMaterialOverrides.Clear();
- componentCustomSlotMaterials.Clear();
- componentCustomMaterialOverrides.AddRange(_customMaterialOverridesPrev);
- componentCustomSlotMaterials.AddRange(_customSlotMaterialsPrev);
-
- // 3. Remove overrides
- RemoveCustomMaterials();
-
- // 4. Restore new values
- componentCustomMaterialOverrides.Clear();
- componentCustomSlotMaterials.Clear();
- componentCustomMaterialOverrides.AddRange(customMaterialOverridesNew);
- componentCustomSlotMaterials.AddRange(customSlotMaterialsNew);
-
- // 5. Restore overrides
- SetCustomMaterials();
-
- if (skeletonRenderer != null)
- skeletonRenderer.LateUpdate();
- }
-
- _customMaterialOverridesPrev = CopyList(componentCustomMaterialOverrides);
- _customSlotMaterialsPrev = CopyList(componentCustomSlotMaterials);
-
- if (SpineInspectorUtility.LargeCenteredButton(SpineInspectorUtility.TempContent("Clear and Reapply Changes", tooltip: "Removes all non-serialized overrides in the SkeletonRenderer and reapplies the overrides on this component."))) {
- if (skeletonRenderer != null) {
- #if SPINE_OPTIONAL_MATERIALOVERRIDE
- skeletonRenderer.CustomMaterialOverride.Clear();
- #endif
- skeletonRenderer.CustomSlotMaterials.Clear();
- RemoveCustomMaterials();
- SetCustomMaterials();
- skeletonRenderer.LateUpdate();
- }
- }
- }
-
- void RemoveCustomMaterials () {
- RemoveCustomMaterialOverrides.Invoke(component, null);
- RemoveCustomSlotMaterials.Invoke(component, null);
- }
-
- void SetCustomMaterials () {
- SetCustomMaterialOverrides.Invoke(component, null);
- SetCustomSlotMaterials.Invoke(component, null);
- }
-
- static List CopyList (List list) {
- return list.GetRange(0, list.Count);
- }
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererCustomMaterialsInspector.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererCustomMaterialsInspector.cs.meta
deleted file mode 100644
index 1e37a56..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererCustomMaterialsInspector.cs.meta
+++ /dev/null
@@ -1,10 +0,0 @@
-fileFormatVersion: 2
-guid: e70f7f2a241d6d34aafd6a4a52a368d0
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererInspector.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererInspector.cs
deleted file mode 100644
index d668691..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererInspector.cs
+++ /dev/null
@@ -1,593 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER
-#define NEW_PREFAB_SYSTEM
-#else
-#define NO_PREFAB_MESH
-#endif
-
-#if UNITY_2018_1_OR_NEWER
-#define PER_MATERIAL_PROPERTY_BLOCKS
-#endif
-
-#if UNITY_2017_1_OR_NEWER
-#define BUILT_IN_SPRITE_MASK_COMPONENT
-#endif
-
-using UnityEditor;
-using System.Collections.Generic;
-using UnityEngine;
-using System.Reflection;
-
-namespace Spine.Unity.Editor {
- using Event = UnityEngine.Event;
- using Icons = SpineEditorUtilities.Icons;
-
- [CustomEditor(typeof(SkeletonRenderer))]
- [CanEditMultipleObjects]
- public class SkeletonRendererInspector : UnityEditor.Editor {
- public static bool advancedFoldout;
-
- const string SeparatorSlotNamesFieldName = "separatorSlotNames";
-
- protected SerializedProperty skeletonDataAsset, initialSkinName;
- protected SerializedProperty initialFlipX, initialFlipY;
- protected SerializedProperty updateWhenInvisible, singleSubmesh, separatorSlotNames, clearStateOnDisable, immutableTriangles, fixDrawOrder;
- protected SerializedProperty normals, tangents, zSpacing, pmaVertexColors, tintBlack; // MeshGenerator settings
- protected SerializedProperty maskInteraction;
- protected SerializedProperty maskMaterialsNone, maskMaterialsInside, maskMaterialsOutside;
- protected SpineInspectorUtility.SerializedSortingProperties sortingProperties;
-
- protected bool isInspectingPrefab;
- protected bool forceReloadQueued = false;
- protected bool setMaskNoneMaterialsQueued = false;
- protected bool setInsideMaskMaterialsQueued = false;
- protected bool setOutsideMaskMaterialsQueued = false;
- protected bool deleteInsideMaskMaterialsQueued = false;
- protected bool deleteOutsideMaskMaterialsQueued = false;
-
- protected GUIContent SkeletonDataAssetLabel, SkeletonUtilityButtonContent;
- protected GUIContent PMAVertexColorsLabel, ClearStateOnDisableLabel, ZSpacingLabel, ImmubleTrianglesLabel, TintBlackLabel, UpdateWhenInvisibleLabel, SingleSubmeshLabel, FixDrawOrderLabel;
- protected GUIContent NormalsLabel, TangentsLabel, MaskInteractionLabel;
- protected GUIContent MaskMaterialsHeadingLabel, MaskMaterialsNoneLabel, MaskMaterialsInsideLabel, MaskMaterialsOutsideLabel;
- protected GUIContent SetMaterialButtonLabel, ClearMaterialButtonLabel, DeleteMaterialButtonLabel;
-
- const string ReloadButtonString = "Reload";
- static GUILayoutOption reloadButtonWidth;
- static GUILayoutOption ReloadButtonWidth { get { return reloadButtonWidth = reloadButtonWidth ?? GUILayout.Width(GUI.skin.label.CalcSize(new GUIContent(ReloadButtonString)).x + 20); } }
- static GUIStyle ReloadButtonStyle { get { return EditorStyles.miniButton; } }
-
- protected bool TargetIsValid {
- get {
- if (serializedObject.isEditingMultipleObjects) {
- foreach (var o in targets) {
- var component = (SkeletonRenderer)o;
- if (!component.valid)
- return false;
- }
- return true;
- } else {
- var component = (SkeletonRenderer)target;
- return component.valid;
- }
- }
- }
-
- protected virtual void OnEnable () {
-#if NEW_PREFAB_SYSTEM
- isInspectingPrefab = false;
-#else
- isInspectingPrefab = (PrefabUtility.GetPrefabType(target) == PrefabType.Prefab);
-#endif
- SpineEditorUtilities.ConfirmInitialization();
-
- // Labels
- SkeletonDataAssetLabel = new GUIContent("SkeletonData Asset", Icons.spine);
- SkeletonUtilityButtonContent = new GUIContent("Add Skeleton Utility", Icons.skeletonUtility);
- ImmubleTrianglesLabel = new GUIContent("Immutable Triangles", "Enable to optimize rendering for skeletons that never change attachment visbility");
- PMAVertexColorsLabel = new GUIContent("PMA Vertex Colors", "Use this if you are using the default Spine/Skeleton shader or any premultiply-alpha shader.");
- ClearStateOnDisableLabel = new GUIContent("Clear State On Disable", "Use this if you are pooling or enabling/disabling your Spine GameObject.");
- ZSpacingLabel = new GUIContent("Z Spacing", "A value other than 0 adds a space between each rendered attachment to prevent Z Fighting when using shaders that read or write to the depth buffer. Large values may cause unwanted parallax and spaces depending on camera setup.");
- NormalsLabel = new GUIContent("Add Normals", "Use this if your shader requires vertex normals. A more efficient solution for 2D setups is to modify the shader to assume a single normal value for the whole mesh.");
- TangentsLabel = new GUIContent("Solve Tangents", "Calculates the tangents per frame. Use this if you are using lit shaders (usually with normal maps) that require vertex tangents.");
- TintBlackLabel = new GUIContent("Tint Black (!)", "Adds black tint vertex data to the mesh as UV2 and UV3. Black tinting requires that the shader interpret UV2 and UV3 as black tint colors for this effect to work. You may also use the default [Spine/Skeleton Tint Black] shader.\n\nIf you only need to tint the whole skeleton and not individual parts, the [Spine/Skeleton Tint] shader is recommended for better efficiency and changing/animating the _Black material property via MaterialPropertyBlock.");
- SingleSubmeshLabel = new GUIContent("Use Single Submesh", "Simplifies submesh generation by assuming you are only using one Material and need only one submesh. This is will disable multiple materials, render separation, and custom slot materials.");
- UpdateWhenInvisibleLabel = new GUIContent("Update When Invisible", "Update mode used when the MeshRenderer becomes invisible. Update mode is automatically reset to UpdateMode.FullUpdate when the mesh becomes visible again.");
- FixDrawOrderLabel = new GUIContent("Fix Draw Order", "Applies only when 3+ submeshes are used (2+ materials with alternating order, e.g. \"A B A\"). If true, GPU instancing will be disabled at all materials and MaterialPropertyBlocks are assigned at each material to prevent aggressive batching of submeshes by e.g. the LWRP renderer, leading to incorrect draw order (e.g. \"A1 B A2\" changed to \"A1A2 B\"). You can disable this parameter when everything is drawn correctly to save the additional performance cost. Note: the GPU instancing setting will remain disabled at affected material assets after exiting play mode, you have to enable it manually if you accidentally enabled this parameter.");
- MaskInteractionLabel = new GUIContent("Mask Interaction", "SkeletonRenderer's interaction with a Sprite Mask.");
- MaskMaterialsHeadingLabel = new GUIContent("Mask Interaction Materials", "Materials used for different interaction with sprite masks.");
- MaskMaterialsNoneLabel = new GUIContent("Normal Materials", "Normal materials used when Mask Interaction is set to None.");
- MaskMaterialsInsideLabel = new GUIContent("Inside Mask", "Materials used when Mask Interaction is set to Inside Mask.");
- MaskMaterialsOutsideLabel = new GUIContent("Outside Mask", "Materials used when Mask Interaction is set to Outside Mask.");
- SetMaterialButtonLabel = new GUIContent("Set", "Prepares material references for switching to the corresponding Mask Interaction mode at runtime. Creates the required materials if they do not exist.");
- ClearMaterialButtonLabel = new GUIContent("Clear", "Clears unused material references. Note: when switching to the corresponding Mask Interaction mode at runtime, a new material is generated on the fly.");
- DeleteMaterialButtonLabel = new GUIContent("Delete", "Clears unused material references and deletes the corresponding assets. Note: when switching to the corresponding Mask Interaction mode at runtime, a new material is generated on the fly.");
-
- var so = this.serializedObject;
- skeletonDataAsset = so.FindProperty("skeletonDataAsset");
- initialSkinName = so.FindProperty("initialSkinName");
- initialFlipX = so.FindProperty("initialFlipX");
- initialFlipY = so.FindProperty("initialFlipY");
- normals = so.FindProperty("addNormals");
- tangents = so.FindProperty("calculateTangents");
- immutableTriangles = so.FindProperty("immutableTriangles");
- pmaVertexColors = so.FindProperty("pmaVertexColors");
- clearStateOnDisable = so.FindProperty("clearStateOnDisable");
- tintBlack = so.FindProperty("tintBlack");
- updateWhenInvisible = so.FindProperty("updateWhenInvisible");
- singleSubmesh = so.FindProperty("singleSubmesh");
- fixDrawOrder = so.FindProperty("fixDrawOrder");
- maskInteraction = so.FindProperty("maskInteraction");
- maskMaterialsNone = so.FindProperty("maskMaterials.materialsMaskDisabled");
- maskMaterialsInside = so.FindProperty("maskMaterials.materialsInsideMask");
- maskMaterialsOutside = so.FindProperty("maskMaterials.materialsOutsideMask");
-
- separatorSlotNames = so.FindProperty("separatorSlotNames");
- separatorSlotNames.isExpanded = true;
-
- zSpacing = so.FindProperty("zSpacing");
-
- SerializedObject renderersSerializedObject = SpineInspectorUtility.GetRenderersSerializedObject(serializedObject); // Allows proper multi-edit behavior.
- sortingProperties = new SpineInspectorUtility.SerializedSortingProperties(renderersSerializedObject);
- }
-
- public void OnSceneGUI () {
- var skeletonRenderer = (SkeletonRenderer)target;
- var skeleton = skeletonRenderer.Skeleton;
- var transform = skeletonRenderer.transform;
- if (skeleton == null) return;
-
- SpineHandles.DrawBones(transform, skeleton);
- }
-
- override public void OnInspectorGUI () {
- bool multi = serializedObject.isEditingMultipleObjects;
- DrawInspectorGUI(multi);
- HandleSkinChange();
- if (serializedObject.ApplyModifiedProperties() || SpineInspectorUtility.UndoRedoPerformed(Event.current) ||
- AreAnyMaskMaterialsMissing()) {
- if (!Application.isPlaying) {
- foreach (var o in targets)
- SpineEditorUtilities.ReinitializeComponent((SkeletonRenderer)o);
- SceneView.RepaintAll();
- }
- }
- }
-
- protected virtual void DrawInspectorGUI (bool multi) {
- // Initialize.
- if (Event.current.type == EventType.Layout) {
- if (forceReloadQueued) {
- forceReloadQueued = false;
- foreach (var c in targets) {
- SpineEditorUtilities.ReloadSkeletonDataAssetAndComponent(c as SkeletonRenderer);
- }
- } else {
- foreach (var c in targets) {
- var component = c as SkeletonRenderer;
- if (!component.valid) {
- SpineEditorUtilities.ReinitializeComponent(component);
- if (!component.valid) continue;
- }
- }
- }
-
- #if BUILT_IN_SPRITE_MASK_COMPONENT
- if (setMaskNoneMaterialsQueued) {
- setMaskNoneMaterialsQueued = false;
- foreach (var c in targets)
- EditorSetMaskMaterials(c as SkeletonRenderer, SpriteMaskInteraction.None);
- }
- if (setInsideMaskMaterialsQueued) {
- setInsideMaskMaterialsQueued = false;
- foreach (var c in targets)
- EditorSetMaskMaterials(c as SkeletonRenderer, SpriteMaskInteraction.VisibleInsideMask);
- }
- if (setOutsideMaskMaterialsQueued) {
- setOutsideMaskMaterialsQueued = false;
- foreach (var c in targets)
- EditorSetMaskMaterials(c as SkeletonRenderer, SpriteMaskInteraction.VisibleOutsideMask);
- }
-
- if (deleteInsideMaskMaterialsQueued) {
- deleteInsideMaskMaterialsQueued = false;
- foreach (var c in targets)
- EditorDeleteMaskMaterials(c as SkeletonRenderer, SpriteMaskInteraction.VisibleInsideMask);
- }
- if (deleteOutsideMaskMaterialsQueued) {
- deleteOutsideMaskMaterialsQueued = false;
- foreach (var c in targets)
- EditorDeleteMaskMaterials(c as SkeletonRenderer, SpriteMaskInteraction.VisibleOutsideMask);
- }
- #endif
-
-#if NO_PREFAB_MESH
- if (isInspectingPrefab) {
- foreach (var c in targets) {
- var component = (SkeletonRenderer)c;
- MeshFilter meshFilter = component.GetComponent();
- if (meshFilter != null && meshFilter.sharedMesh != null)
- meshFilter.sharedMesh = null;
- }
- }
-#endif
- }
-
- bool valid = TargetIsValid;
-
- // Fields.
- if (multi) {
- using (new EditorGUILayout.HorizontalScope(EditorStyles.helpBox)) {
- SpineInspectorUtility.PropertyFieldFitLabel(skeletonDataAsset, SkeletonDataAssetLabel);
- if (GUILayout.Button(ReloadButtonString, ReloadButtonStyle, ReloadButtonWidth))
- forceReloadQueued = true;
- }
-
- if (valid) EditorGUILayout.PropertyField(initialSkinName, SpineInspectorUtility.TempContent("Initial Skin"));
-
- } else {
- var component = (SkeletonRenderer)target;
-
- using (new EditorGUILayout.HorizontalScope(EditorStyles.helpBox)) {
- SpineInspectorUtility.PropertyFieldFitLabel(skeletonDataAsset, SkeletonDataAssetLabel);
- if (component.valid) {
- if (GUILayout.Button(ReloadButtonString, ReloadButtonStyle, ReloadButtonWidth))
- forceReloadQueued = true;
- }
- }
-
- if (component.skeletonDataAsset == null) {
- EditorGUILayout.HelpBox("Skeleton Data Asset required", MessageType.Warning);
- return;
- }
-
- if (!SpineEditorUtilities.SkeletonDataAssetIsValid(component.skeletonDataAsset)) {
- EditorGUILayout.HelpBox("Skeleton Data Asset error. Please check Skeleton Data Asset.", MessageType.Error);
- return;
- }
-
- if (valid)
- EditorGUILayout.PropertyField(initialSkinName, SpineInspectorUtility.TempContent("Initial Skin"));
-
- }
-
- EditorGUILayout.Space();
-
- // Sorting Layers
- SpineInspectorUtility.SortingPropertyFields(sortingProperties, applyModifiedProperties: true);
-
- if (maskInteraction != null) EditorGUILayout.PropertyField(maskInteraction, MaskInteractionLabel);
-
- if (!valid)
- return;
-
- string errorMessage = null;
- if (SpineEditorUtilities.Preferences.componentMaterialWarning &&
- MaterialChecks.IsMaterialSetupProblematic((SkeletonRenderer)this.target, ref errorMessage)) {
- EditorGUILayout.HelpBox(errorMessage, MessageType.Error, true);
- }
-
- // More Render Options...
- using (new SpineInspectorUtility.BoxScope()) {
- EditorGUI.BeginChangeCheck();
-
- EditorGUILayout.BeginHorizontal(GUILayout.Height(EditorGUIUtility.singleLineHeight + 5));
- advancedFoldout = EditorGUILayout.Foldout(advancedFoldout, "Advanced");
- if (advancedFoldout) {
- EditorGUILayout.Space();
- if (GUILayout.Button("Debug", EditorStyles.miniButton, GUILayout.Width(65f)))
- SkeletonDebugWindow.Init();
- } else {
- EditorGUILayout.Space();
- }
- EditorGUILayout.EndHorizontal();
-
- if (advancedFoldout) {
-
- using (new SpineInspectorUtility.IndentScope()) {
- using (new EditorGUILayout.HorizontalScope()) {
- SpineInspectorUtility.ToggleLeftLayout(initialFlipX);
- SpineInspectorUtility.ToggleLeftLayout(initialFlipY);
- EditorGUILayout.Space();
- }
-
- EditorGUILayout.Space();
- EditorGUILayout.LabelField("Renderer Settings", EditorStyles.boldLabel);
- using (new SpineInspectorUtility.LabelWidthScope()) {
- // Optimization options
- if (updateWhenInvisible != null) EditorGUILayout.PropertyField(updateWhenInvisible, UpdateWhenInvisibleLabel);
-
- if (singleSubmesh != null) EditorGUILayout.PropertyField(singleSubmesh, SingleSubmeshLabel);
- #if PER_MATERIAL_PROPERTY_BLOCKS
- if (fixDrawOrder != null) EditorGUILayout.PropertyField(fixDrawOrder, FixDrawOrderLabel);
- #endif
- if (immutableTriangles != null) EditorGUILayout.PropertyField(immutableTriangles, ImmubleTrianglesLabel);
- EditorGUILayout.PropertyField(clearStateOnDisable, ClearStateOnDisableLabel);
- EditorGUILayout.Space();
- }
-
- SeparatorsField(separatorSlotNames);
- EditorGUILayout.Space();
-
- // Render options
- const float MinZSpacing = -0.1f;
- const float MaxZSpacing = 0f;
- EditorGUILayout.Slider(zSpacing, MinZSpacing, MaxZSpacing, ZSpacingLabel);
- EditorGUILayout.Space();
-
- using (new SpineInspectorUtility.LabelWidthScope()) {
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Vertex Data", SpineInspectorUtility.UnityIcon()), EditorStyles.boldLabel);
- if (pmaVertexColors != null) EditorGUILayout.PropertyField(pmaVertexColors, PMAVertexColorsLabel);
- EditorGUILayout.PropertyField(tintBlack, TintBlackLabel);
-
- // Optional fields. May be disabled in SkeletonRenderer.
- if (normals != null) EditorGUILayout.PropertyField(normals, NormalsLabel);
- if (tangents != null) EditorGUILayout.PropertyField(tangents, TangentsLabel);
- }
-
- #if BUILT_IN_SPRITE_MASK_COMPONENT
- EditorGUILayout.Space();
- if (maskMaterialsNone.arraySize > 0 || maskMaterialsInside.arraySize > 0 || maskMaterialsOutside.arraySize > 0) {
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Mask Interaction Materials", SpineInspectorUtility.UnityIcon()), EditorStyles.boldLabel);
- bool differentMaskModesSelected = maskInteraction.hasMultipleDifferentValues;
- int activeMaskInteractionValue = differentMaskModesSelected ? -1 : maskInteraction.intValue;
-
- bool ignoredParam = true;
- MaskMaterialsEditingField(ref setMaskNoneMaterialsQueued, ref ignoredParam, maskMaterialsNone, MaskMaterialsNoneLabel,
- differentMaskModesSelected, allowDelete : false, isActiveMaterial : activeMaskInteractionValue == (int)SpriteMaskInteraction.None);
- MaskMaterialsEditingField(ref setInsideMaskMaterialsQueued, ref deleteInsideMaskMaterialsQueued, maskMaterialsInside, MaskMaterialsInsideLabel,
- differentMaskModesSelected, allowDelete: true, isActiveMaterial: activeMaskInteractionValue == (int)SpriteMaskInteraction.VisibleInsideMask);
- MaskMaterialsEditingField(ref setOutsideMaskMaterialsQueued, ref deleteOutsideMaskMaterialsQueued, maskMaterialsOutside, MaskMaterialsOutsideLabel,
- differentMaskModesSelected, allowDelete : true, isActiveMaterial: activeMaskInteractionValue == (int)SpriteMaskInteraction.VisibleOutsideMask);
- }
- #endif
-
- EditorGUILayout.Space();
-
- if (valid && !isInspectingPrefab) {
- if (multi) {
- // Support multi-edit SkeletonUtility button.
- // EditorGUILayout.Space();
- // bool addSkeletonUtility = GUILayout.Button(buttonContent, GUILayout.Height(30));
- // foreach (var t in targets) {
- // var component = t as Component;
- // if (addSkeletonUtility && component.GetComponent() == null)
- // component.gameObject.AddComponent();
- // }
- } else {
- var component = (Component)target;
- if (component.GetComponent() == null) {
- if (SpineInspectorUtility.CenteredButton(SkeletonUtilityButtonContent, 21, true, 200f))
- component.gameObject.AddComponent();
- }
- }
- }
-
- EditorGUILayout.Space();
- }
- }
-
- if (EditorGUI.EndChangeCheck())
- SceneView.RepaintAll();
- }
- }
-
- protected void SkeletonRootMotionParameter() {
- SkeletonRootMotionParameter(targets);
- }
-
- public static void SkeletonRootMotionParameter(Object[] targets) {
- int rootMotionComponentCount = 0;
- foreach (var t in targets) {
- var component = t as Component;
- if (component.GetComponent() != null) {
- ++rootMotionComponentCount;
- }
- }
- bool allHaveRootMotion = rootMotionComponentCount == targets.Length;
- bool anyHaveRootMotion = rootMotionComponentCount > 0;
-
- using (new GUILayout.HorizontalScope()) {
- EditorGUILayout.PrefixLabel("Root Motion");
-
- if (!allHaveRootMotion) {
- if (GUILayout.Button(SpineInspectorUtility.TempContent("Add Component", Icons.constraintTransform), GUILayout.MaxWidth(130), GUILayout.Height(18))) {
- foreach (var t in targets) {
- var component = t as Component;
- if (component.GetComponent() == null) {
- component.gameObject.AddComponent();
- }
- }
- }
- }
- if (anyHaveRootMotion) {
- if (GUILayout.Button(SpineInspectorUtility.TempContent("Remove Component", Icons.constraintTransform), GUILayout.MaxWidth(140), GUILayout.Height(18))) {
- foreach (var t in targets) {
- var component = t as Component;
- var rootMotionComponent = component.GetComponent();
- if (rootMotionComponent != null) {
- DestroyImmediate(rootMotionComponent);
- }
- }
- }
- }
- }
- }
-
- public static void SetSeparatorSlotNames (SkeletonRenderer skeletonRenderer, string[] newSlotNames) {
- var field = SpineInspectorUtility.GetNonPublicField(typeof(SkeletonRenderer), SeparatorSlotNamesFieldName);
- field.SetValue(skeletonRenderer, newSlotNames);
- }
-
- public static string[] GetSeparatorSlotNames (SkeletonRenderer skeletonRenderer) {
- var field = SpineInspectorUtility.GetNonPublicField(typeof(SkeletonRenderer), SeparatorSlotNamesFieldName);
- return field.GetValue(skeletonRenderer) as string[];
- }
-
- public static void SeparatorsField (SerializedProperty separatorSlotNames) {
- bool multi = separatorSlotNames.serializedObject.isEditingMultipleObjects;
- bool hasTerminalSlot = false;
- if (!multi) {
- var sr = separatorSlotNames.serializedObject.targetObject as ISkeletonComponent;
- var skeleton = sr.Skeleton;
- int lastSlot = skeleton.Slots.Count - 1;
- if (skeleton != null) {
- for (int i = 0, n = separatorSlotNames.arraySize; i < n; i++) {
- int index = skeleton.FindSlotIndex(separatorSlotNames.GetArrayElementAtIndex(i).stringValue);
- if (index == 0 || index == lastSlot) {
- hasTerminalSlot = true;
- break;
- }
- }
- }
- }
-
- string terminalSlotWarning = hasTerminalSlot ? " (!)" : "";
-
- using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) {
- const string SeparatorsDescription = "Stored names of slots where the Skeleton's render will be split into different batches. This is used by separate components that split the render into different MeshRenderers or GameObjects.";
- if (separatorSlotNames.isExpanded) {
- EditorGUILayout.PropertyField(separatorSlotNames, SpineInspectorUtility.TempContent(separatorSlotNames.displayName + terminalSlotWarning, Icons.slotRoot, SeparatorsDescription), true);
- GUILayout.BeginHorizontal();
- GUILayout.FlexibleSpace();
- if (GUILayout.Button("+", GUILayout.MaxWidth(28f), GUILayout.MaxHeight(15f))) {
- separatorSlotNames.arraySize++;
- }
- GUILayout.EndHorizontal();
-
- EditorGUILayout.Space();
- } else
- EditorGUILayout.PropertyField(separatorSlotNames, new GUIContent(separatorSlotNames.displayName + string.Format("{0} [{1}]", terminalSlotWarning, separatorSlotNames.arraySize), SeparatorsDescription), true);
- }
- }
-
- public void MaskMaterialsEditingField(ref bool wasSetRequested, ref bool wasDeleteRequested,
- SerializedProperty maskMaterials, GUIContent label,
- bool differentMaskModesSelected, bool allowDelete, bool isActiveMaterial) {
- using (new EditorGUILayout.HorizontalScope()) {
-
- EditorGUILayout.LabelField(label, isActiveMaterial ? EditorStyles.boldLabel : EditorStyles.label, GUILayout.MinWidth(80f), GUILayout.MaxWidth(140));
- EditorGUILayout.LabelField(maskMaterials.hasMultipleDifferentValues ? "-" : maskMaterials.arraySize.ToString(), EditorStyles.miniLabel, GUILayout.Width(42f));
-
- bool enableSetButton = differentMaskModesSelected || maskMaterials.arraySize == 0;
- bool enableClearButtons = differentMaskModesSelected || (maskMaterials.arraySize != 0 && !isActiveMaterial);
-
- EditorGUI.BeginDisabledGroup(!enableSetButton);
- if (GUILayout.Button(SetMaterialButtonLabel, EditorStyles.miniButtonLeft, GUILayout.Width(46f))) {
- wasSetRequested = true;
- }
- EditorGUI.EndDisabledGroup();
-
- EditorGUI.BeginDisabledGroup(!enableClearButtons);
- {
- if (GUILayout.Button(ClearMaterialButtonLabel, allowDelete ? EditorStyles.miniButtonMid : EditorStyles.miniButtonRight, GUILayout.Width(46f))) {
- maskMaterials.ClearArray();
- }
- else if (allowDelete && GUILayout.Button(DeleteMaterialButtonLabel, EditorStyles.miniButtonRight, GUILayout.Width(46f))) {
- wasDeleteRequested = true;
- }
- if (!allowDelete)
- GUILayout.Space(46f);
- }
- EditorGUI.EndDisabledGroup();
- }
- }
-
- void HandleSkinChange() {
- if (!Application.isPlaying && Event.current.type == EventType.Layout && !initialSkinName.hasMultipleDifferentValues) {
- bool mismatchDetected = false;
- string newSkinName = initialSkinName.stringValue;
- foreach (var o in targets) {
- mismatchDetected |= UpdateIfSkinMismatch((SkeletonRenderer)o, newSkinName);
- }
-
- if (mismatchDetected) {
- mismatchDetected = false;
- UnityEditorInternal.InternalEditorUtility.RepaintAllViews();
- }
- }
- }
-
- static bool UpdateIfSkinMismatch (SkeletonRenderer skeletonRenderer, string componentSkinName) {
- if (!skeletonRenderer.valid || skeletonRenderer.EditorSkipSkinSync) return false;
-
- var skin = skeletonRenderer.Skeleton.Skin;
- string skeletonSkinName = skin != null ? skin.Name : null;
- bool defaultCase = skin == null && string.IsNullOrEmpty(componentSkinName);
- bool fieldMatchesSkin = defaultCase || string.Equals(componentSkinName, skeletonSkinName, System.StringComparison.Ordinal);
-
- if (!fieldMatchesSkin) {
- Skin skinToSet = string.IsNullOrEmpty(componentSkinName) ? null : skeletonRenderer.Skeleton.Data.FindSkin(componentSkinName);
- skeletonRenderer.Skeleton.SetSkin(skinToSet);
- skeletonRenderer.Skeleton.SetSlotsToSetupPose();
-
- // Note: the UpdateIfSkinMismatch concept shall be replaced with e.g. an OnValidate based
- // solution or in a separate commit. The current solution does not repaint the Game view because
- // it is first applying values and in the next editor pass is calling this skin-changing method.
- if (skeletonRenderer is SkeletonAnimation)
- ((SkeletonAnimation) skeletonRenderer).Update(0f);
- else if (skeletonRenderer is SkeletonMecanim)
- ((SkeletonMecanim) skeletonRenderer).Update();
-
- skeletonRenderer.LateUpdate();
- return true;
- }
- return false;
- }
-
- bool AreAnyMaskMaterialsMissing() {
- #if BUILT_IN_SPRITE_MASK_COMPONENT
- foreach (var o in targets) {
- var component = (SkeletonRenderer)o;
- if (!component.valid)
- continue;
- if (SpineMaskUtilities.AreMaskMaterialsMissing(component))
- return true;
- }
- #endif
- return false;
- }
-
- #if BUILT_IN_SPRITE_MASK_COMPONENT
- static void EditorSetMaskMaterials(SkeletonRenderer component, SpriteMaskInteraction maskType)
- {
- if (component == null) return;
- if (!SpineEditorUtilities.SkeletonDataAssetIsValid(component.SkeletonDataAsset)) return;
- SpineMaskUtilities.EditorInitMaskMaterials(component, component.maskMaterials, maskType);
- }
-
- static void EditorDeleteMaskMaterials(SkeletonRenderer component, SpriteMaskInteraction maskType) {
- if (component == null) return;
- if (!SpineEditorUtilities.SkeletonDataAssetIsValid(component.SkeletonDataAsset)) return;
- SpineMaskUtilities.EditorDeleteMaskMaterials(component.maskMaterials, maskType);
- }
- #endif
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererInspector.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererInspector.cs.meta
deleted file mode 100644
index d7791c6..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererInspector.cs.meta
+++ /dev/null
@@ -1,10 +0,0 @@
-fileFormatVersion: 2
-guid: d0fc5db9788bce4418ad3252d43faa8a
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRootMotionBaseInspector.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRootMotionBaseInspector.cs
deleted file mode 100644
index 8314eb0..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRootMotionBaseInspector.cs
+++ /dev/null
@@ -1,113 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using UnityEditor;
-using UnityEngine;
-
-namespace Spine.Unity.Editor {
- [CustomEditor(typeof(SkeletonRootMotionBase))]
- [CanEditMultipleObjects]
- public class SkeletonRootMotionBaseInspector : UnityEditor.Editor {
- protected SerializedProperty rootMotionBoneName;
- protected SerializedProperty transformPositionX;
- protected SerializedProperty transformPositionY;
- protected SerializedProperty rootMotionScaleX;
- protected SerializedProperty rootMotionScaleY;
- protected SerializedProperty rootMotionTranslateXPerY;
- protected SerializedProperty rootMotionTranslateYPerX;
- protected SerializedProperty rigidBody2D;
- protected SerializedProperty rigidBody;
-
- protected GUIContent rootMotionBoneNameLabel;
- protected GUIContent transformPositionXLabel;
- protected GUIContent transformPositionYLabel;
- protected GUIContent rootMotionScaleXLabel;
- protected GUIContent rootMotionScaleYLabel;
- protected GUIContent rootMotionTranslateXPerYLabel;
- protected GUIContent rootMotionTranslateYPerXLabel;
- protected GUIContent rigidBody2DLabel;
- protected GUIContent rigidBodyLabel;
-
- protected virtual void OnEnable () {
-
- rootMotionBoneName = serializedObject.FindProperty("rootMotionBoneName");
- transformPositionX = serializedObject.FindProperty("transformPositionX");
- transformPositionY = serializedObject.FindProperty("transformPositionY");
- rootMotionScaleX = serializedObject.FindProperty("rootMotionScaleX");
- rootMotionScaleY = serializedObject.FindProperty("rootMotionScaleY");
- rootMotionTranslateXPerY = serializedObject.FindProperty("rootMotionTranslateXPerY");
- rootMotionTranslateYPerX = serializedObject.FindProperty("rootMotionTranslateYPerX");
- rigidBody2D = serializedObject.FindProperty("rigidBody2D");
- rigidBody = serializedObject.FindProperty("rigidBody");
-
- rootMotionBoneNameLabel = new UnityEngine.GUIContent("Root Motion Bone", "The bone to take the motion from.");
- transformPositionXLabel = new UnityEngine.GUIContent("X", "Root transform position (X)");
- transformPositionYLabel = new UnityEngine.GUIContent("Y", "Use the Y-movement of the bone.");
- rootMotionScaleXLabel = new UnityEngine.GUIContent("Root Motion Scale (X)", "Scale applied to the horizontal root motion delta. Can be used for delta compensation to e.g. stretch a jump to the desired distance.");
- rootMotionScaleYLabel = new UnityEngine.GUIContent("Root Motion Scale (Y)", "Scale applied to the vertical root motion delta. Can be used for delta compensation to e.g. stretch a jump to the desired distance.");
- rootMotionTranslateXPerYLabel = new UnityEngine.GUIContent("Root Motion Translate (X)", "Added X translation per root motion Y delta. Can be used for delta compensation when scaling is not enough, to e.g. offset a horizontal jump to a vertically different goal.");
- rootMotionTranslateYPerXLabel = new UnityEngine.GUIContent("Root Motion Translate (Y)", "Added Y translation per root motion X delta. Can be used for delta compensation when scaling is not enough, to e.g. offset a horizontal jump to a vertically different goal.");
- rigidBody2DLabel = new UnityEngine.GUIContent("Rigidbody2D",
- "Optional Rigidbody2D: Assign a Rigidbody2D here if you want " +
- " to apply the root motion to the rigidbody instead of the Transform." +
- "\n\n" +
- "Note that animation and physics updates are not always in sync." +
- "Some jitter may result at certain framerates.");
- rigidBodyLabel = new UnityEngine.GUIContent("Rigidbody",
- "Optional Rigidbody: Assign a Rigidbody here if you want " +
- " to apply the root motion to the rigidbody instead of the Transform." +
- "\n\n" +
- "Note that animation and physics updates are not always in sync." +
- "Some jitter may result at certain framerates.");
- }
-
- public override void OnInspectorGUI () {
- MainPropertyFields();
- OptionalPropertyFields();
- serializedObject.ApplyModifiedProperties();
- }
-
- protected virtual void MainPropertyFields () {
- EditorGUILayout.PropertyField(rootMotionBoneName, rootMotionBoneNameLabel);
- EditorGUILayout.PropertyField(transformPositionX, transformPositionXLabel);
- EditorGUILayout.PropertyField(transformPositionY, transformPositionYLabel);
-
- EditorGUILayout.PropertyField(rootMotionScaleX, rootMotionScaleXLabel);
- EditorGUILayout.PropertyField(rootMotionScaleY, rootMotionScaleYLabel);
-
- EditorGUILayout.PropertyField(rootMotionTranslateXPerY, rootMotionTranslateXPerYLabel);
- EditorGUILayout.PropertyField(rootMotionTranslateYPerX, rootMotionTranslateYPerXLabel);
- }
-
- protected virtual void OptionalPropertyFields () {
- EditorGUILayout.PropertyField(rigidBody2D, rigidBody2DLabel);
- EditorGUILayout.PropertyField(rigidBody, rigidBodyLabel);
- }
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRootMotionBaseInspector.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRootMotionBaseInspector.cs.meta
deleted file mode 100644
index 0304448..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRootMotionBaseInspector.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: f2cba83baf6afdf44a996e40017c6325
-timeCreated: 1593175106
-licenseType: Pro
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRootMotionInspector.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRootMotionInspector.cs
deleted file mode 100644
index 2c96506..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRootMotionInspector.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using UnityEditor;
-using UnityEngine;
-
-namespace Spine.Unity.Editor {
- [CustomEditor(typeof(SkeletonRootMotion))]
- [CanEditMultipleObjects]
- public class SkeletonRootMotionInspector : SkeletonRootMotionBaseInspector {
- protected SerializedProperty animationTrackFlags;
- protected GUIContent animationTrackFlagsLabel;
-
- string[] TrackNames;
-
- protected override void OnEnable () {
- base.OnEnable();
-
- animationTrackFlags = serializedObject.FindProperty("animationTrackFlags");
- animationTrackFlagsLabel = new UnityEngine.GUIContent("Animation Tracks",
- "Animation tracks to apply root motion at. Defaults to the first" +
- " animation track (index 0).");
- }
-
- override public void OnInspectorGUI () {
-
- base.MainPropertyFields();
- AnimationTracksPropertyField();
-
- base.OptionalPropertyFields();
- serializedObject.ApplyModifiedProperties();
- }
-
- protected void AnimationTracksPropertyField () {
-
- if (TrackNames == null) {
- InitTrackNames();
-
- }
-
- animationTrackFlags.intValue = EditorGUILayout.MaskField(
- animationTrackFlagsLabel, animationTrackFlags.intValue, TrackNames);
- }
-
- protected void InitTrackNames () {
- int numEntries = 32;
- TrackNames = new string[numEntries];
- for (int i = 0; i < numEntries; ++i) {
- TrackNames[i] = string.Format("Track {0}", i);
- }
- }
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRootMotionInspector.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRootMotionInspector.cs.meta
deleted file mode 100644
index 7c357a8..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonRootMotionInspector.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: e4836100aed984c4a9af11d39c63cb6b
-timeCreated: 1593183609
-licenseType: Pro
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityBoneInspector.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityBoneInspector.cs
deleted file mode 100644
index b4e12b6..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityBoneInspector.cs
+++ /dev/null
@@ -1,541 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-// Contributed by: Mitch Thompson
-
-#if UNITY_2019_2_OR_NEWER
-#define HINGE_JOINT_NEW_BEHAVIOUR
-#endif
-
-using UnityEngine;
-using UnityEditor;
-using System.Collections.Generic;
-using Spine;
-
-namespace Spine.Unity.Editor {
- using Icons = SpineEditorUtilities.Icons;
-
- [CustomEditor(typeof(SkeletonUtilityBone)), CanEditMultipleObjects]
- public class SkeletonUtilityBoneInspector : UnityEditor.Editor {
- SerializedProperty mode, boneName, zPosition, position, rotation, scale, overrideAlpha, hierarchy, parentReference;
- GUIContent hierarchyLabel;
-
- //multi selected flags
- bool containsFollows, containsOverrides, multiObject;
-
- //single selected helpers
- SkeletonUtilityBone utilityBone;
- SkeletonUtility skeletonUtility;
- bool canCreateHingeChain = false;
-
- Dictionary> boundingBoxTable = new Dictionary>();
-
- void OnEnable () {
- mode = this.serializedObject.FindProperty("mode");
- boneName = this.serializedObject.FindProperty("boneName");
- zPosition = this.serializedObject.FindProperty("zPosition");
- position = this.serializedObject.FindProperty("position");
- rotation = this.serializedObject.FindProperty("rotation");
- scale = this.serializedObject.FindProperty("scale");
- overrideAlpha = this.serializedObject.FindProperty("overrideAlpha");
- hierarchy = this.serializedObject.FindProperty("hierarchy");
- hierarchyLabel = new GUIContent("Skeleton Utility Parent");
- parentReference = this.serializedObject.FindProperty("parentReference");
-
- utilityBone = (SkeletonUtilityBone)target;
- skeletonUtility = utilityBone.hierarchy;
- EvaluateFlags();
-
- if (!utilityBone.valid && skeletonUtility != null) {
- if (skeletonUtility.skeletonRenderer != null)
- skeletonUtility.skeletonRenderer.Initialize(false);
- if (skeletonUtility.skeletonGraphic != null)
- skeletonUtility.skeletonGraphic.Initialize(false);
- }
-
- canCreateHingeChain = CanCreateHingeChain();
- boundingBoxTable.Clear();
-
- if (multiObject) return;
- if (utilityBone.bone == null) return;
-
- var skeleton = utilityBone.bone.Skeleton;
- int slotCount = skeleton.Slots.Count;
- Skin skin = skeleton.Skin;
- if (skeleton.Skin == null)
- skin = skeleton.Data.DefaultSkin;
-
- for(int i = 0; i < slotCount; i++){
- Slot slot = skeletonUtility.Skeleton.Slots.Items[i];
- if (slot.Bone == utilityBone.bone) {
- var slotAttachments = new List();
- int slotIndex = skeleton.FindSlotIndex(slot.Data.Name);
- skin.GetAttachments(slotIndex, slotAttachments);
-
- var boundingBoxes = new List();
- foreach (var att in slotAttachments) {
- var boundingBoxAttachment = att.Attachment as BoundingBoxAttachment;
- if (boundingBoxAttachment != null)
- boundingBoxes.Add(boundingBoxAttachment);
- }
-
- if (boundingBoxes.Count > 0)
- boundingBoxTable.Add(slot, boundingBoxes);
- }
- }
- }
-
- void EvaluateFlags () {
- if (Selection.objects.Length == 1) {
- containsFollows = utilityBone.mode == SkeletonUtilityBone.Mode.Follow;
- containsOverrides = utilityBone.mode == SkeletonUtilityBone.Mode.Override;
- } else {
- int boneCount = 0;
- foreach (Object o in Selection.objects) {
- var go = o as GameObject;
- if (go != null) {
- SkeletonUtilityBone sub = go.GetComponent();
- if (sub != null) {
- boneCount++;
- containsFollows |= (sub.mode == SkeletonUtilityBone.Mode.Follow);
- containsOverrides |= (sub.mode == SkeletonUtilityBone.Mode.Override);
- }
- }
- }
-
- multiObject |= (boneCount > 1);
- }
- }
-
- public override void OnInspectorGUI () {
- serializedObject.Update();
-
- EditorGUI.BeginChangeCheck();
- EditorGUILayout.PropertyField(mode);
- if (EditorGUI.EndChangeCheck()) {
- containsOverrides = mode.enumValueIndex == 1;
- containsFollows = mode.enumValueIndex == 0;
- }
-
- using (new EditorGUI.DisabledGroupScope(multiObject)) {
- string str = boneName.stringValue;
- if (str == "")
- str = "";
- if (multiObject)
- str = "";
-
- using (new GUILayout.HorizontalScope()) {
- EditorGUILayout.PrefixLabel("Bone");
- if (GUILayout.Button(str, EditorStyles.popup)) {
- BoneSelectorContextMenu(str, ((SkeletonUtilityBone)target).hierarchy.Skeleton.Bones, "", TargetBoneSelected);
- }
- }
- }
-
- EditorGUILayout.PropertyField(zPosition);
- EditorGUILayout.PropertyField(position);
- EditorGUILayout.PropertyField(rotation);
- EditorGUILayout.PropertyField(scale);
-
- using (new EditorGUI.DisabledGroupScope(containsFollows)) {
- EditorGUILayout.PropertyField(overrideAlpha);
- EditorGUILayout.PropertyField(parentReference);
- EditorGUILayout.PropertyField(hierarchy, hierarchyLabel);
- }
-
- EditorGUILayout.Space();
-
- using (new GUILayout.HorizontalScope()) {
- EditorGUILayout.Space();
- using (new EditorGUI.DisabledGroupScope(multiObject || !utilityBone.valid || utilityBone.bone == null || utilityBone.bone.Children.Count == 0)) {
- if (GUILayout.Button(SpineInspectorUtility.TempContent("Add Child Bone", Icons.bone), GUILayout.MinWidth(120), GUILayout.Height(24)))
- BoneSelectorContextMenu("", utilityBone.bone.Children, "", SpawnChildBoneSelected);
- }
- using (new EditorGUI.DisabledGroupScope(multiObject || !utilityBone.valid || utilityBone.bone == null || containsOverrides)) {
- if (GUILayout.Button(SpineInspectorUtility.TempContent("Add Override", Icons.poseBones), GUILayout.MinWidth(120), GUILayout.Height(24)))
- SpawnOverride();
- }
- EditorGUILayout.Space();
- }
- EditorGUILayout.Space();
- using (new GUILayout.HorizontalScope()) {
- EditorGUILayout.Space();
- using (new EditorGUI.DisabledGroupScope(multiObject || !utilityBone.valid || !canCreateHingeChain)) {
- if (GUILayout.Button(SpineInspectorUtility.TempContent("Create 3D Hinge Chain", Icons.hingeChain), GUILayout.MinWidth(120), GUILayout.Height(24)))
- CreateHingeChain();
- if (GUILayout.Button(SpineInspectorUtility.TempContent("Create 2D Hinge Chain", Icons.hingeChain), GUILayout.MinWidth(120), GUILayout.Height(24)))
- CreateHingeChain2D();
- }
- EditorGUILayout.Space();
- }
-
- using (new EditorGUI.DisabledGroupScope(multiObject || boundingBoxTable.Count == 0)) {
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Bounding Boxes", Icons.boundingBox), EditorStyles.boldLabel);
-
- foreach (var entry in boundingBoxTable){
- Slot slot = entry.Key;
- var boundingBoxes = entry.Value;
-
- EditorGUI.indentLevel++;
- EditorGUILayout.LabelField(slot.Data.Name);
- EditorGUI.indentLevel++;
- {
- foreach (var box in boundingBoxes) {
- using (new GUILayout.HorizontalScope()) {
- GUILayout.Space(30);
- string buttonLabel = box.IsWeighted() ? box.Name + " (!)" : box.Name;
- if (GUILayout.Button(buttonLabel, GUILayout.Width(200))) {
- utilityBone.bone.Skeleton.UpdateWorldTransform();
- var bbTransform = utilityBone.transform.Find("[BoundingBox]" + box.Name); // Use FindChild in older versions of Unity.
- if (bbTransform != null) {
- var originalCollider = bbTransform.GetComponent();
- if (originalCollider != null)
- SkeletonUtility.SetColliderPointsLocal(originalCollider, slot, box);
- else
- SkeletonUtility.AddBoundingBoxAsComponent(box, slot, bbTransform.gameObject);
- } else {
- var newPolygonCollider = SkeletonUtility.AddBoundingBoxGameObject(null, box, slot, utilityBone.transform);
- bbTransform = newPolygonCollider.transform;
- }
- EditorGUIUtility.PingObject(bbTransform);
- }
- }
-
- }
- }
- EditorGUI.indentLevel--;
- EditorGUI.indentLevel--;
- }
- }
-
- BoneFollowerInspector.RecommendRigidbodyButton(utilityBone);
-
- serializedObject.ApplyModifiedProperties();
- }
-
- static void BoneSelectorContextMenu (string current, ExposedList bones, string topValue, GenericMenu.MenuFunction2 callback) {
- var menu = new GenericMenu();
-
- if (topValue != "")
- menu.AddItem(new GUIContent(topValue), current == topValue, callback, null);
-
- for (int i = 0; i < bones.Count; i++)
- menu.AddItem(new GUIContent(bones.Items[i].Data.Name), bones.Items[i].Data.Name == current, callback, bones.Items[i]);
-
- menu.ShowAsContext();
- }
-
- void TargetBoneSelected (object obj) {
- if (obj == null) {
- boneName.stringValue = "";
- serializedObject.ApplyModifiedProperties();
- } else {
- var bone = (Bone)obj;
- boneName.stringValue = bone.Data.Name;
- serializedObject.ApplyModifiedProperties();
- utilityBone.Reset();
- }
- }
-
- void SpawnChildBoneSelected (object obj) {
- if (obj == null) {
- // Add recursively
- foreach (var bone in utilityBone.bone.Children) {
- GameObject go = skeletonUtility.SpawnBoneRecursively(bone, utilityBone.transform, utilityBone.mode, utilityBone.position, utilityBone.rotation, utilityBone.scale);
- SkeletonUtilityBone[] newUtilityBones = go.GetComponentsInChildren();
- foreach (SkeletonUtilityBone utilBone in newUtilityBones)
- SkeletonUtilityInspector.AttachIcon(utilBone);
- }
- } else {
- var bone = (Bone)obj;
- GameObject go = skeletonUtility.SpawnBone(bone, utilityBone.transform, utilityBone.mode, utilityBone.position, utilityBone.rotation, utilityBone.scale);
- SkeletonUtilityInspector.AttachIcon(go.GetComponent());
- Selection.activeGameObject = go;
- EditorGUIUtility.PingObject(go);
- }
- }
-
- void SpawnOverride () {
- GameObject go = skeletonUtility.SpawnBone(utilityBone.bone, utilityBone.transform.parent, SkeletonUtilityBone.Mode.Override, utilityBone.position, utilityBone.rotation, utilityBone.scale);
- go.name = go.name + " [Override]";
- SkeletonUtilityInspector.AttachIcon(go.GetComponent());
- Selection.activeGameObject = go;
- EditorGUIUtility.PingObject(go);
- }
-
- bool CanCreateHingeChain () {
- if (utilityBone == null)
- return false;
- if (utilityBone.GetComponent() != null || utilityBone.GetComponent() != null)
- return false;
- if (utilityBone.bone != null && utilityBone.bone.Children.Count == 0)
- return false;
-
- var rigidbodies = utilityBone.GetComponentsInChildren();
- var rigidbodies2D = utilityBone.GetComponentsInChildren();
- return rigidbodies.Length <= 0 && rigidbodies2D.Length <= 0;
- }
-
- void CreateHingeChain2D () {
- var kinematicParentUtilityBone = utilityBone.transform.parent.GetComponent();
- if (kinematicParentUtilityBone == null) {
- UnityEditor.EditorUtility.DisplayDialog("No parent SkeletonUtilityBone found!", "Please select the first physically moving chain node, having a parent GameObject with a SkeletonUtilityBone component attached.", "OK");
- return;
- }
-
- float mass = 10;
- const float rotationLimit = 20.0f;
-
- SetSkeletonUtilityToFlipByRotation();
-
- kinematicParentUtilityBone.mode = SkeletonUtilityBone.Mode.Follow;
- kinematicParentUtilityBone.position = kinematicParentUtilityBone.rotation = kinematicParentUtilityBone.scale = kinematicParentUtilityBone.zPosition = true;
-
- GameObject commonParentObject = new GameObject(skeletonUtility.name + " HingeChain Parent " + utilityBone.name);
- var commonParentActivateOnFlip = commonParentObject.AddComponent();
- commonParentActivateOnFlip.skeletonRenderer = skeletonUtility.skeletonRenderer;
- commonParentActivateOnFlip.skeletonGraphic = skeletonUtility.skeletonGraphic;
-
- // HingeChain Parent
- // Needs to be on top hierarchy level (not attached to the moving skeleton at least) for physics to apply proper momentum.
- GameObject normalChainParentObject = new GameObject("HingeChain");
- normalChainParentObject.transform.SetParent(commonParentObject.transform);
- commonParentActivateOnFlip.activeOnNormalX = normalChainParentObject;
-
- //var followRotationComponent = normalChainParentObject.AddComponent();
- //followRotationComponent.reference = skeletonUtility.boneRoot;
-
- // Follower Kinematic Rigidbody
- GameObject followerKinematicObject = new GameObject(kinematicParentUtilityBone.name + " Follower");
- followerKinematicObject.transform.parent = normalChainParentObject.transform;
- var followerRigidbody = followerKinematicObject.AddComponent();
- followerRigidbody.mass = mass;
- followerRigidbody.isKinematic = true;
- followerKinematicObject.AddComponent().reference = kinematicParentUtilityBone.transform;
- followerKinematicObject.transform.position = kinematicParentUtilityBone.transform.position;
- followerKinematicObject.transform.rotation = kinematicParentUtilityBone.transform.rotation;
-
- // Child Bones
- var utilityBones = utilityBone.GetComponentsInChildren();
- var childBoneParentReference = followerKinematicObject.transform;
- for (int i = 0; i < utilityBones.Length; ++i) {
- var childBone = utilityBones[i];
- mass *= 0.75f;
- childBone.parentReference = (i == 0) ? kinematicParentUtilityBone.transform : childBoneParentReference;
- childBone.transform.SetParent(normalChainParentObject.transform, true); // we need a flat hierarchy of all Joint objects in Unity.
- AttachRigidbodyAndCollider2D(childBone);
- childBone.mode = SkeletonUtilityBone.Mode.Override;
- childBone.scale = childBone.position = childBone.zPosition = false;
-
- HingeJoint2D joint = childBone.gameObject.AddComponent();
- joint.connectedBody = childBoneParentReference.GetComponent();
- joint.useLimits = true;
- ApplyJoint2DAngleLimits(joint, rotationLimit, childBoneParentReference, childBone.transform);
-
- childBone.GetComponent().mass = mass;
- childBoneParentReference = childBone.transform;
- }
-
- Duplicate2DHierarchyForFlippedChains(normalChainParentObject, commonParentActivateOnFlip, skeletonUtility.transform, rotationLimit);
- UnityEditor.Selection.activeGameObject = commonParentObject;
- }
-
- void ApplyJoint2DAngleLimits (HingeJoint2D joint, float rotationLimit, Transform parentBone, Transform bone) {
- #if HINGE_JOINT_NEW_BEHAVIOUR
- float referenceAngle = (parentBone.eulerAngles.z - bone.eulerAngles.z + 360f) % 360f;
- float minAngle = referenceAngle - rotationLimit;
- float maxAngle = referenceAngle + rotationLimit;
- if (maxAngle > 270f) {
- minAngle -= 360f;
- maxAngle -= 360f;
- }
- if (minAngle < -90f) {
- minAngle += 360f;
- maxAngle += 360f;
- }
-#else
- float minAngle = - rotationLimit;
- float maxAngle = rotationLimit;
-#endif
- joint.limits = new JointAngleLimits2D {
- min = minAngle,
- max = maxAngle
- };
- }
-
- void Duplicate2DHierarchyForFlippedChains (GameObject normalChainParentObject, ActivateBasedOnFlipDirection commonParentActivateOnFlip,
- Transform skeletonUtilityRoot, float rotationLimit) {
-
- GameObject mirroredChain = GameObject.Instantiate(normalChainParentObject, normalChainParentObject.transform.position,
- normalChainParentObject.transform.rotation, commonParentActivateOnFlip.transform);
- mirroredChain.name = normalChainParentObject.name + " FlippedX";
-
- commonParentActivateOnFlip.activeOnFlippedX = mirroredChain;
-
- var followerKinematicObject = mirroredChain.GetComponentInChildren();
- followerKinematicObject.followFlippedX = true;
- FlipBone2DHorizontal(followerKinematicObject.transform, skeletonUtilityRoot);
-
- var childBoneJoints = mirroredChain.GetComponentsInChildren();
- Transform prevRotatedChild = null;
- Transform parentTransformForAngles = followerKinematicObject.transform;
- for (int i = 0; i < childBoneJoints.Length; ++i) {
- var joint = childBoneJoints[i];
- FlipBone2DHorizontal(joint.transform, skeletonUtilityRoot);
- ApplyJoint2DAngleLimits(joint, rotationLimit, parentTransformForAngles, joint.transform);
-
- GameObject rotatedChild = GameObject.Instantiate(joint.gameObject, joint.transform, true);
- rotatedChild.name = joint.name + " rotated";
- var rotationEulerAngles = rotatedChild.transform.localEulerAngles;
- rotationEulerAngles.x = 180;
- rotatedChild.transform.localEulerAngles = rotationEulerAngles;
- DestroyImmediate(rotatedChild.GetComponent());
- DestroyImmediate(rotatedChild.GetComponent());
- DestroyImmediate(rotatedChild.GetComponent());
-
- DestroyImmediate(joint.gameObject.GetComponent());
-
- if (i > 0) {
- var utilityBone = rotatedChild.GetComponent();
- utilityBone.parentReference = prevRotatedChild;
- }
- prevRotatedChild = rotatedChild.transform;
- parentTransformForAngles = joint.transform;
- }
-
- mirroredChain.SetActive(false);
- }
-
- void FlipBone2DHorizontal(Transform bone, Transform mirrorPosition) {
- Vector3 position = bone.position;
- position.x = 2 * mirrorPosition.position.x - position.x; // = mirrorPosition + (mirrorPosition - bone.position)
- bone.position = position;
-
- Vector3 boneZ = bone.forward;
- Vector3 boneX = bone.right;
- boneX.x *= -1;
-
- bone.rotation = Quaternion.LookRotation(boneZ, Vector3.Cross(boneZ, boneX));
- }
-
- void CreateHingeChain () {
- var kinematicParentUtilityBone = utilityBone.transform.parent.GetComponent();
- if (kinematicParentUtilityBone == null) {
- UnityEditor.EditorUtility.DisplayDialog("No parent SkeletonUtilityBone found!", "Please select the first physically moving chain node, having a parent GameObject with a SkeletonUtilityBone component attached.", "OK");
- return;
- }
-
- SetSkeletonUtilityToFlipByRotation();
-
- kinematicParentUtilityBone.mode = SkeletonUtilityBone.Mode.Follow;
- kinematicParentUtilityBone.position = kinematicParentUtilityBone.rotation = kinematicParentUtilityBone.scale = kinematicParentUtilityBone.zPosition = true;
-
- // HingeChain Parent
- // Needs to be on top hierarchy level (not attached to the moving skeleton at least) for physics to apply proper momentum.
- GameObject chainParentObject = new GameObject(skeletonUtility.name + " HingeChain Parent " + utilityBone.name);
- var followRotationComponent = chainParentObject.AddComponent();
- followRotationComponent.reference = skeletonUtility.boneRoot;
-
- // Follower Kinematic Rigidbody
- GameObject followerKinematicObject = new GameObject(kinematicParentUtilityBone.name + " Follower");
- followerKinematicObject.transform.parent = chainParentObject.transform;
- var followerRigidbody = followerKinematicObject.AddComponent();
- followerRigidbody.mass = 10;
- followerRigidbody.isKinematic = true;
- followerKinematicObject.AddComponent().reference = kinematicParentUtilityBone.transform;
- followerKinematicObject.transform.position = kinematicParentUtilityBone.transform.position;
- followerKinematicObject.transform.rotation = kinematicParentUtilityBone.transform.rotation;
-
- // Child Bones
- var utilityBones = utilityBone.GetComponentsInChildren();
- var childBoneParentReference = followerKinematicObject.transform;
- foreach (var childBone in utilityBones) {
- childBone.parentReference = childBoneParentReference;
- childBone.transform.SetParent(chainParentObject.transform, true); // we need a flat hierarchy of all Joint objects in Unity.
- AttachRigidbodyAndCollider(childBone);
- childBone.mode = SkeletonUtilityBone.Mode.Override;
-
- HingeJoint joint = childBone.gameObject.AddComponent();
- joint.axis = Vector3.forward;
- joint.connectedBody = childBoneParentReference.GetComponent();
- joint.useLimits = true;
- joint.limits = new JointLimits {
- min = -20,
- max = 20
- };
- childBone.GetComponent().mass = childBoneParentReference.transform.GetComponent().mass * 0.75f;
-
- childBoneParentReference = childBone.transform;
- }
- UnityEditor.Selection.activeGameObject = chainParentObject;
- }
-
- void SetSkeletonUtilityToFlipByRotation () {
- if (!skeletonUtility.flipBy180DegreeRotation) {
- skeletonUtility.flipBy180DegreeRotation = true;
- Debug.Log("Set SkeletonUtility " + skeletonUtility.name + " to flip by rotation instead of negative scale (required).", skeletonUtility);
- }
- }
-
- static void AttachRigidbodyAndCollider (SkeletonUtilityBone utilBone, bool enableCollider = false) {
- if (utilBone.GetComponent() == null) {
- if (utilBone.bone.Data.Length == 0) {
- SphereCollider sphere = utilBone.gameObject.AddComponent();
- sphere.radius = 0.1f;
- sphere.enabled = enableCollider;
- } else {
- float length = utilBone.bone.Data.Length;
- BoxCollider box = utilBone.gameObject.AddComponent();
- box.size = new Vector3(length, length / 3f, 0.2f);
- box.center = new Vector3(length / 2f, 0, 0);
- box.enabled = enableCollider;
- }
- }
- utilBone.gameObject.AddComponent();
- }
-
- static void AttachRigidbodyAndCollider2D(SkeletonUtilityBone utilBone, bool enableCollider = false) {
- if (utilBone.GetComponent() == null) {
- if (utilBone.bone.Data.Length == 0) {
- var sphere = utilBone.gameObject.AddComponent();
- sphere.radius = 0.1f;
- sphere.enabled = enableCollider;
- }
- else {
- float length = utilBone.bone.Data.Length;
- var box = utilBone.gameObject.AddComponent();
- box.size = new Vector3(length, length / 3f, 0.2f);
- box.offset = new Vector3(length / 2f, 0, 0);
- box.enabled = enableCollider;
- }
- }
- utilBone.gameObject.AddComponent();
- }
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityBoneInspector.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityBoneInspector.cs.meta
deleted file mode 100644
index 81de4d6..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityBoneInspector.cs.meta
+++ /dev/null
@@ -1,10 +0,0 @@
-fileFormatVersion: 2
-guid: b3ae20b4bcc31f645afd6f5b64f82473
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityInspector.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityInspector.cs
deleted file mode 100644
index d20f00f..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityInspector.cs
+++ /dev/null
@@ -1,192 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER
-#define NEW_PREFAB_SYSTEM
-#endif
-
-using UnityEngine;
-using UnityEditor;
-using UnityEditor.AnimatedValues;
-using System.Collections.Generic;
-using Spine;
-using System.Reflection;
-
-namespace Spine.Unity.Editor {
- using Icons = SpineEditorUtilities.Icons;
-
- [CustomEditor(typeof(SkeletonUtility))]
- public class SkeletonUtilityInspector : UnityEditor.Editor {
-
- SkeletonUtility skeletonUtility;
- Skeleton skeleton;
- SkeletonRenderer skeletonRenderer;
- SkeletonGraphic skeletonGraphic;
-
-#if !NEW_PREFAB_SYSTEM
- bool isPrefab;
- #endif
-
- readonly GUIContent SpawnHierarchyButtonLabel = new GUIContent("Spawn Hierarchy", Icons.skeleton);
-
- void OnEnable () {
- skeletonUtility = (SkeletonUtility)target;
- skeletonRenderer = skeletonUtility.skeletonRenderer;
- skeletonGraphic = skeletonUtility.skeletonGraphic;
- skeleton = skeletonUtility.Skeleton;
-
- if (skeleton == null) {
- if (skeletonRenderer != null) {
- skeletonRenderer.Initialize(false);
- skeletonRenderer.LateUpdate();
- }
- else if (skeletonGraphic != null) {
- skeletonGraphic.Initialize(false);
- skeletonGraphic.LateUpdate();
- }
- skeleton = skeletonUtility.Skeleton;
- }
-
- if ((skeletonRenderer != null && !skeletonRenderer.valid) ||
- (skeletonGraphic != null && !skeletonGraphic.IsValid)) return;
-
- #if !NEW_PREFAB_SYSTEM
- isPrefab |= PrefabUtility.GetPrefabType(this.target) == PrefabType.Prefab;
- #endif
- }
-
- public override void OnInspectorGUI () {
-
- #if !NEW_PREFAB_SYSTEM
- if (isPrefab) {
- GUILayout.Label(new GUIContent("Cannot edit Prefabs", Icons.warning));
- return;
- }
- #endif
-
- serializedObject.Update();
-
- if ((skeletonRenderer != null && !skeletonRenderer.valid) ||
- (skeletonGraphic != null && !skeletonGraphic.IsValid)) {
- GUILayout.Label(new GUIContent("Spine Component invalid. Check Skeleton Data Asset.", Icons.warning));
- return;
- }
-
- EditorGUILayout.PropertyField(serializedObject.FindProperty("boneRoot"), SpineInspectorUtility.TempContent("Skeleton Root"));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("flipBy180DegreeRotation"), SpineInspectorUtility.TempContent("Flip by Rotation", null,
- "If true, Skeleton.ScaleX and Skeleton.ScaleY are followed " +
- "by 180 degree rotation. If false, negative Transform scale is used. " +
- "Note that using negative scale is consistent with previous behaviour (hence the default), " +
- "however causes serious problems with rigidbodies and physics. Therefore, it is recommended to " +
- "enable this parameter where possible. When creating hinge chains for a chain of skeleton bones " +
- "via SkeletonUtilityBone, it is mandatory to have this parameter enabled."));
-
- bool hasRootBone = skeletonUtility.boneRoot != null;
-
- if (!hasRootBone)
- EditorGUILayout.HelpBox("No hierarchy found. Use Spawn Hierarchy to generate GameObjects for bones.", MessageType.Info);
-
- using (new EditorGUI.DisabledGroupScope(hasRootBone)) {
- if (SpineInspectorUtility.LargeCenteredButton(SpawnHierarchyButtonLabel))
- SpawnHierarchyContextMenu();
- }
-
- if (hasRootBone) {
- if (SpineInspectorUtility.CenteredButton(new GUIContent("Remove Hierarchy"))) {
- Undo.RegisterCompleteObjectUndo(skeletonUtility, "Remove Hierarchy");
- Undo.DestroyObjectImmediate(skeletonUtility.boneRoot.gameObject);
- skeletonUtility.boneRoot = null;
- }
- }
-
- serializedObject.ApplyModifiedProperties();
- }
-
- void SpawnHierarchyContextMenu () {
- var menu = new GenericMenu();
-
- menu.AddItem(new GUIContent("Follow all bones"), false, SpawnFollowHierarchy);
- menu.AddItem(new GUIContent("Follow (Root Only)"), false, SpawnFollowHierarchyRootOnly);
- menu.AddSeparator("");
- menu.AddItem(new GUIContent("Override all bones"), false, SpawnOverrideHierarchy);
- menu.AddItem(new GUIContent("Override (Root Only)"), false, SpawnOverrideHierarchyRootOnly);
-
- menu.ShowAsContext();
- }
-
- public static void AttachIcon (SkeletonUtilityBone boneComponent) {
- Skeleton skeleton = boneComponent.hierarchy.Skeleton;
- Texture2D icon = boneComponent.bone.Data.Length == 0 ? Icons.nullBone : Icons.boneNib;
-
- foreach (IkConstraint c in skeleton.IkConstraints)
- if (c.Target == boneComponent.bone) {
- icon = Icons.constraintNib;
- break;
- }
-
- typeof(EditorGUIUtility).InvokeMember("SetIconForObject", BindingFlags.InvokeMethod | BindingFlags.Static | BindingFlags.NonPublic, null, null, new object[2] {
- boneComponent.gameObject,
- icon
- });
- }
-
- static void AttachIconsToChildren (Transform root) {
- if (root != null) {
- var utilityBones = root.GetComponentsInChildren();
- foreach (var utilBone in utilityBones)
- AttachIcon(utilBone);
- }
- }
-
- void SpawnFollowHierarchy () {
- Undo.RegisterCompleteObjectUndo(skeletonUtility, "Spawn Hierarchy");
- Selection.activeGameObject = skeletonUtility.SpawnHierarchy(SkeletonUtilityBone.Mode.Follow, true, true, true);
- AttachIconsToChildren(skeletonUtility.boneRoot);
- }
-
- void SpawnFollowHierarchyRootOnly () {
- Undo.RegisterCompleteObjectUndo(skeletonUtility, "Spawn Root");
- Selection.activeGameObject = skeletonUtility.SpawnRoot(SkeletonUtilityBone.Mode.Follow, true, true, true);
- AttachIconsToChildren(skeletonUtility.boneRoot);
- }
-
- void SpawnOverrideHierarchy () {
- Undo.RegisterCompleteObjectUndo(skeletonUtility, "Spawn Hierarchy");
- Selection.activeGameObject = skeletonUtility.SpawnHierarchy(SkeletonUtilityBone.Mode.Override, true, true, true);
- AttachIconsToChildren(skeletonUtility.boneRoot);
- }
-
- void SpawnOverrideHierarchyRootOnly () {
- Undo.RegisterCompleteObjectUndo(skeletonUtility, "Spawn Root");
- Selection.activeGameObject = skeletonUtility.SpawnRoot(SkeletonUtilityBone.Mode.Override, true, true, true);
- AttachIconsToChildren(skeletonUtility.boneRoot);
- }
- }
-
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityInspector.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityInspector.cs.meta
deleted file mode 100644
index 44e13b1..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityInspector.cs.meta
+++ /dev/null
@@ -1,10 +0,0 @@
-fileFormatVersion: 2
-guid: a5b90df955eb8c2429ac67c8b2de6c5c
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/GUI/SkeletonDataAsset Icon.png b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/GUI/SkeletonDataAsset Icon.png
deleted file mode 100644
index 61c0f18..0000000
Binary files a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/GUI/SkeletonDataAsset Icon.png and /dev/null differ
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/GUI/SkeletonDataAsset Icon.png.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/GUI/SkeletonDataAsset Icon.png.meta
deleted file mode 100644
index 22239ca..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/GUI/SkeletonDataAsset Icon.png.meta
+++ /dev/null
@@ -1,46 +0,0 @@
-fileFormatVersion: 2
-guid: 68defdbc95b30a74a9ad396bfc9a2277
-TextureImporter:
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 0
- linearTexture: 1
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: .25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- seamlessCubemap: 0
- textureFormat: -3
- maxTextureSize: 1024
- textureSettings:
- filterMode: -1
- aniso: 1
- mipBias: -1
- wrapMode: 1
- nPOTScale: 0
- lightmap: 0
- compressionQuality: 50
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: .5, y: .5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- textureType: 2
- buildTargetSettings: []
- spriteSheet:
- sprites: []
- spritePackingTag:
- userData:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Shaders.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Shaders.meta
deleted file mode 100644
index 007cc76..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Shaders.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 10e0b626d7ae7394a934ee9f2fb81b5a
-folderAsset: yes
-timeCreated: 1527569604
-licenseType: Free
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs
deleted file mode 100644
index a4bf070..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs
+++ /dev/null
@@ -1,1490 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER
-#define NEW_PREFAB_SYSTEM
-#endif
-
-#define SPINE_SKELETONMECANIM
-
-using UnityEngine;
-using UnityEditor;
-using UnityEditorInternal;
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using System.IO;
-using Spine;
-
-namespace Spine.Unity.Editor {
-
- ///
- /// [SUPPORTS]
- /// Linear, Constant, and Bezier Curves*
- /// Inverse Kinematics*
- /// Inherit Rotation
- /// Translate Timeline
- /// Rotate Timeline
- /// Scale Timeline**
- /// Event Timeline***
- /// Attachment Timeline
- ///
- /// RegionAttachment
- /// MeshAttachment (optionally Skinned)
- ///
- /// [LIMITATIONS]
- /// *Bezier Curves are baked into the animation at 60fps and are not realtime. Use bakeIncrement constant to adjust key density if desired.
- /// *Inverse Kinematics is baked into the animation at 60fps and are not realtime. Use bakeIncrement constant to adjust key density if desired.
- /// ***Events may only fire 1 type of data per event in Unity safely so priority to String data if present in Spine key, otherwise a Float is sent whether the Spine key was Int or Float with priority given to Int.
- ///
- /// [DOES NOT SUPPORT]
- /// FFD (Unity does not provide access to BlendShapes with code)
- /// Color Keys (Maybe one day when Unity supports full FBX standard and provides access with code)
- /// Draw Order Keyframes
- ///
- public static class SkeletonBaker {
-
- #region SkeletonMecanim's Mecanim Clips
- #if SPINE_SKELETONMECANIM
- public static void UpdateMecanimClips (SkeletonDataAsset skeletonDataAsset) {
- if (skeletonDataAsset.controller == null)
- return;
-
- SkeletonBaker.GenerateMecanimAnimationClips(skeletonDataAsset);
- }
-
- public static void GenerateMecanimAnimationClips (SkeletonDataAsset skeletonDataAsset) {
- var data = skeletonDataAsset.GetSkeletonData(true);
- if (data == null) {
- Debug.LogError("SkeletonData loading failed!", skeletonDataAsset);
- return;
- }
-
- string dataPath = AssetDatabase.GetAssetPath(skeletonDataAsset);
- string controllerPath = dataPath.Replace(AssetUtility.SkeletonDataSuffix, "_Controller").Replace(".asset", ".controller");
- UnityEditor.Animations.AnimatorController controller;
- if (skeletonDataAsset.controller != null) {
- controller = (UnityEditor.Animations.AnimatorController)skeletonDataAsset.controller;
- controllerPath = AssetDatabase.GetAssetPath(controller);
- } else {
- if (File.Exists(controllerPath)) {
- if (EditorUtility.DisplayDialog("Controller Overwrite Warning", "Unknown Controller already exists at: " + controllerPath, "Update", "Overwrite")) {
- controller = (UnityEditor.Animations.AnimatorController)AssetDatabase.LoadAssetAtPath(controllerPath, typeof(RuntimeAnimatorController));
- } else {
- controller = (UnityEditor.Animations.AnimatorController)UnityEditor.Animations.AnimatorController.CreateAnimatorControllerAtPath(controllerPath);
- }
- } else {
- controller = (UnityEditor.Animations.AnimatorController)UnityEditor.Animations.AnimatorController.CreateAnimatorControllerAtPath(controllerPath);
- }
-
- }
-
- skeletonDataAsset.controller = controller;
- EditorUtility.SetDirty(skeletonDataAsset);
-
- UnityEngine.Object[] objs = AssetDatabase.LoadAllAssetsAtPath(controllerPath);
-
- var unityAnimationClipTable = new Dictionary();
- var spineAnimationTable = new Dictionary();
-
- foreach (var o in objs) {
- //Debug.LogFormat("({0}){1} : {3} + {2} + {4}", o.GetType(), o.name, o.hideFlags, o.GetInstanceID(), o.GetHashCode());
- // There is a bug in Unity 5.3.3 (and likely before) that creates
- // a duplicate AnimationClip when you duplicate a Mecanim Animator State.
- // These duplicates seem to be identifiable by their HideFlags, so we'll exclude them.
- if (o is AnimationClip) {
- var clip = o as AnimationClip;
- if (!clip.HasFlag(HideFlags.HideInHierarchy)) {
- if (unityAnimationClipTable.ContainsKey(clip.name)) {
- Debug.LogWarningFormat("Duplicate AnimationClips were found named {0}", clip.name);
- }
- unityAnimationClipTable.Add(clip.name, clip);
- }
- }
- }
-
- foreach (var animations in data.Animations) {
- string animationName = animations.Name; // Review for unsafe names. Requires runtime implementation too.
- spineAnimationTable.Add(animationName, animations);
-
- if (unityAnimationClipTable.ContainsKey(animationName) == false) {
- AnimationClip newClip = new AnimationClip {
- name = animationName
- };
- //AssetDatabase.CreateAsset(newClip, Path.GetDirectoryName(dataPath) + "/" + animationName + ".asset");
- AssetDatabase.AddObjectToAsset(newClip, controller);
- unityAnimationClipTable.Add(animationName, newClip);
- }
-
- AnimationClip clip = unityAnimationClipTable[animationName];
- clip.SetCurve("", typeof(GameObject), "dummy", AnimationCurve.Linear(0, 0, animations.Duration, 0));
- var settings = AnimationUtility.GetAnimationClipSettings(clip);
- settings.stopTime = animations.Duration;
- SetAnimationSettings(clip, settings);
-
- AnimationUtility.SetAnimationEvents(clip, new AnimationEvent[0]);
- foreach (Timeline t in animations.Timelines) {
- if (t is EventTimeline)
- ParseEventTimeline((EventTimeline)t, clip, SendMessageOptions.DontRequireReceiver);
- }
-
- EditorUtility.SetDirty(clip);
- unityAnimationClipTable.Remove(animationName);
- }
-
- foreach (var clip in unityAnimationClipTable.Values) {
- AnimationClip.DestroyImmediate(clip, true);
- }
-
- AssetDatabase.Refresh();
- AssetDatabase.SaveAssets();
- }
-
- static bool HasFlag (this UnityEngine.Object o, HideFlags flagToCheck) {
- return (o.hideFlags & flagToCheck) == flagToCheck;
- }
- #endif
- #endregion
-
- #region Prefab and AnimationClip Baking
- ///
- /// Interval between key sampling for Bezier curves, IK controlled bones, and Inherit Rotation effected bones.
- ///
- const float BakeIncrement = 1 / 60f;
-
- public static void BakeToPrefab (SkeletonDataAsset skeletonDataAsset, ExposedList skins, string outputPath = "", bool bakeAnimations = true, bool bakeIK = true, SendMessageOptions eventOptions = SendMessageOptions.DontRequireReceiver) {
- if (skeletonDataAsset == null || skeletonDataAsset.GetSkeletonData(true) == null) {
- Debug.LogError("Could not export Spine Skeleton because SkeletonDataAsset is null or invalid!");
- return;
- }
-
- if (outputPath == "") {
- outputPath = System.IO.Path.GetDirectoryName(AssetDatabase.GetAssetPath(skeletonDataAsset)).Replace('\\', '/') + "/Baked";
- System.IO.Directory.CreateDirectory(outputPath);
- }
-
- var skeletonData = skeletonDataAsset.GetSkeletonData(true);
- bool hasAnimations = bakeAnimations && skeletonData.Animations.Count > 0;
- UnityEditor.Animations.AnimatorController controller = null;
- if (hasAnimations) {
- string controllerPath = outputPath + "/" + skeletonDataAsset.skeletonJSON.name + " Controller.controller";
- bool newAnimContainer = false;
-
- var runtimeController = AssetDatabase.LoadAssetAtPath(controllerPath, typeof(RuntimeAnimatorController));
-
- if (runtimeController != null) {
- controller = (UnityEditor.Animations.AnimatorController)runtimeController;
- } else {
- controller = UnityEditor.Animations.AnimatorController.CreateAnimatorControllerAtPath(controllerPath);
- newAnimContainer = true;
- }
-
- var existingClipTable = new Dictionary();
- var unusedClipNames = new List();
- Object[] animObjs = AssetDatabase.LoadAllAssetsAtPath(controllerPath);
-
- foreach (Object o in animObjs) {
- if (o is AnimationClip) {
- var clip = (AnimationClip)o;
- existingClipTable.Add(clip.name, clip);
- unusedClipNames.Add(clip.name);
- }
- }
-
- Dictionary> slotLookup = new Dictionary>();
-
- int skinCount = skins.Count;
-
- for (int s = 0; s < skeletonData.Slots.Count; s++) {
- List attachmentNames = new List();
- for (int i = 0; i < skinCount; i++) {
- var skin = skins.Items[i];
- var skinEntries = new List();
- skin.GetAttachments(s, skinEntries);
- foreach (var entry in skinEntries) {
- if (!attachmentNames.Contains(entry.Name))
- attachmentNames.Add(entry.Name);
- }
- }
- slotLookup.Add(s, attachmentNames);
- }
-
- foreach (var anim in skeletonData.Animations) {
-
- AnimationClip clip = null;
- if (existingClipTable.ContainsKey(anim.Name)) {
- clip = existingClipTable[anim.Name];
- }
-
- clip = ExtractAnimation(anim.Name, skeletonData, slotLookup, bakeIK, eventOptions, clip);
-
- if (unusedClipNames.Contains(clip.name)) {
- unusedClipNames.Remove(clip.name);
- } else {
- AssetDatabase.AddObjectToAsset(clip, controller);
- controller.AddMotion(clip);
- }
- }
-
- if (newAnimContainer) {
- EditorUtility.SetDirty(controller);
- AssetDatabase.SaveAssets();
- AssetDatabase.ImportAsset(controllerPath, ImportAssetOptions.ForceUpdate);
- AssetDatabase.Refresh();
- } else {
-
- foreach (string str in unusedClipNames) {
- AnimationClip.DestroyImmediate(existingClipTable[str], true);
- }
-
- EditorUtility.SetDirty(controller);
- AssetDatabase.SaveAssets();
- AssetDatabase.ImportAsset(controllerPath, ImportAssetOptions.ForceUpdate);
- AssetDatabase.Refresh();
- }
- }
-
- foreach (var skin in skins) {
- bool newPrefab = false;
-
- string prefabPath = outputPath + "/" + skeletonDataAsset.skeletonJSON.name + " (" + skin.Name + ").prefab";
-
- Object prefab = AssetDatabase.LoadAssetAtPath(prefabPath, typeof(GameObject));
-
- if (prefab == null) {
- #if NEW_PREFAB_SYSTEM
- GameObject emptyGameObject = new GameObject();
- prefab = PrefabUtility.SaveAsPrefabAssetAndConnect(emptyGameObject, prefabPath, InteractionMode.AutomatedAction);
- GameObject.DestroyImmediate(emptyGameObject);
- #else
- prefab = PrefabUtility.CreateEmptyPrefab(prefabPath);
- #endif
- newPrefab = true;
- }
-
- Dictionary meshTable = new Dictionary();
- List unusedMeshNames = new List();
- Object[] assets = AssetDatabase.LoadAllAssetsAtPath(prefabPath);
- foreach (var obj in assets) {
- if (obj is Mesh) {
- meshTable.Add(obj.name, (Mesh)obj);
- unusedMeshNames.Add(obj.name);
- }
- }
-
- GameObject prefabRoot = EditorInstantiation.NewGameObject("root", true);
-
- Dictionary slotTable = new Dictionary();
- Dictionary boneTable = new Dictionary();
- List boneList = new List();
-
- //create bones
- for (int i = 0; i < skeletonData.Bones.Count; i++) {
- var boneData = skeletonData.Bones.Items[i];
- Transform boneTransform = EditorInstantiation.NewGameObject(boneData.Name, true).transform;
- boneTransform.parent = prefabRoot.transform;
- boneTable.Add(boneTransform.name, boneTransform);
- boneList.Add(boneTransform);
- }
-
- for (int i = 0; i < skeletonData.Bones.Count; i++) {
-
- var boneData = skeletonData.Bones.Items[i];
- Transform boneTransform = boneTable[boneData.Name];
- Transform parentTransform = null;
- if (i > 0)
- parentTransform = boneTable[boneData.Parent.Name];
- else
- parentTransform = boneTransform.parent;
-
- boneTransform.parent = parentTransform;
- boneTransform.localPosition = new Vector3(boneData.X, boneData.Y, 0);
- var tm = boneData.TransformMode;
- if (tm.InheritsRotation())
- boneTransform.localRotation = Quaternion.Euler(0, 0, boneData.Rotation);
- else
- boneTransform.rotation = Quaternion.Euler(0, 0, boneData.Rotation);
-
- if (tm.InheritsScale())
- boneTransform.localScale = new Vector3(boneData.ScaleX, boneData.ScaleY, 1);
- }
-
- //create slots and attachments
- for (int slotIndex = 0; slotIndex < skeletonData.Slots.Count; slotIndex++) {
- var slotData = skeletonData.Slots.Items[slotIndex];
- Transform slotTransform = EditorInstantiation.NewGameObject(slotData.Name, true).transform;
- slotTransform.parent = prefabRoot.transform;
- slotTable.Add(slotData.Name, slotTransform);
-
- var skinEntries = new List();
- skin.GetAttachments(slotIndex, skinEntries);
- if (skin != skeletonData.DefaultSkin)
- skeletonData.DefaultSkin.GetAttachments(slotIndex, skinEntries);
-
- for (int a = 0; a < skinEntries.Count; a++) {
- var attachment = skinEntries[a].Attachment;
- string attachmentName = skinEntries[a].Name;
- string attachmentMeshName = "[" + slotData.Name + "] " + attachmentName;
- Vector3 offset = Vector3.zero;
- float rotation = 0;
- Mesh mesh = null;
- Material material = null;
- bool isWeightedMesh = false;
-
- if (meshTable.ContainsKey(attachmentMeshName))
- mesh = meshTable[attachmentMeshName];
- if (attachment is RegionAttachment) {
- var regionAttachment = (RegionAttachment)attachment;
- offset.x = regionAttachment.X;
- offset.y = regionAttachment.Y;
- rotation = regionAttachment.Rotation;
- mesh = ExtractRegionAttachment(attachmentMeshName, regionAttachment, mesh);
- material = attachment.GetMaterial();
- unusedMeshNames.Remove(attachmentMeshName);
- if (newPrefab || meshTable.ContainsKey(attachmentMeshName) == false)
- AssetDatabase.AddObjectToAsset(mesh, prefab);
- } else if (attachment is MeshAttachment) {
- var meshAttachment = (MeshAttachment)attachment;
- isWeightedMesh = (meshAttachment.Bones != null);
- offset.x = 0;
- offset.y = 0;
- rotation = 0;
-
- if (isWeightedMesh)
- mesh = ExtractWeightedMeshAttachment(attachmentMeshName, meshAttachment, slotIndex, skeletonData, boneList, mesh);
- else
- mesh = ExtractMeshAttachment(attachmentMeshName, meshAttachment, mesh);
-
- material = attachment.GetMaterial();
- unusedMeshNames.Remove(attachmentMeshName);
- if (newPrefab || meshTable.ContainsKey(attachmentMeshName) == false)
- AssetDatabase.AddObjectToAsset(mesh, prefab);
- } else
- continue;
-
- Transform attachmentTransform = EditorInstantiation.NewGameObject(attachmentName, true).transform;
-
- attachmentTransform.parent = slotTransform;
- attachmentTransform.localPosition = offset;
- attachmentTransform.localRotation = Quaternion.Euler(0, 0, rotation);
-
- if (isWeightedMesh) {
- attachmentTransform.position = Vector3.zero;
- attachmentTransform.rotation = Quaternion.identity;
- var skinnedMeshRenderer = attachmentTransform.gameObject.AddComponent();
- skinnedMeshRenderer.rootBone = boneList[0];
- skinnedMeshRenderer.bones = boneList.ToArray();
- skinnedMeshRenderer.sharedMesh = mesh;
- } else {
- attachmentTransform.gameObject.AddComponent().sharedMesh = mesh;
- attachmentTransform.gameObject.AddComponent();
- }
-
- attachmentTransform.GetComponent().sharedMaterial = material;
- attachmentTransform.GetComponent().sortingOrder = slotIndex;
-
- if (attachmentName != slotData.AttachmentName)
- attachmentTransform.gameObject.SetActive(false);
- }
-
- }
-
- foreach (var slotData in skeletonData.Slots) {
- Transform slotTransform = slotTable[slotData.Name];
- slotTransform.parent = boneTable[slotData.BoneData.Name];
- slotTransform.localPosition = Vector3.zero;
- slotTransform.localRotation = Quaternion.identity;
- slotTransform.localScale = Vector3.one;
- }
-
- if (hasAnimations) {
- var animator = prefabRoot.AddComponent();
- animator.applyRootMotion = false;
- animator.runtimeAnimatorController = (RuntimeAnimatorController)controller;
- EditorGUIUtility.PingObject(controller);
- }
-
- if (newPrefab) {
- #if NEW_PREFAB_SYSTEM
- PrefabUtility.SaveAsPrefabAssetAndConnect(prefabRoot, prefabPath, InteractionMode.AutomatedAction);
- #else
- PrefabUtility.ReplacePrefab(prefabRoot, prefab, ReplacePrefabOptions.ConnectToPrefab);
- #endif
- } else {
-
- foreach (string str in unusedMeshNames) {
- Mesh.DestroyImmediate(meshTable[str], true);
- }
-
- #if NEW_PREFAB_SYSTEM
- PrefabUtility.SaveAsPrefabAssetAndConnect(prefabRoot, prefabPath, InteractionMode.AutomatedAction);
- #else
- PrefabUtility.ReplacePrefab(prefabRoot, prefab, ReplacePrefabOptions.ReplaceNameBased);
- #endif
- }
-
-
- EditorGUIUtility.PingObject(prefab);
-
- AssetDatabase.Refresh();
- AssetDatabase.SaveAssets();
-
- GameObject.DestroyImmediate(prefabRoot);
-
- }
- }
-
- #region Attachment Baking
- static Bone DummyBone;
- static Slot DummySlot;
-
- internal static Bone GetDummyBone () {
- if (DummyBone != null)
- return DummyBone;
-
- SkeletonData skelData = new SkeletonData();
- BoneData data = new BoneData(0, "temp", null) {
- ScaleX = 1,
- ScaleY = 1,
- Length = 100
- };
-
- skelData.Bones.Add(data);
-
- Skeleton skeleton = new Skeleton(skelData);
-
- Bone bone = new Bone(data, skeleton, null);
- bone.UpdateWorldTransform();
-
- DummyBone = bone;
-
- return DummyBone;
- }
-
- internal static Slot GetDummySlot () {
- if (DummySlot != null)
- return DummySlot;
-
- Bone bone = GetDummyBone();
-
- SlotData data = new SlotData(0, "temp", bone.Data);
- Slot slot = new Slot(data, bone);
- DummySlot = slot;
- return DummySlot;
- }
-
- internal static Mesh ExtractRegionAttachment (string name, RegionAttachment attachment, Mesh mesh = null, bool centered = true) {
- var bone = GetDummyBone();
-
- if (centered) {
- bone.X = -attachment.X;
- bone.Y = -attachment.Y;
- }
-
- bone.UpdateWorldTransform();
-
- Vector2[] uvs = ExtractUV(attachment.UVs);
- float[] floatVerts = new float[8];
- attachment.ComputeWorldVertices(bone, floatVerts, 0);
- Vector3[] verts = ExtractVerts(floatVerts);
-
- //unrotate verts now that they're centered
- if (centered) {
- for (int i = 0; i < verts.Length; i++)
- verts[i] = Quaternion.Euler(0, 0, -attachment.Rotation) * verts[i];
- }
-
- int[] triangles = { 1, 3, 0, 2, 3, 1 };
- Color color = attachment.GetColor();
-
- if (mesh == null)
- mesh = new Mesh();
-
- mesh.triangles = new int[0];
-
- mesh.vertices = verts;
- mesh.uv = uvs;
- mesh.triangles = triangles;
- mesh.colors = new [] { color, color, color, color };
- mesh.RecalculateBounds();
- mesh.RecalculateNormals();
- mesh.name = name;
-
- return mesh;
- }
-
- internal static Mesh ExtractMeshAttachment (string name, MeshAttachment attachment, Mesh mesh = null) {
- var slot = GetDummySlot();
-
- slot.Bone.X = 0;
- slot.Bone.Y = 0;
- slot.Bone.UpdateWorldTransform();
-
- Vector2[] uvs = ExtractUV(attachment.UVs);
- float[] floatVerts = new float[attachment.WorldVerticesLength];
- attachment.ComputeWorldVertices(slot, floatVerts);
- Vector3[] verts = ExtractVerts(floatVerts);
-
- int[] triangles = attachment.Triangles;
- Color color = attachment.GetColor();
-
- if (mesh == null)
- mesh = new Mesh();
-
- mesh.triangles = new int[0];
-
- mesh.vertices = verts;
- mesh.uv = uvs;
- mesh.triangles = triangles;
- Color[] colors = new Color[verts.Length];
- for (int i = 0; i < verts.Length; i++)
- colors[i] = color;
-
- mesh.colors = colors;
- mesh.RecalculateBounds();
- mesh.RecalculateNormals();
- mesh.name = name;
-
- return mesh;
- }
-
- public class BoneWeightContainer {
- public struct Pair {
- public Transform bone;
- public float weight;
-
- public Pair (Transform bone, float weight) {
- this.bone = bone;
- this.weight = weight;
- }
- }
-
- public List bones;
- public List weights;
- public List pairs;
-
-
- public BoneWeightContainer () {
- this.bones = new List();
- this.weights = new List();
- this.pairs = new List();
- }
-
- public void Add (Transform transform, float weight) {
- bones.Add(transform);
- weights.Add(weight);
-
- pairs.Add(new Pair(transform, weight));
- }
- }
-
- internal static Mesh ExtractWeightedMeshAttachment (string name, MeshAttachment attachment, int slotIndex, SkeletonData skeletonData, List boneList, Mesh mesh = null) {
- if (!attachment.IsWeighted())
- throw new System.ArgumentException("Mesh is not weighted.", "attachment");
-
- Skeleton skeleton = new Skeleton(skeletonData);
- skeleton.UpdateWorldTransform();
-
- float[] floatVerts = new float[attachment.WorldVerticesLength];
- attachment.ComputeWorldVertices(skeleton.Slots.Items[slotIndex], floatVerts);
-
- Vector2[] uvs = ExtractUV(attachment.UVs);
- Vector3[] verts = ExtractVerts(floatVerts);
-
- int[] triangles = attachment.Triangles;
- Color color = new Color(attachment.R, attachment.G, attachment.B, attachment.A);
-
- mesh = (mesh == null) ? new Mesh() : mesh;
-
- mesh.triangles = new int[0];
-
- mesh.vertices = verts;
- mesh.uv = uvs;
- mesh.triangles = triangles;
- Color[] colors = new Color[verts.Length];
- for (int i = 0; i < verts.Length; i++)
- colors[i] = color;
-
- mesh.colors = colors;
- mesh.name = name;
- mesh.RecalculateNormals();
- mesh.RecalculateBounds();
-
- // Handle weights and binding
- var weightTable = new Dictionary();
- var warningBuilder = new System.Text.StringBuilder();
-
- int[] bones = attachment.Bones;
- float[] weights = attachment.Vertices;
- for (int w = 0, v = 0, b = 0, n = bones.Length; v < n; w += 2) {
-
- int nn = bones[v++] + v;
- for (; v < nn; v++, b += 3) {
- Transform boneTransform = boneList[bones[v]];
- int vIndex = w / 2;
- BoneWeightContainer container;
- if (weightTable.ContainsKey(vIndex))
- container = weightTable[vIndex];
- else {
- container = new BoneWeightContainer();
- weightTable.Add(vIndex, container);
- }
-
- float weight = weights[b + 2];
- container.Add(boneTransform, weight);
- }
- }
-
- BoneWeight[] boneWeights = new BoneWeight[weightTable.Count];
-
- for (int i = 0; i < weightTable.Count; i++) {
- BoneWeight bw = new BoneWeight();
- var container = weightTable[i];
-
- var pairs = container.pairs.OrderByDescending(pair => pair.weight).ToList();
-
- for (int b = 0; b < pairs.Count; b++) {
- if (b > 3) {
- if (warningBuilder.Length == 0)
- warningBuilder.Insert(0, "[Weighted Mesh: " + name + "]\r\nUnity only supports 4 weight influences per vertex! The 4 strongest influences will be used.\r\n");
-
- warningBuilder.AppendFormat("{0} ignored on vertex {1}!\r\n", pairs[b].bone.name, i);
- continue;
- }
-
- int boneIndex = boneList.IndexOf(pairs[b].bone);
- float weight = pairs[b].weight;
-
- switch (b) {
- case 0:
- bw.boneIndex0 = boneIndex;
- bw.weight0 = weight;
- break;
- case 1:
- bw.boneIndex1 = boneIndex;
- bw.weight1 = weight;
- break;
- case 2:
- bw.boneIndex2 = boneIndex;
- bw.weight2 = weight;
- break;
- case 3:
- bw.boneIndex3 = boneIndex;
- bw.weight3 = weight;
- break;
- }
- }
-
- boneWeights[i] = bw;
- }
-
- Matrix4x4[] bindPoses = new Matrix4x4[boneList.Count];
- for (int i = 0; i < boneList.Count; i++) {
- bindPoses[i] = boneList[i].worldToLocalMatrix;
- }
-
- mesh.boneWeights = boneWeights;
- mesh.bindposes = bindPoses;
-
- string warningString = warningBuilder.ToString();
- if (warningString.Length > 0)
- Debug.LogWarning(warningString);
-
-
- return mesh;
- }
-
- internal static Vector2[] ExtractUV (float[] floats) {
- Vector2[] arr = new Vector2[floats.Length / 2];
-
- for (int i = 0; i < floats.Length; i += 2) {
- arr[i / 2] = new Vector2(floats[i], floats[i + 1]);
- }
-
- return arr;
- }
-
- internal static Vector3[] ExtractVerts (float[] floats) {
- Vector3[] arr = new Vector3[floats.Length / 2];
-
- for (int i = 0; i < floats.Length; i += 2) {
- arr[i / 2] = new Vector3(floats[i], floats[i + 1], 0);// *scale;
- }
-
- return arr;
- }
-#endregion
-
-#region Animation Baking
- static AnimationClip ExtractAnimation (string name, SkeletonData skeletonData, Dictionary> slotLookup, bool bakeIK, SendMessageOptions eventOptions, AnimationClip clip = null) {
- var animation = skeletonData.FindAnimation(name);
-
- var timelines = animation.Timelines;
-
- if (clip == null) {
- clip = new AnimationClip();
- } else {
- clip.ClearCurves();
- AnimationUtility.SetAnimationEvents(clip, new AnimationEvent[0]);
- }
-
- clip.name = name;
-
- Skeleton skeleton = new Skeleton(skeletonData);
-
- List ignoreRotateTimelineIndexes = new List();
-
- if (bakeIK) {
- foreach (IkConstraint i in skeleton.IkConstraints) {
- foreach (Bone b in i.Bones) {
- int index = skeleton.FindBoneIndex(b.Data.Name);
- ignoreRotateTimelineIndexes.Add(index);
- BakeBoneConstraints(b, animation, clip);
- }
- }
- }
-
- foreach (Bone b in skeleton.Bones) {
- if (!b.Data.TransformMode.InheritsRotation()) {
- int index = skeleton.FindBoneIndex(b.Data.Name);
-
- if (ignoreRotateTimelineIndexes.Contains(index) == false) {
- ignoreRotateTimelineIndexes.Add(index);
- BakeBoneConstraints(b, animation, clip);
- }
- }
- }
-
- foreach (Timeline t in timelines) {
- skeleton.SetToSetupPose();
-
- if (t is ScaleTimeline) {
- ParseScaleTimeline(skeleton, (ScaleTimeline)t, clip);
- } else if (t is TranslateTimeline) {
- ParseTranslateTimeline(skeleton, (TranslateTimeline)t, clip);
- } else if (t is RotateTimeline) {
- //bypass any rotation keys if they're going to get baked anyway to prevent localEulerAngles vs Baked collision
- if (ignoreRotateTimelineIndexes.Contains(((RotateTimeline)t).BoneIndex) == false)
- ParseRotateTimeline(skeleton, (RotateTimeline)t, clip);
- } else if (t is AttachmentTimeline) {
- ParseAttachmentTimeline(skeleton, (AttachmentTimeline)t, slotLookup, clip);
- } else if (t is EventTimeline) {
- ParseEventTimeline((EventTimeline)t, clip, eventOptions);
- }
-
- }
-
- var settings = AnimationUtility.GetAnimationClipSettings(clip);
- settings.loopTime = true;
- settings.stopTime = Mathf.Max(clip.length, 0.001f);
-
- SetAnimationSettings(clip, settings);
-
- clip.EnsureQuaternionContinuity();
-
- EditorUtility.SetDirty(clip);
-
- return clip;
- }
-
- static int BinarySearch (float[] values, float target) {
- int low = 0;
- int high = values.Length - 2;
- if (high == 0) return 1;
- int current = (int)((uint)high >> 1);
- while (true) {
- if (values[(current + 1)] <= target)
- low = current + 1;
- else
- high = current;
-
- if (low == high) return (low + 1);
- current = (int)((uint)(low + high) >> 1);
- }
- }
-
- static void BakeBoneConstraints (Bone bone, Spine.Animation animation, AnimationClip clip) {
- Skeleton skeleton = bone.Skeleton;
- bool inheritRotation = bone.Data.TransformMode.InheritsRotation();
-
- animation.Apply(skeleton, 0, 0, false, null, 1f, MixBlend.Setup, MixDirection.In);
- skeleton.UpdateWorldTransform();
- float duration = animation.Duration;
-
- AnimationCurve curve = new AnimationCurve();
-
- List keys = new List();
-
- float rotation = bone.AppliedRotation;
- if (!inheritRotation)
- rotation = GetUninheritedAppliedRotation(bone);
-
- keys.Add(new Keyframe(0, rotation, 0, 0));
-
- int listIndex = 1;
-
- float r = rotation;
-
- int steps = Mathf.CeilToInt(duration / BakeIncrement);
-
- float currentTime = 0;
- float angle = rotation;
-
- for (int i = 1; i <= steps; i++) {
- currentTime += BakeIncrement;
- if (i == steps)
- currentTime = duration;
-
- animation.Apply(skeleton, 0, currentTime, true, null, 1f, MixBlend.Setup, MixDirection.In);
- skeleton.UpdateWorldTransform();
-
- int pIndex = listIndex - 1;
-
- Keyframe pk = keys[pIndex];
-
- pk = keys[pIndex];
-
- rotation = inheritRotation ? bone.AppliedRotation : GetUninheritedAppliedRotation(bone);
-
- angle += Mathf.DeltaAngle(angle, rotation);
-
- r = angle;
-
- float rOut = (r - pk.value) / (currentTime - pk.time);
-
- pk.outTangent = rOut;
-
- keys.Add(new Keyframe(currentTime, r, rOut, 0));
-
- keys[pIndex] = pk;
-
- listIndex++;
- }
-
- curve = EnsureCurveKeyCount(new AnimationCurve(keys.ToArray()));
-
- string path = GetPath(bone.Data);
- string propertyName = "localEulerAnglesBaked";
-
- EditorCurveBinding xBind = EditorCurveBinding.FloatCurve(path, typeof(Transform), propertyName + ".x");
- AnimationUtility.SetEditorCurve(clip, xBind, new AnimationCurve());
- EditorCurveBinding yBind = EditorCurveBinding.FloatCurve(path, typeof(Transform), propertyName + ".y");
- AnimationUtility.SetEditorCurve(clip, yBind, new AnimationCurve());
- EditorCurveBinding zBind = EditorCurveBinding.FloatCurve(path, typeof(Transform), propertyName + ".z");
- AnimationUtility.SetEditorCurve(clip, zBind, curve);
- }
-
- static void ParseTranslateTimeline (Skeleton skeleton, TranslateTimeline timeline, AnimationClip clip) {
- var boneData = skeleton.Data.Bones.Items[timeline.BoneIndex];
- var bone = skeleton.Bones.Items[timeline.BoneIndex];
-
- AnimationCurve xCurve = new AnimationCurve();
- AnimationCurve yCurve = new AnimationCurve();
- AnimationCurve zCurve = new AnimationCurve();
-
- float endTime = timeline.Frames[(timeline.FrameCount * 3) - 3];
-
- float currentTime = timeline.Frames[0];
-
- List xKeys = new List();
- List yKeys = new List();
-
- xKeys.Add(new Keyframe(timeline.Frames[0], timeline.Frames[1] + boneData.X, 0, 0));
- yKeys.Add(new Keyframe(timeline.Frames[0], timeline.Frames[2] + boneData.Y, 0, 0));
-
- int listIndex = 1;
- int frameIndex = 1;
- int f = 3;
- float[] frames = timeline.Frames;
- skeleton.SetToSetupPose();
- float lastTime = 0;
- while (currentTime < endTime) {
- int pIndex = listIndex - 1;
-
- float curveType = timeline.GetCurveType(frameIndex - 1);
- if (curveType == 0) {
- //linear
- Keyframe px = xKeys[pIndex];
- Keyframe py = yKeys[pIndex];
-
- float time = frames[f];
- float x = frames[f + 1] + boneData.X;
- float y = frames[f + 2] + boneData.Y;
-
- float xOut = (x - px.value) / (time - px.time);
- float yOut = (y - py.value) / (time - py.time);
-
- px.outTangent = xOut;
- py.outTangent = yOut;
-
- xKeys.Add(new Keyframe(time, x, xOut, 0));
- yKeys.Add(new Keyframe(time, y, yOut, 0));
-
- xKeys[pIndex] = px;
- yKeys[pIndex] = py;
-
- currentTime = time;
-
- timeline.Apply(skeleton, lastTime, currentTime, null, 1, MixBlend.Setup, MixDirection.In);
-
- lastTime = time;
- listIndex++;
- } else if (curveType == 1) {
- //stepped
- Keyframe px = xKeys[pIndex];
- Keyframe py = yKeys[pIndex];
-
- float time = frames[f];
- float x = frames[f + 1] + boneData.X;
- float y = frames[f + 2] + boneData.Y;
-
- float xOut = float.PositiveInfinity;
- float yOut = float.PositiveInfinity;
-
- px.outTangent = xOut;
- py.outTangent = yOut;
-
- xKeys.Add(new Keyframe(time, x, xOut, 0));
- yKeys.Add(new Keyframe(time, y, yOut, 0));
-
- xKeys[pIndex] = px;
- yKeys[pIndex] = py;
-
- currentTime = time;
-
- timeline.Apply(skeleton, lastTime, currentTime, null, 1, MixBlend.Setup, MixDirection.In);
-
- lastTime = time;
- listIndex++;
- } else if (curveType == 2) {
-
- //bezier
- Keyframe px = xKeys[pIndex];
- Keyframe py = yKeys[pIndex];
-
- float time = frames[f];
-
- int steps = Mathf.FloorToInt((time - px.time) / BakeIncrement);
-
- for (int i = 1; i <= steps; i++) {
- currentTime += BakeIncrement;
- if (i == steps)
- currentTime = time;
-
- timeline.Apply(skeleton, lastTime, currentTime, null, 1, MixBlend.Setup, MixDirection.In);
-
- px = xKeys[listIndex - 1];
- py = yKeys[listIndex - 1];
-
- float xOut = (bone.X - px.value) / (currentTime - px.time);
- float yOut = (bone.Y - py.value) / (currentTime - py.time);
-
- px.outTangent = xOut;
- py.outTangent = yOut;
-
- xKeys.Add(new Keyframe(currentTime, bone.X, xOut, 0));
- yKeys.Add(new Keyframe(currentTime, bone.Y, yOut, 0));
-
- xKeys[listIndex - 1] = px;
- yKeys[listIndex - 1] = py;
-
- listIndex++;
- lastTime = currentTime;
- }
- }
-
- frameIndex++;
- f += 3;
- }
-
- xCurve = EnsureCurveKeyCount(new AnimationCurve(xKeys.ToArray()));
- yCurve = EnsureCurveKeyCount(new AnimationCurve(yKeys.ToArray()));
-
-
-
- string path = GetPath(boneData);
- const string propertyName = "localPosition";
-
- clip.SetCurve(path, typeof(Transform), propertyName + ".x", xCurve);
- clip.SetCurve(path, typeof(Transform), propertyName + ".y", yCurve);
- clip.SetCurve(path, typeof(Transform), propertyName + ".z", zCurve);
- }
-
- static void ParseScaleTimeline (Skeleton skeleton, ScaleTimeline timeline, AnimationClip clip) {
- var boneData = skeleton.Data.Bones.Items[timeline.BoneIndex];
- var bone = skeleton.Bones.Items[timeline.BoneIndex];
-
- AnimationCurve xCurve = new AnimationCurve();
- AnimationCurve yCurve = new AnimationCurve();
- AnimationCurve zCurve = new AnimationCurve();
-
- float endTime = timeline.Frames[(timeline.FrameCount * 3) - 3];
-
- float currentTime = timeline.Frames[0];
-
- List xKeys = new List();
- List yKeys = new List();
-
- xKeys.Add(new Keyframe(timeline.Frames[0], timeline.Frames[1] * boneData.ScaleX, 0, 0));
- yKeys.Add(new Keyframe(timeline.Frames[0], timeline.Frames[2] * boneData.ScaleY, 0, 0));
-
- int listIndex = 1;
- int frameIndex = 1;
- int f = 3;
- float[] frames = timeline.Frames;
- skeleton.SetToSetupPose();
- float lastTime = 0;
- while (currentTime < endTime) {
- int pIndex = listIndex - 1;
- float curveType = timeline.GetCurveType(frameIndex - 1);
-
- if (curveType == 0) {
- //linear
- Keyframe px = xKeys[pIndex];
- Keyframe py = yKeys[pIndex];
-
- float time = frames[f];
- float x = frames[f + 1] * boneData.ScaleX;
- float y = frames[f + 2] * boneData.ScaleY;
-
- float xOut = (x - px.value) / (time - px.time);
- float yOut = (y - py.value) / (time - py.time);
-
- px.outTangent = xOut;
- py.outTangent = yOut;
-
- xKeys.Add(new Keyframe(time, x, xOut, 0));
- yKeys.Add(new Keyframe(time, y, yOut, 0));
-
- xKeys[pIndex] = px;
- yKeys[pIndex] = py;
-
- currentTime = time;
-
- timeline.Apply(skeleton, lastTime, currentTime, null, 1, MixBlend.Setup, MixDirection.In);
-
- lastTime = time;
- listIndex++;
- } else if (curveType == 1) {
- //stepped
- Keyframe px = xKeys[pIndex];
- Keyframe py = yKeys[pIndex];
-
- float time = frames[f];
- float x = frames[f + 1] * boneData.ScaleX;
- float y = frames[f + 2] * boneData.ScaleY;
-
- float xOut = float.PositiveInfinity;
- float yOut = float.PositiveInfinity;
-
- px.outTangent = xOut;
- py.outTangent = yOut;
-
- xKeys.Add(new Keyframe(time, x, xOut, 0));
- yKeys.Add(new Keyframe(time, y, yOut, 0));
-
- xKeys[pIndex] = px;
- yKeys[pIndex] = py;
-
- currentTime = time;
-
- timeline.Apply(skeleton, lastTime, currentTime, null, 1, MixBlend.Setup, MixDirection.In);
-
- lastTime = time;
- listIndex++;
- } else if (curveType == 2) {
- //bezier
- Keyframe px = xKeys[pIndex];
- Keyframe py = yKeys[pIndex];
-
- float time = frames[f];
-
- int steps = Mathf.FloorToInt((time - px.time) / BakeIncrement);
-
- for (int i = 1; i <= steps; i++) {
- currentTime += BakeIncrement;
- if (i == steps)
- currentTime = time;
-
- timeline.Apply(skeleton, lastTime, currentTime, null, 1, MixBlend.Setup, MixDirection.In);
-
- px = xKeys[listIndex - 1];
- py = yKeys[listIndex - 1];
-
- float xOut = (bone.ScaleX - px.value) / (currentTime - px.time);
- float yOut = (bone.ScaleY - py.value) / (currentTime - py.time);
-
- px.outTangent = xOut;
- py.outTangent = yOut;
-
- xKeys.Add(new Keyframe(currentTime, bone.ScaleX, xOut, 0));
- yKeys.Add(new Keyframe(currentTime, bone.ScaleY, yOut, 0));
-
- xKeys[listIndex - 1] = px;
- yKeys[listIndex - 1] = py;
-
- listIndex++;
- lastTime = currentTime;
- }
- }
-
- frameIndex++;
- f += 3;
- }
-
- xCurve = EnsureCurveKeyCount(new AnimationCurve(xKeys.ToArray()));
- yCurve = EnsureCurveKeyCount(new AnimationCurve(yKeys.ToArray()));
-
- string path = GetPath(boneData);
- string propertyName = "localScale";
-
- clip.SetCurve(path, typeof(Transform), propertyName + ".x", xCurve);
- clip.SetCurve(path, typeof(Transform), propertyName + ".y", yCurve);
- clip.SetCurve(path, typeof(Transform), propertyName + ".z", zCurve);
- }
-
- static void ParseRotateTimeline (Skeleton skeleton, RotateTimeline timeline, AnimationClip clip) {
- var boneData = skeleton.Data.Bones.Items[timeline.BoneIndex];
- var bone = skeleton.Bones.Items[timeline.BoneIndex];
-
- var curve = new AnimationCurve();
-
- float endTime = timeline.Frames[(timeline.FrameCount * 2) - 2];
-
- float currentTime = timeline.Frames[0];
-
- var keys = new List();
-
- float rotation = timeline.Frames[1] + boneData.Rotation;
-
- keys.Add(new Keyframe(timeline.Frames[0], rotation, 0, 0));
-
- int listIndex = 1;
- int frameIndex = 1;
- int f = 2;
- float[] frames = timeline.Frames;
- skeleton.SetToSetupPose();
- float lastTime = 0;
- float angle = rotation;
- while (currentTime < endTime) {
- int pIndex = listIndex - 1;
- float curveType = timeline.GetCurveType(frameIndex - 1);
-
- if (curveType == 0) {
- //linear
- Keyframe pk = keys[pIndex];
-
- float time = frames[f];
-
- rotation = frames[f + 1] + boneData.Rotation;
- angle += Mathf.DeltaAngle(angle, rotation);
- float r = angle;
-
- float rOut = (r - pk.value) / (time - pk.time);
-
- pk.outTangent = rOut;
-
- keys.Add(new Keyframe(time, r, rOut, 0));
-
- keys[pIndex] = pk;
-
- currentTime = time;
-
- timeline.Apply(skeleton, lastTime, currentTime, null, 1, MixBlend.Setup, MixDirection.In);
-
- lastTime = time;
- listIndex++;
- } else if (curveType == 1) {
- //stepped
-
- Keyframe pk = keys[pIndex];
-
- float time = frames[f];
-
- rotation = frames[f + 1] + boneData.Rotation;
- angle += Mathf.DeltaAngle(angle, rotation);
- float r = angle;
-
- float rOut = float.PositiveInfinity;
-
- pk.outTangent = rOut;
-
- keys.Add(new Keyframe(time, r, rOut, 0));
-
- keys[pIndex] = pk;
-
- currentTime = time;
-
- timeline.Apply(skeleton, lastTime, currentTime, null, 1, MixBlend.Setup, MixDirection.In);
-
- lastTime = time;
- listIndex++;
- } else if (curveType == 2) {
- //bezier
- Keyframe pk = keys[pIndex];
-
- float time = frames[f];
-
- timeline.Apply(skeleton, lastTime, currentTime, null, 1, MixBlend.Setup, MixDirection.In);
- skeleton.UpdateWorldTransform();
-
- rotation = frames[f + 1] + boneData.Rotation;
- angle += Mathf.DeltaAngle(angle, rotation);
- float r = angle;
-
- int steps = Mathf.FloorToInt((time - pk.time) / BakeIncrement);
-
- for (int i = 1; i <= steps; i++) {
- currentTime += BakeIncrement;
- if (i == steps)
- currentTime = time;
-
- timeline.Apply(skeleton, lastTime, currentTime, null, 1, MixBlend.Setup, MixDirection.In);
- skeleton.UpdateWorldTransform();
- pk = keys[listIndex - 1];
-
- rotation = bone.Rotation;
- angle += Mathf.DeltaAngle(angle, rotation);
- r = angle;
-
- float rOut = (r - pk.value) / (currentTime - pk.time);
-
- pk.outTangent = rOut;
-
- keys.Add(new Keyframe(currentTime, r, rOut, 0));
-
- keys[listIndex - 1] = pk;
-
- listIndex++;
- lastTime = currentTime;
- }
- }
-
- frameIndex++;
- f += 2;
- }
-
- curve = EnsureCurveKeyCount(new AnimationCurve(keys.ToArray()));
-
- string path = GetPath(boneData);
- const string propertyName = "localEulerAnglesBaked";
-
- EditorCurveBinding xBind = EditorCurveBinding.FloatCurve(path, typeof(Transform), propertyName + ".x");
- AnimationUtility.SetEditorCurve(clip, xBind, new AnimationCurve());
- EditorCurveBinding yBind = EditorCurveBinding.FloatCurve(path, typeof(Transform), propertyName + ".y");
- AnimationUtility.SetEditorCurve(clip, yBind, new AnimationCurve());
- EditorCurveBinding zBind = EditorCurveBinding.FloatCurve(path, typeof(Transform), propertyName + ".z");
- AnimationUtility.SetEditorCurve(clip, zBind, curve);
- }
-
- static void ParseEventTimeline (EventTimeline timeline, AnimationClip clip, SendMessageOptions eventOptions) {
- float[] frames = timeline.Frames;
- var events = timeline.Events;
-
- var animEvents = new List();
- for (int i = 0, n = frames.Length; i < n; i++) {
- var spineEvent = events[i];
- string eventName = spineEvent.Data.Name;
- if (SpineEditorUtilities.Preferences.mecanimEventIncludeFolderName)
- eventName = eventName.Replace("/", ""); // calls method FolderNameEventName()
- else
- eventName = eventName.Substring(eventName.LastIndexOf('/') + 1); // calls method EventName()
- var unityAnimationEvent = new AnimationEvent {
- time = frames[i],
- functionName = eventName,
- messageOptions = eventOptions
- };
-
- if (!string.IsNullOrEmpty(spineEvent.String)) {
- unityAnimationEvent.stringParameter = spineEvent.String;
- } else if (spineEvent.Int != 0) {
- unityAnimationEvent.intParameter = spineEvent.Int;
- } else if (spineEvent.Float != 0) {
- unityAnimationEvent.floatParameter = spineEvent.Float;
- } // else, paramless function/Action.
-
- animEvents.Add(unityAnimationEvent);
- }
-
- AnimationUtility.SetAnimationEvents(clip, animEvents.ToArray());
- }
-
- static void ParseAttachmentTimeline (Skeleton skeleton, AttachmentTimeline timeline, Dictionary> slotLookup, AnimationClip clip) {
- var attachmentNames = slotLookup[timeline.SlotIndex];
-
- string bonePath = GetPath(skeleton.Slots.Items[timeline.SlotIndex].Bone.Data);
- string slotPath = bonePath + "/" + skeleton.Slots.Items[timeline.SlotIndex].Data.Name;
-
- Dictionary curveTable = new Dictionary();
-
- foreach (string str in attachmentNames) {
- curveTable.Add(str, new AnimationCurve());
- }
-
- float[] frames = timeline.Frames;
-
- if (frames[0] != 0) {
- string startingName = skeleton.Slots.Items[timeline.SlotIndex].Data.AttachmentName;
- foreach (var pair in curveTable) {
- if (startingName == "" || startingName == null) {
- pair.Value.AddKey(new Keyframe(0, 0, float.PositiveInfinity, float.PositiveInfinity));
- } else {
- if (pair.Key == startingName) {
- pair.Value.AddKey(new Keyframe(0, 1, float.PositiveInfinity, float.PositiveInfinity));
- } else {
- pair.Value.AddKey(new Keyframe(0, 0, float.PositiveInfinity, float.PositiveInfinity));
- }
- }
- }
- }
-
- float currentTime = timeline.Frames[0];
- float endTime = frames[frames.Length - 1];
- int f = 0;
- while (currentTime < endTime) {
- float time = frames[f];
-
- int frameIndex = (time >= frames[frames.Length - 1] ? frames.Length : BinarySearch(frames, time)) - 1;
-
- string name = timeline.AttachmentNames[frameIndex];
- foreach (var pair in curveTable) {
- if (name == "") {
- pair.Value.AddKey(new Keyframe(time, 0, float.PositiveInfinity, float.PositiveInfinity));
- } else {
- if (pair.Key == name) {
- pair.Value.AddKey(new Keyframe(time, 1, float.PositiveInfinity, float.PositiveInfinity));
- } else {
- pair.Value.AddKey(new Keyframe(time, 0, float.PositiveInfinity, float.PositiveInfinity));
- }
- }
- }
-
- currentTime = time;
- f += 1;
- }
-
- foreach (var pair in curveTable) {
- string path = slotPath + "/" + pair.Key;
- string prop = "m_IsActive";
-
- clip.SetCurve(path, typeof(GameObject), prop, pair.Value);
- }
- }
-
- static AnimationCurve EnsureCurveKeyCount (AnimationCurve curve) {
- if (curve.length == 1)
- curve.AddKey(curve.keys[0].time + 0.25f, curve.keys[0].value);
-
- return curve;
- }
-
- static float GetUninheritedAppliedRotation (Bone b) {
- Bone parent = b.Parent;
- float angle = b.AppliedRotation;
-
- while (parent != null) {
- angle -= parent.AppliedRotation;
- parent = parent.Parent;
- }
-
- return angle;
- }
-#endregion
-#endregion
-
-#region Region Baking
- public static GameObject BakeRegion (SpineAtlasAsset atlasAsset, AtlasRegion region, bool autoSave = true) {
- atlasAsset.GetAtlas(); // Initializes atlasAsset.
-
- string atlasAssetPath = AssetDatabase.GetAssetPath(atlasAsset);
- string atlasAssetDirPath = Path.GetDirectoryName(atlasAssetPath).Replace('\\', '/');
- string bakedDirPath = Path.Combine(atlasAssetDirPath, atlasAsset.name);
- string bakedPrefabPath = Path.Combine(bakedDirPath, AssetUtility.GetPathSafeName(region.name) + ".prefab").Replace("\\", "/");
-
- GameObject prefab = (GameObject)AssetDatabase.LoadAssetAtPath(bakedPrefabPath, typeof(GameObject));
- GameObject root;
- Mesh mesh;
- bool isNewPrefab = false;
-
- if (!Directory.Exists(bakedDirPath))
- Directory.CreateDirectory(bakedDirPath);
-
- if (prefab == null) {
- root = EditorInstantiation.NewGameObject("temp", true, typeof(MeshFilter), typeof(MeshRenderer));
- #if NEW_PREFAB_SYSTEM
- prefab = PrefabUtility.SaveAsPrefabAsset(root, bakedPrefabPath);
- #else
- prefab = PrefabUtility.CreatePrefab(bakedPrefabPath, root);
- #endif
-
- isNewPrefab = true;
- Object.DestroyImmediate(root);
- }
-
- mesh = (Mesh)AssetDatabase.LoadAssetAtPath(bakedPrefabPath, typeof(Mesh));
-
- Material mat = null;
- mesh = atlasAsset.GenerateMesh(region.name, mesh, out mat);
- if (isNewPrefab) {
- AssetDatabase.AddObjectToAsset(mesh, prefab);
- prefab.GetComponent().sharedMesh = mesh;
- }
-
- EditorUtility.SetDirty(mesh);
- EditorUtility.SetDirty(prefab);
-
- if (autoSave) {
- AssetDatabase.SaveAssets();
- AssetDatabase.Refresh();
- }
-
- prefab.GetComponent().sharedMaterial = mat;
-
- return prefab;
- }
-#endregion
-
- static string GetPath (BoneData b) {
- return GetPathRecurse(b).Substring(1);
- }
-
- static string GetPathRecurse (BoneData b) {
- if (b == null) return "";
- return GetPathRecurse(b.Parent) + "/" + b.Name;
- }
-
- static void SetAnimationSettings (AnimationClip clip, AnimationClipSettings settings) {
- AnimationUtility.SetAnimationClipSettings(clip, settings);
- }
-
-
- }
-
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs.meta
deleted file mode 100644
index 37b13c9..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 687d9be457ea4eb44bf09c35c95ee5cd
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonBakingWindow.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonBakingWindow.cs
deleted file mode 100644
index 62870d0..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonBakingWindow.cs
+++ /dev/null
@@ -1,174 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEditor;
-
-namespace Spine.Unity.Editor {
-
- using Editor = UnityEditor.Editor;
- using Icons = SpineEditorUtilities.Icons;
-
- public class SkeletonBakingWindow : EditorWindow {
- const bool IsUtilityWindow = true;
-
- [MenuItem("CONTEXT/SkeletonDataAsset/Skeleton Baking", false, 5000)]
- public static void Init (MenuCommand command) {
- var window = EditorWindow.GetWindow(IsUtilityWindow);
- window.minSize = new Vector2(330f, 530f);
- window.maxSize = new Vector2(600f, 1000f);
- window.titleContent = new GUIContent("Skeleton Baking", Icons.spine);
- window.skeletonDataAsset = command.context as SkeletonDataAsset;
- window.Show();
- }
-
- public SkeletonDataAsset skeletonDataAsset;
- [SpineSkin(dataField:"skeletonDataAsset")]
- public string skinToBake = "default";
-
- // Settings
- bool bakeAnimations = false;
- bool bakeIK = true;
- SendMessageOptions bakeEventOptions;
-
- SerializedObject so;
- Skin bakeSkin;
-
-
- void DataAssetChanged () {
- bakeSkin = null;
- }
-
- void OnGUI () {
- so = so ?? new SerializedObject(this);
-
- EditorGUIUtility.wideMode = true;
- EditorGUILayout.LabelField("Spine Skeleton Prefab Baking", EditorStyles.boldLabel);
-
- const string BakingWarningMessage = "\nSkeleton baking is not the primary use case for Spine skeletons." +
- "\nUse baking if you have specialized uses, such as simplified skeletons with movement driven by physics." +
-
- "\n\nBaked Skeletons do not support the following:" +
- "\n\tDisabled rotation or scale inheritance" +
- "\n\tLocal Shear" +
- "\n\tAll Constraint types" +
- "\n\tWeighted mesh verts with more than 4 bound bones" +
-
- "\n\nBaked Animations do not support the following:" +
- "\n\tMesh Deform Keys" +
- "\n\tColor Keys" +
- "\n\tDraw Order Keys" +
-
- "\n\nAnimation Curves are sampled at 60fps and are not realtime." +
- "\nConstraint animations are also baked into animation curves." +
- "\nSee SkeletonBaker.cs comments for full details.\n";
-
- EditorGUILayout.HelpBox(BakingWarningMessage, MessageType.Info, true);
-
- EditorGUI.BeginChangeCheck();
- var skeletonDataAssetProperty = so.FindProperty("skeletonDataAsset");
- EditorGUILayout.PropertyField(skeletonDataAssetProperty, SpineInspectorUtility.TempContent("SkeletonDataAsset", Icons.spine));
- if (EditorGUI.EndChangeCheck()) {
- so.ApplyModifiedProperties();
- DataAssetChanged();
- }
- EditorGUILayout.Space();
-
- if (skeletonDataAsset == null) return;
- var skeletonData = skeletonDataAsset.GetSkeletonData(false);
- if (skeletonData == null) return;
- bool hasExtraSkins = skeletonData.Skins.Count > 1;
-
- using (new SpineInspectorUtility.BoxScope(false)) {
- EditorGUILayout.LabelField(skeletonDataAsset.name, EditorStyles.boldLabel);
- using (new SpineInspectorUtility.IndentScope()) {
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Bones: " + skeletonData.Bones.Count, Icons.bone));
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Slots: " + skeletonData.Slots.Count, Icons.slotRoot));
-
- if (hasExtraSkins) {
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Skins: " + skeletonData.Skins.Count, Icons.skinsRoot));
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Current skin attachments: " + (bakeSkin == null ? 0 : bakeSkin.Attachments.Count), Icons.skinPlaceholder));
- } else if (skeletonData.Skins.Count == 1) {
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Skins: 1 (only default Skin)", Icons.skinsRoot));
- }
-
- int totalAttachments = 0;
- foreach (var s in skeletonData.Skins)
- totalAttachments += s.Attachments.Count;
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Total Attachments: " + totalAttachments, Icons.genericAttachment));
- }
- }
- using (new SpineInspectorUtility.BoxScope(false)) {
- EditorGUILayout.LabelField("Animations", EditorStyles.boldLabel);
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Animations: " + skeletonData.Animations.Count, Icons.animation));
-
- using (new SpineInspectorUtility.IndentScope()) {
- bakeAnimations = EditorGUILayout.Toggle(SpineInspectorUtility.TempContent("Bake Animations", Icons.animationRoot), bakeAnimations);
- using (new EditorGUI.DisabledScope(!bakeAnimations)) {
- using (new SpineInspectorUtility.IndentScope()) {
- bakeIK = EditorGUILayout.Toggle(SpineInspectorUtility.TempContent("Bake IK", Icons.constraintIK), bakeIK);
- bakeEventOptions = (SendMessageOptions)EditorGUILayout.EnumPopup(SpineInspectorUtility.TempContent("Event Options", Icons.userEvent), bakeEventOptions);
- }
- }
- }
- }
- EditorGUILayout.Space();
-
- if (!string.IsNullOrEmpty(skinToBake) && UnityEngine.Event.current.type == EventType.Repaint)
- bakeSkin = skeletonData.FindSkin(skinToBake) ?? skeletonData.DefaultSkin;
-
- var prefabIcon = EditorGUIUtility.FindTexture("PrefabModel Icon");
-
- if (hasExtraSkins) {
- EditorGUI.BeginChangeCheck();
- EditorGUILayout.PropertyField(so.FindProperty("skinToBake"));
- if (EditorGUI.EndChangeCheck()) {
- so.ApplyModifiedProperties();
- Repaint();
- }
-
- if (SpineInspectorUtility.LargeCenteredButton(SpineInspectorUtility.TempContent(string.Format("Bake Skeleton with Skin ({0})", (bakeSkin == null ? "default" : bakeSkin.Name)), prefabIcon))) {
- SkeletonBaker.BakeToPrefab(skeletonDataAsset, new ExposedList(new[] { bakeSkin }), "", bakeAnimations, bakeIK, bakeEventOptions);
- }
-
- if (SpineInspectorUtility.LargeCenteredButton(SpineInspectorUtility.TempContent(string.Format("Bake All ({0} skins)", skeletonData.Skins.Count), prefabIcon))) {
- SkeletonBaker.BakeToPrefab(skeletonDataAsset, skeletonData.Skins, "", bakeAnimations, bakeIK, bakeEventOptions);
- }
- } else {
- if (SpineInspectorUtility.LargeCenteredButton(SpineInspectorUtility.TempContent("Bake Skeleton", prefabIcon))) {
- SkeletonBaker.BakeToPrefab(skeletonDataAsset, new ExposedList(new[] { bakeSkin }), "", bakeAnimations, bakeIK, bakeEventOptions);
- }
-
- }
-
- }
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonBakingWindow.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonBakingWindow.cs.meta
deleted file mode 100644
index 4e1aa1d..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonBakingWindow.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 868b0caae5b3e65408ece1ab400c4a99
-timeCreated: 1495203966
-licenseType: Free
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonDebugWindow.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonDebugWindow.cs
deleted file mode 100644
index 4170a55..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonDebugWindow.cs
+++ /dev/null
@@ -1,592 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-// With contributions from: Mitch Thompson
-
-#if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER
-#define NEW_PREFAB_SYSTEM
-#else
-#define NO_PREFAB_MESH
-#endif
-
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEditor;
-using UnityEditor.AnimatedValues;
-
-namespace Spine.Unity.Editor {
- using Editor = UnityEditor.Editor;
- using Icons = SpineEditorUtilities.Icons;
-
- public class SkeletonDebugWindow : EditorWindow {
-
- const bool IsUtilityWindow = true;
- internal static bool showBoneNames, showPaths = true, showShapes = true, showConstraints = true;
-
- [MenuItem("CONTEXT/SkeletonRenderer/Open Skeleton Debug Window", false, 5000)]
- public static void Init () {
- var window = EditorWindow.GetWindow(IsUtilityWindow);
- window.minSize = new Vector2(330f, 360f);
- window.maxSize = new Vector2(600f, 4000f);
- window.titleContent = new GUIContent("Skeleton Debug", Icons.spine);
- window.Show();
- window.OnSelectionChange();
- }
-
-
- static AnimBool showSkeleton = new AnimBool(true);
- static AnimBool showSlotsTree = new AnimBool(false);
- static AnimBool showConstraintsTree = new AnimBool(false);
- static AnimBool showDrawOrderTree = new AnimBool(false);
- static AnimBool showEventDataTree = new AnimBool(false);
- static AnimBool showDataTree = new AnimBool(false);
- static AnimBool showInspectBoneTree = new AnimBool(false);
-
- Vector2 scrollPos;
-
- GUIContent SlotsRootLabel, SkeletonRootLabel;
- GUIStyle BoldFoldoutStyle;
-
- public SkeletonRenderer skeletonRenderer;
- Skeleton skeleton;
- Skin activeSkin;
- bool isPrefab;
-
- SerializedProperty bpo;
- Bone bone;
-
- [SpineBone(dataField:"skeletonRenderer")]
- public string boneName;
-
- readonly Dictionary> attachmentTable = new Dictionary>();
-
- static bool staticLostValues = true;
-
- void OnSceneGUI (SceneView sceneView) {
- if (skeleton == null || skeletonRenderer == null || !skeletonRenderer.valid || isPrefab)
- return;
-
- var transform = skeletonRenderer.transform;
- if (showPaths) SpineHandles.DrawPaths(transform, skeleton);
- if (showConstraints) SpineHandles.DrawConstraints(transform, skeleton);
- if (showBoneNames) SpineHandles.DrawBoneNames(transform, skeleton);
- if (showShapes) SpineHandles.DrawBoundingBoxes(transform, skeleton);
-
- if (bone != null) {
- SpineHandles.DrawBone(skeletonRenderer.transform, bone, 1.5f, Color.cyan);
- Handles.Label(bone.GetWorldPosition(skeletonRenderer.transform) + (Vector3.down * 0.15f), bone.Data.Name, SpineHandles.BoneNameStyle);
- }
- }
-
- void OnSelectionChange () {
- #if UNITY_2019_1_OR_NEWER
- SceneView.duringSceneGui -= this.OnSceneGUI;
- SceneView.duringSceneGui += this.OnSceneGUI;
- #else
- SceneView.onSceneGUIDelegate -= this.OnSceneGUI;
- SceneView.onSceneGUIDelegate += this.OnSceneGUI;
- #endif
-
- bool noSkeletonRenderer = false;
-
- var selectedObject = Selection.activeGameObject;
- if (selectedObject == null) {
- noSkeletonRenderer = true;
- } else {
- var selectedSkeletonRenderer = selectedObject.GetComponent();
- if (selectedSkeletonRenderer == null) {
- noSkeletonRenderer = true;
- } else if (skeletonRenderer != selectedSkeletonRenderer) {
-
- bone = null;
- if (skeletonRenderer != null && skeletonRenderer.SkeletonDataAsset != selectedSkeletonRenderer.SkeletonDataAsset)
- boneName = null;
-
- skeletonRenderer = selectedSkeletonRenderer;
- skeletonRenderer.Initialize(false);
- skeletonRenderer.LateUpdate();
- skeleton = skeletonRenderer.skeleton;
-#if NEW_PREFAB_SYSTEM
- isPrefab = false;
-#else
- isPrefab |= PrefabUtility.GetPrefabType(selectedObject) == PrefabType.Prefab;
-#endif
- UpdateAttachments();
- }
- }
-
- if (noSkeletonRenderer) Clear();
- Repaint();
- }
-
- void Clear () {
- skeletonRenderer = null;
- skeleton = null;
- attachmentTable.Clear();
- isPrefab = false;
- boneName = string.Empty;
- bone = null;
- #if UNITY_2019_1_OR_NEWER
- SceneView.duringSceneGui -= this.OnSceneGUI;
- #else
- SceneView.onSceneGUIDelegate -= this.OnSceneGUI;
- #endif
- }
-
- void OnDestroy () {
- Clear();
- }
-
- static void FalseDropDown (string label, string stringValue, Texture2D icon = null, bool disabledGroup = false) {
- if (disabledGroup) EditorGUI.BeginDisabledGroup(true);
- var pos = EditorGUILayout.GetControlRect(true);
- pos = EditorGUI.PrefixLabel(pos, SpineInspectorUtility.TempContent(label));
- GUI.Button(pos, SpineInspectorUtility.TempContent(stringValue, icon), EditorStyles.popup);
- if (disabledGroup) EditorGUI.EndDisabledGroup();
- }
-
- // Window GUI
- void OnGUI () {
- bool requireRepaint = false;
-
- if (staticLostValues) {
- Clear();
- OnSelectionChange();
- staticLostValues = false;
- requireRepaint = true;
- }
-
- if (SlotsRootLabel == null) {
- SlotsRootLabel = new GUIContent("Slots", Icons.slotRoot);
- SkeletonRootLabel = new GUIContent("Skeleton", Icons.skeleton);
- BoldFoldoutStyle = new GUIStyle(EditorStyles.foldout);
- BoldFoldoutStyle.fontStyle = FontStyle.Bold;
- BoldFoldoutStyle.stretchWidth = true;
- BoldFoldoutStyle.fixedWidth = 0;
- }
-
-
- EditorGUILayout.Space();
- EditorGUI.BeginDisabledGroup(true);
- EditorGUILayout.ObjectField(SpineInspectorUtility.TempContent("Debug Selection", Icons.spine), skeletonRenderer, typeof(SkeletonRenderer), true);
- EditorGUI.EndDisabledGroup();
-
- if (skeleton == null || skeletonRenderer == null) {
- EditorGUILayout.HelpBox("No SkeletonRenderer Spine GameObject selected.", MessageType.Info);
- return;
- }
-
- if (isPrefab) {
- EditorGUILayout.HelpBox("SkeletonDebug only debugs Spine GameObjects in the scene.", MessageType.Warning);
- return;
- }
-
- if (!skeletonRenderer.valid) {
- EditorGUILayout.HelpBox("Spine Component is invalid. Check SkeletonData Asset.", MessageType.Error);
- return;
- }
-
- if (activeSkin != skeleton.Skin)
- UpdateAttachments();
-
- scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
-
- using (new SpineInspectorUtility.BoxScope(false)) {
- if (SpineInspectorUtility.CenteredButton(SpineInspectorUtility.TempContent("Skeleton.SetToSetupPose()"))) {
- skeleton.SetToSetupPose();
- requireRepaint = true;
- }
-
- EditorGUI.BeginChangeCheck();
- EditorGUILayout.LabelField("Scene View", EditorStyles.boldLabel);
- using (new SpineInspectorUtility.LabelWidthScope()) {
- showBoneNames = EditorGUILayout.Toggle("Show Bone Names", showBoneNames);
- showPaths = EditorGUILayout.Toggle("Show Paths", showPaths);
- showShapes = EditorGUILayout.Toggle("Show Shapes", showShapes);
- showConstraints = EditorGUILayout.Toggle("Show Constraints", showConstraints);
- }
- requireRepaint |= EditorGUI.EndChangeCheck();
-
-
- // Skeleton
- showSkeleton.target = EditorGUILayout.Foldout(showSkeleton.target, SkeletonRootLabel, BoldFoldoutStyle);
- if (showSkeleton.faded > 0) {
- using (new SpineInspectorUtility.IndentScope()) {
- using (new EditorGUILayout.FadeGroupScope(showSkeleton.faded)) {
- EditorGUI.BeginChangeCheck();
-
- EditorGUI.BeginDisabledGroup(true);
- FalseDropDown(".Skin", skeleton.Skin != null ? skeletonRenderer.Skeleton.Skin.Name : "", Icons.skin);
- EditorGUI.EndDisabledGroup();
-
- // Flip
- skeleton.ScaleX = EditorGUILayout.DelayedFloatField(".ScaleX", skeleton.ScaleX);
- skeleton.ScaleY = EditorGUILayout.DelayedFloatField(".ScaleY", skeleton.ScaleY);
- //EditorGUILayout.BeginHorizontal(GUILayout.MaxWidth(160f));
- ////EditorGUILayout.LabelField("Scale", GUILayout.Width(EditorGUIUtility.labelWidth - 20f));
- //GUILayout.EndHorizontal();
-
- // Color
- skeleton.SetColor(EditorGUILayout.ColorField(".R .G .B .A", skeleton.GetColor()));
-
- requireRepaint |= EditorGUI.EndChangeCheck();
- }
- }
- }
-
- // Bone
- showInspectBoneTree.target = EditorGUILayout.Foldout(showInspectBoneTree.target, SpineInspectorUtility.TempContent("Bone", Icons.bone), BoldFoldoutStyle);
- if (showInspectBoneTree.faded > 0) {
- using (new SpineInspectorUtility.IndentScope()) {
- using (new EditorGUILayout.FadeGroupScope(showInspectBoneTree.faded)) {
- showBoneNames = EditorGUILayout.Toggle("Show Bone Names", showBoneNames);
- if (bpo == null) bpo = new SerializedObject(this).FindProperty("boneName");
- EditorGUILayout.PropertyField(bpo, SpineInspectorUtility.TempContent("Bone"));
- if (!string.IsNullOrEmpty(bpo.stringValue)) {
- if (bone == null || bone.Data.Name != bpo.stringValue) {
- bone = skeleton.FindBone(bpo.stringValue);
- }
-
- if (bone != null) {
- using (new EditorGUI.DisabledGroupScope(true)) {
- var wm = EditorGUIUtility.wideMode;
- EditorGUIUtility.wideMode = true;
- EditorGUILayout.Slider("Local Rotation", ViewRound(bone.Rotation), -180f, 180f);
- EditorGUILayout.Vector2Field("Local Position", RoundVector2(bone.X, bone.Y));
- EditorGUILayout.Vector2Field("Local Scale", RoundVector2(bone.ScaleX, bone.ScaleY));
- EditorGUILayout.Vector2Field("Local Shear", RoundVector2(bone.ShearX, bone.ShearY));
-
- EditorGUILayout.Space();
-
- var boneParent = bone.Parent;
- if (boneParent != null) FalseDropDown("Parent", boneParent.Data.Name, Icons.bone);
-
- const string RoundFormat = "0.##";
- var lw = EditorGUIUtility.labelWidth;
- var fw = EditorGUIUtility.fieldWidth;
- EditorGUIUtility.labelWidth *= 0.25f;
- EditorGUIUtility.fieldWidth *= 0.5f;
- EditorGUILayout.LabelField("LocalToWorld");
-
- EditorGUILayout.BeginHorizontal();
- EditorGUILayout.Space();
- EditorGUILayout.TextField(".A", bone.A.ToString(RoundFormat));
- EditorGUILayout.TextField(".B", bone.B.ToString(RoundFormat));
- EditorGUILayout.EndHorizontal();
- EditorGUILayout.BeginHorizontal();
- EditorGUILayout.Space();
- EditorGUILayout.TextField(".C", bone.C.ToString(RoundFormat));
- EditorGUILayout.TextField(".D", bone.D.ToString(RoundFormat));
- EditorGUILayout.EndHorizontal();
-
- EditorGUIUtility.labelWidth = lw * 0.5f;
- EditorGUILayout.BeginHorizontal();
- EditorGUILayout.Space();
- EditorGUILayout.Space();
- EditorGUILayout.TextField(".WorldX", bone.WorldX.ToString(RoundFormat));
- EditorGUILayout.TextField(".WorldY", bone.WorldY.ToString(RoundFormat));
- EditorGUILayout.EndHorizontal();
-
- EditorGUIUtility.labelWidth = lw;
- EditorGUIUtility.fieldWidth = fw;
- EditorGUIUtility.wideMode = wm;
-
- }
- }
- requireRepaint = true;
- } else {
- bone = null;
- }
- }
- }
- }
-
- // Slots
- int preSlotsIndent = EditorGUI.indentLevel;
- showSlotsTree.target = EditorGUILayout.Foldout(showSlotsTree.target, SlotsRootLabel, BoldFoldoutStyle);
- if (showSlotsTree.faded > 0) {
- using (new EditorGUILayout.FadeGroupScope(showSlotsTree.faded)) {
- if (SpineInspectorUtility.CenteredButton(SpineInspectorUtility.TempContent("Skeleton.SetSlotsToSetupPose()"))) {
- skeleton.SetSlotsToSetupPose();
- requireRepaint = true;
- }
-
- int baseIndent = EditorGUI.indentLevel;
- foreach (KeyValuePair> pair in attachmentTable) {
- Slot slot = pair.Key;
-
- using (new EditorGUILayout.HorizontalScope()) {
- EditorGUI.indentLevel = baseIndent + 1;
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(slot.Data.Name, Icons.slot), GUILayout.ExpandWidth(false));
- EditorGUI.BeginChangeCheck();
- Color c = EditorGUILayout.ColorField(new Color(slot.R, slot.G, slot.B, slot.A), GUILayout.Width(60));
- if (EditorGUI.EndChangeCheck()) {
- slot.SetColor(c);
- requireRepaint = true;
- }
- }
-
- foreach (var skinEntry in pair.Value) {
- var attachment = skinEntry.Attachment;
- GUI.contentColor = slot.Attachment == attachment ? Color.white : Color.grey;
- EditorGUI.indentLevel = baseIndent + 2;
- var icon = Icons.GetAttachmentIcon(attachment);
- bool isAttached = (attachment == slot.Attachment);
- bool swap = EditorGUILayout.ToggleLeft(SpineInspectorUtility.TempContent(attachment.Name, icon), attachment == slot.Attachment);
- if (isAttached != swap) {
- slot.Attachment = isAttached ? null : attachment;
- requireRepaint = true;
- }
- GUI.contentColor = Color.white;
- }
- }
- }
- }
- EditorGUI.indentLevel = preSlotsIndent;
-
- // Constraints
- const string NoneText = "";
- showConstraintsTree.target = EditorGUILayout.Foldout(showConstraintsTree.target, SpineInspectorUtility.TempContent("Constraints", Icons.constraintRoot), BoldFoldoutStyle);
- if (showConstraintsTree.faded > 0) {
- using (new SpineInspectorUtility.IndentScope()) {
- using (new EditorGUILayout.FadeGroupScope(showConstraintsTree.faded)) {
- const float MixMin = 0f;
- const float MixMax = 1f;
- EditorGUI.BeginChangeCheck();
- showConstraints = EditorGUILayout.Toggle("Show Constraints", showConstraints);
- requireRepaint |= EditorGUI.EndChangeCheck();
-
- EditorGUILayout.Space();
-
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(string.Format("IK Constraints ({0})", skeleton.IkConstraints.Count), Icons.constraintIK), EditorStyles.boldLabel);
- using (new SpineInspectorUtility.IndentScope()) {
- if (skeleton.IkConstraints.Count > 0) {
- foreach (var c in skeleton.IkConstraints) {
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(c.Data.Name, Icons.constraintIK));
- FalseDropDown("Goal", c.Data.Target.Name, Icons.bone, true);
- using (new EditorGUI.DisabledGroupScope(true)) {
- EditorGUILayout.Toggle(SpineInspectorUtility.TempContent("Data.Uniform", tooltip: "Uniformly scales a bone when Ik stretches or compresses."), c.Data.Uniform);
- }
-
- EditorGUI.BeginChangeCheck();
- c.Mix = EditorGUILayout.Slider("Mix", c.Mix, MixMin, MixMax);
- c.BendDirection = EditorGUILayout.Toggle(SpineInspectorUtility.TempContent("Bend Clockwise", tooltip: "IkConstraint.BendDirection == 1 if clockwise; -1 if counterclockwise."), c.BendDirection > 0) ? 1 : -1;
- c.Compress = EditorGUILayout.Toggle(SpineInspectorUtility.TempContent("Compress", tooltip: "Compress single bone IK when the target too close. Not applied when parent bone has nonuniform scale."), c.Compress);
- c.Stretch = EditorGUILayout.Toggle(SpineInspectorUtility.TempContent("Stretch", tooltip: "Stretch the parent bone when the target is out of range. Not applied when parent bone has nonuniform scale."), c.Stretch);
- if (EditorGUI.EndChangeCheck()) requireRepaint = true;
-
- EditorGUILayout.Space();
- }
-
- } else {
- EditorGUILayout.LabelField(NoneText);
- }
- }
-
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(string.Format("Transform Constraints ({0})", skeleton.TransformConstraints.Count), Icons.constraintTransform), EditorStyles.boldLabel);
- using (new SpineInspectorUtility.IndentScope()) {
- if (skeleton.TransformConstraints.Count > 0) {
- foreach (var c in skeleton.TransformConstraints) {
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(c.Data.Name, Icons.constraintTransform));
- EditorGUI.BeginDisabledGroup(true);
- FalseDropDown("Goal", c.Data.Target.Name, Icons.bone);
- EditorGUI.EndDisabledGroup();
-
- EditorGUI.BeginChangeCheck();
- c.TranslateMix = EditorGUILayout.Slider("TranslateMix", c.TranslateMix, MixMin, MixMax);
- c.RotateMix = EditorGUILayout.Slider("RotateMix", c.RotateMix, MixMin, MixMax);
- c.ScaleMix = EditorGUILayout.Slider("ScaleMix", c.ScaleMix, MixMin, MixMax);
- c.ShearMix = EditorGUILayout.Slider("ShearMix", c.ShearMix, MixMin, MixMax);
- if (EditorGUI.EndChangeCheck()) requireRepaint = true;
-
- EditorGUILayout.Space();
- }
- } else {
- EditorGUILayout.LabelField(NoneText);
- }
- }
-
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(string.Format("Path Constraints ({0})", skeleton.PathConstraints.Count), Icons.constraintPath), EditorStyles.boldLabel);
-
- EditorGUI.BeginChangeCheck();
- showPaths = EditorGUILayout.Toggle("Show Paths", showPaths);
- requireRepaint |= EditorGUI.EndChangeCheck();
-
- using (new SpineInspectorUtility.IndentScope()) {
- if (skeleton.PathConstraints.Count > 0) {
- foreach (var c in skeleton.PathConstraints) {
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(c.Data.Name, Icons.constraintPath));
- EditorGUI.BeginDisabledGroup(true);
- FalseDropDown("Path Slot", c.Data.Target.Name, Icons.slot);
- var activeAttachment = c.Target.Attachment;
- FalseDropDown("Active Path", activeAttachment != null ? activeAttachment.Name : "", activeAttachment is PathAttachment ? Icons.path : null);
- EditorGUILayout.LabelField("PositionMode." + c.Data.PositionMode);
- EditorGUILayout.LabelField("SpacingMode." + c.Data.SpacingMode);
- EditorGUILayout.LabelField("RotateMode." + c.Data.RotateMode);
- EditorGUI.EndDisabledGroup();
-
- EditorGUI.BeginChangeCheck();
- c.RotateMix = EditorGUILayout.Slider("RotateMix", c.RotateMix, MixMin, MixMax);
- c.TranslateMix = EditorGUILayout.Slider("TranslateMix", c.TranslateMix, MixMin, MixMax);
- c.Position = EditorGUILayout.FloatField("Position", c.Position);
- c.Spacing = EditorGUILayout.FloatField("Spacing", c.Spacing);
- if (EditorGUI.EndChangeCheck()) requireRepaint = true;
-
- EditorGUILayout.Space();
- }
-
- } else {
- EditorGUILayout.LabelField(NoneText);
- }
- }
- }
- }
- }
-
- showDrawOrderTree.target = EditorGUILayout.Foldout(showDrawOrderTree.target, SpineInspectorUtility.TempContent("Draw Order and Separators", Icons.slotRoot), BoldFoldoutStyle);
-
- //var separatorSlotNamesField =
- //SpineInspectorUtility.ge
- if (showDrawOrderTree.faded > 0) {
- using (new SpineInspectorUtility.IndentScope()) {
- using (new EditorGUILayout.FadeGroupScope(showDrawOrderTree.faded)) {
-
- const string SeparatorString = "------------- v SEPARATOR v -------------";
-
- if (Application.isPlaying) {
- foreach (var slot in skeleton.DrawOrder) {
- if (skeletonRenderer.separatorSlots.Contains(slot)) EditorGUILayout.LabelField(SeparatorString);
-
- using (new EditorGUI.DisabledScope(!slot.Bone.Active)) {
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(slot.Data.Name, Icons.slot), GUILayout.ExpandWidth(false));
- }
- }
- } else {
- foreach (var slot in skeleton.DrawOrder) {
- var slotNames = SkeletonRendererInspector.GetSeparatorSlotNames(skeletonRenderer);
- for (int i = 0, n = slotNames.Length; i < n; i++) {
- if (string.Equals(slotNames[i], slot.Data.Name, System.StringComparison.Ordinal)) {
- EditorGUILayout.LabelField(SeparatorString);
- break;
- }
- }
- using (new EditorGUI.DisabledScope(!slot.Bone.Active)) {
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(slot.Data.Name, Icons.slot), GUILayout.ExpandWidth(false));
- }
- }
- }
-
- }
- }
- }
-
- showEventDataTree.target = EditorGUILayout.Foldout(showEventDataTree.target, SpineInspectorUtility.TempContent("Events", Icons.userEvent), BoldFoldoutStyle);
- if (showEventDataTree.faded > 0) {
- using (new SpineInspectorUtility.IndentScope()) {
- using (new EditorGUILayout.FadeGroupScope(showEventDataTree.faded)) {
- if (skeleton.Data.Events.Count > 0) {
- foreach (var e in skeleton.Data.Events) {
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(e.Name, Icons.userEvent));
- }
- } else {
- EditorGUILayout.LabelField(NoneText);
- }
- }
- }
- }
-
- showDataTree.target = EditorGUILayout.Foldout(showDataTree.target, SpineInspectorUtility.TempContent("Data Counts", Icons.spine), BoldFoldoutStyle);
- if (showDataTree.faded > 0) {
- using (new SpineInspectorUtility.IndentScope()) {
- using (new EditorGUILayout.FadeGroupScope(showDataTree.faded)) {
- using (new SpineInspectorUtility.LabelWidthScope()) {
- var skeletonData = skeleton.Data;
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Bones", Icons.bone, "Skeleton.Data.Bones"), new GUIContent(skeletonData.Bones.Count.ToString()));
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Slots", Icons.slotRoot, "Skeleton.Data.Slots"), new GUIContent(skeletonData.Slots.Count.ToString()));
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Skins", Icons.skinsRoot, "Skeleton.Data.Skins"), new GUIContent(skeletonData.Skins.Count.ToString()));
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Events", Icons.userEvent, "Skeleton.Data.Events"), new GUIContent(skeletonData.Events.Count.ToString()));
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("IK Constraints", Icons.constraintIK, "Skeleton.Data.IkConstraints"), new GUIContent(skeletonData.IkConstraints.Count.ToString()));
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Transform Constraints", Icons.constraintTransform, "Skeleton.Data.TransformConstraints"), new GUIContent(skeletonData.TransformConstraints.Count.ToString()));
- EditorGUILayout.LabelField(SpineInspectorUtility.TempContent("Path Constraints", Icons.constraintPath, "Skeleton.Data.PathConstraints"), new GUIContent(skeletonData.PathConstraints.Count.ToString()));
- }
- }
- }
- }
-
- if (IsAnimating(showSlotsTree, showSkeleton, showConstraintsTree, showDrawOrderTree, showEventDataTree, showInspectBoneTree, showDataTree))
- Repaint();
- }
-
- if (requireRepaint) {
- skeletonRenderer.LateUpdate();
- Repaint();
- SceneView.RepaintAll();
- }
-
- EditorGUILayout.EndScrollView();
- }
-
- static float ViewRound (float x) {
- const float Factor = 100f;
- const float Divisor = 1f/Factor;
- return Mathf.Round(x * Factor) * Divisor;
- }
-
- static Vector2 RoundVector2 (float x, float y) {
- const float Factor = 100f;
- const float Divisor = 1f/Factor;
- return new Vector2(Mathf.Round(x * Factor) * Divisor, Mathf.Round(y * Factor) * Divisor);
- }
-
- static bool IsAnimating (params AnimBool[] animBools) {
- foreach (var a in animBools)
- if (a.isAnimating) return true;
- return false;
- }
-
- void UpdateAttachments () {
- //skeleton = skeletonRenderer.skeleton;
- Skin defaultSkin = skeleton.Data.DefaultSkin;
- Skin skin = skeleton.Skin ?? defaultSkin;
- bool notDefaultSkin = skin != defaultSkin;
-
- attachmentTable.Clear();
- for (int i = skeleton.Slots.Count - 1; i >= 0; i--) {
- var attachments = new List();
- attachmentTable.Add(skeleton.Slots.Items[i], attachments);
- // Add skin attachments.
- skin.GetAttachments(i, attachments);
- if (notDefaultSkin && defaultSkin != null) // Add default skin attachments.
- defaultSkin.GetAttachments(i, attachments);
- }
-
- activeSkin = skeleton.Skin;
- }
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonDebugWindow.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonDebugWindow.cs.meta
deleted file mode 100644
index d3697a0..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Editor/Windows/SkeletonDebugWindow.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 7093e73ff3cf6c543ac5865980070b49
-timeCreated: 1494837950
-licenseType: Free
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator.meta
deleted file mode 100644
index 40aec39..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 1bf8fd476d074f449bbae932a1c8a360
-folderAsset: yes
-timeCreated: 1527569465
-licenseType: Free
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonPartsRendererInspector.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonPartsRendererInspector.cs
deleted file mode 100644
index 79d4d9e..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonPartsRendererInspector.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using UnityEngine;
-using UnityEditor;
-using Spine.Unity.Editor;
-
-namespace Spine.Unity.Examples {
- [CustomEditor(typeof(SkeletonPartsRenderer))]
- public class SkeletonRenderPartInspector : UnityEditor.Editor {
- SpineInspectorUtility.SerializedSortingProperties sortingProperties;
-
- void OnEnable () {
- sortingProperties = new SpineInspectorUtility.SerializedSortingProperties(SpineInspectorUtility.GetRenderersSerializedObject(serializedObject));
- }
-
- public override void OnInspectorGUI () {
- SpineInspectorUtility.SortingPropertyFields(sortingProperties, true);
-
- if (!serializedObject.isEditingMultipleObjects) {
- EditorGUILayout.Space();
- if (SpineInspectorUtility.LargeCenteredButton(new GUIContent("Select SkeletonRenderer", SpineEditorUtilities.Icons.spine))) {
- var thisSkeletonPartsRenderer = target as SkeletonPartsRenderer;
- var srs = thisSkeletonPartsRenderer.GetComponentInParent();
- if (srs != null && srs.partsRenderers.Contains(thisSkeletonPartsRenderer) && srs.SkeletonRenderer != null)
- Selection.activeGameObject = srs.SkeletonRenderer.gameObject;
- }
- }
- }
- }
-
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonPartsRendererInspector.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonPartsRendererInspector.cs.meta
deleted file mode 100644
index a97d662..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonPartsRendererInspector.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 30e43037bf4433645ad70266f34c1c8b
-timeCreated: 1458051036
-licenseType: Free
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonRenderSeparatorInspector.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonRenderSeparatorInspector.cs
deleted file mode 100644
index 1971259..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonRenderSeparatorInspector.cs
+++ /dev/null
@@ -1,323 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER
-#define NEW_PREFAB_SYSTEM
-#endif
-
-using UnityEngine;
-using UnityEditor;
-
-using System.Collections.Generic;
-
-using Spine.Unity;
-using Spine.Unity.Editor;
-
-namespace Spine.Unity.Examples {
-
- [CustomEditor(typeof(SkeletonRenderSeparator))]
- public class SkeletonRenderSeparatorInspector : UnityEditor.Editor {
- SkeletonRenderSeparator component;
-
- // Properties
- SerializedProperty skeletonRenderer_, copyPropertyBlock_, copyMeshRendererFlags_, partsRenderers_;
- static bool partsRenderersExpanded = false;
-
- // For separator field.
- SerializedObject skeletonRendererSerializedObject;
- SerializedProperty separatorNamesProp;
- static bool skeletonRendererExpanded = true;
- bool slotsReapplyRequired = false;
- bool partsRendererInitRequired = false;
-
- void OnEnable () {
- if (component == null)
- component = target as SkeletonRenderSeparator;
-
- skeletonRenderer_ = serializedObject.FindProperty("skeletonRenderer");
- copyPropertyBlock_ = serializedObject.FindProperty("copyPropertyBlock");
- copyMeshRendererFlags_ = serializedObject.FindProperty("copyMeshRendererFlags");
-
- var partsRenderers = component.partsRenderers;
- partsRenderers_ = serializedObject.FindProperty("partsRenderers");
- partsRenderers_.isExpanded = partsRenderersExpanded || // last state
- partsRenderers.Contains(null) || // null items found
- partsRenderers.Count < 1 || // no parts renderers
- (skeletonRenderer_.objectReferenceValue != null && SkeletonRendererSeparatorCount + 1 > partsRenderers.Count); // not enough parts renderers
- }
-
- int SkeletonRendererSeparatorCount {
- get {
- if (Application.isPlaying)
- return component.SkeletonRenderer.separatorSlots.Count;
- else
- return separatorNamesProp == null ? 0 : separatorNamesProp.arraySize;
- }
- }
-
- public override void OnInspectorGUI () {
-
- // Restore mesh part for undo logic after undo of "Add Parts Renderer".
- // Triggers regeneration and assignment of the mesh filter's mesh.
-
- bool isMeshFilterAlwaysNull = false;
- #if UNITY_EDITOR && NEW_PREFAB_SYSTEM
- // Don't store mesh or material at the prefab, otherwise it will permanently reload
- var prefabType = UnityEditor.PrefabUtility.GetPrefabAssetType(component);
- if (UnityEditor.PrefabUtility.IsPartOfPrefabAsset(component) &&
- (prefabType == UnityEditor.PrefabAssetType.Regular || prefabType == UnityEditor.PrefabAssetType.Variant)) {
- isMeshFilterAlwaysNull = true;
- }
- #endif
-
- if (!isMeshFilterAlwaysNull && component.GetComponent() && component.GetComponent().sharedMesh == null) {
- component.OnDisable();
- component.OnEnable();
- }
-
- var componentRenderers = component.partsRenderers;
- int totalParts;
-
- using (new SpineInspectorUtility.LabelWidthScope()) {
- bool componentEnabled = component.enabled;
- bool checkBox = EditorGUILayout.Toggle("Enable Separator", componentEnabled);
- if (checkBox != componentEnabled)
- component.enabled = checkBox;
- if (component.SkeletonRenderer.disableRenderingOnOverride && !component.enabled)
- EditorGUILayout.HelpBox("By default, SkeletonRenderer's MeshRenderer is disabled while the SkeletonRenderSeparator takes over rendering. It is re-enabled when SkeletonRenderSeparator is disabled.", MessageType.Info);
-
- EditorGUILayout.PropertyField(copyPropertyBlock_);
- EditorGUILayout.PropertyField(copyMeshRendererFlags_);
- }
-
- // SkeletonRenderer Box
- using (new SpineInspectorUtility.BoxScope(false)) {
- // Fancy SkeletonRenderer foldout reference field
- {
- EditorGUI.indentLevel++;
- EditorGUI.BeginChangeCheck();
- var foldoutSkeletonRendererRect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight);
- EditorGUI.PropertyField(foldoutSkeletonRendererRect, skeletonRenderer_);
- if (EditorGUI.EndChangeCheck())
- serializedObject.ApplyModifiedProperties();
- if (component.SkeletonRenderer != null) {
- skeletonRendererExpanded = EditorGUI.Foldout(foldoutSkeletonRendererRect, skeletonRendererExpanded, "");
- }
- EditorGUI.indentLevel--;
- }
-
- int separatorCount = 0;
- EditorGUI.BeginChangeCheck();
- if (component.SkeletonRenderer != null) {
- // Separators from SkeletonRenderer
- {
- bool skeletonRendererMismatch = skeletonRendererSerializedObject != null && skeletonRendererSerializedObject.targetObject != component.SkeletonRenderer;
- if (separatorNamesProp == null || skeletonRendererMismatch) {
- if (component.SkeletonRenderer != null) {
- skeletonRendererSerializedObject = new SerializedObject(component.SkeletonRenderer);
- separatorNamesProp = skeletonRendererSerializedObject.FindProperty("separatorSlotNames");
- separatorNamesProp.isExpanded = true;
- }
- }
-
- if (separatorNamesProp != null) {
- if (skeletonRendererExpanded) {
- EditorGUI.indentLevel++;
- SkeletonRendererInspector.SeparatorsField(separatorNamesProp);
- EditorGUI.indentLevel--;
- }
- separatorCount = this.SkeletonRendererSeparatorCount;
- }
- }
-
- if (SkeletonRendererSeparatorCount == 0) {
- EditorGUILayout.HelpBox("Separators are empty. Change the size to 1 and choose a slot if you want the render to be separated.", MessageType.Info);
- }
- }
-
- if (EditorGUI.EndChangeCheck()) {
- skeletonRendererSerializedObject.ApplyModifiedProperties();
-
- if (!Application.isPlaying)
- slotsReapplyRequired = true;
- }
-
-
- totalParts = separatorCount + 1;
- var counterStyle = skeletonRendererExpanded ? EditorStyles.label : EditorStyles.miniLabel;
- EditorGUILayout.LabelField(string.Format("{0}: separates into {1}.", SpineInspectorUtility.Pluralize(separatorCount, "separator", "separators"), SpineInspectorUtility.Pluralize(totalParts, "part", "parts") ), counterStyle);
- }
-
- // Parts renderers
- using (new SpineInspectorUtility.BoxScope(false)) {
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField(this.partsRenderers_, true);
- EditorGUI.indentLevel--;
-
- // Null items warning
- bool nullItemsFound = componentRenderers.Contains(null);
- if (nullItemsFound)
- EditorGUILayout.HelpBox("Some items in the parts renderers list are null and may cause problems.\n\nYou can right-click on that element and choose 'Delete Array Element' to remove it.", MessageType.Warning);
-
- // (Button) Match Separators count
- if (separatorNamesProp != null) {
- int currentRenderers = 0;
- foreach (var r in componentRenderers) {
- if (r != null)
- currentRenderers++;
- }
- int extraRenderersNeeded = totalParts - currentRenderers;
-
- if (component.enabled && component.SkeletonRenderer != null && extraRenderersNeeded > 0) {
- EditorGUILayout.HelpBox(string.Format("Insufficient parts renderers. Some parts will not be rendered."), MessageType.Warning);
- string addMissingLabel = string.Format("Add the missing renderer{1} ({0}) ", extraRenderersNeeded, SpineInspectorUtility.PluralThenS(extraRenderersNeeded));
- if (GUILayout.Button(addMissingLabel, GUILayout.Height(30f))) {
- AddPartsRenderer(extraRenderersNeeded);
- DetectOrphanedPartsRenderers(component);
- partsRendererInitRequired = true;
- }
- }
- }
-
- if (partsRenderers_.isExpanded != partsRenderersExpanded) partsRenderersExpanded = partsRenderers_.isExpanded;
- if (partsRenderers_.isExpanded) {
- using (new EditorGUILayout.HorizontalScope()) {
- // (Button) Destroy Renderers button
- if (componentRenderers.Count > 0) {
- if (GUILayout.Button("Clear Parts Renderers")) {
- // Do you really want to destroy all?
- Undo.RegisterCompleteObjectUndo(component, "Clear Parts Renderers");
- if (EditorUtility.DisplayDialog("Destroy Renderers", "Do you really want to destroy all the Parts Renderer GameObjects in the list?", "Destroy", "Cancel")) {
- foreach (var r in componentRenderers) {
- if (r != null)
- Undo.DestroyObjectImmediate(r.gameObject);
- }
- componentRenderers.Clear();
- // Do you also want to destroy orphans? (You monster.)
- DetectOrphanedPartsRenderers(component);
- }
- }
- }
-
- // (Button) Add Part Renderer button
- if (GUILayout.Button("Add Parts Renderer")) {
- AddPartsRenderer(1);
- partsRendererInitRequired = true;
- }
- }
- }
- }
-
- serializedObject.ApplyModifiedProperties();
-
- if (partsRendererInitRequired) {
- Undo.RegisterCompleteObjectUndo(component.GetComponent(), "Add Parts Renderers");
- component.OnEnable();
- partsRendererInitRequired = false;
- }
-
- if (slotsReapplyRequired && UnityEngine.Event.current.type == EventType.Repaint) {
- component.SkeletonRenderer.ReapplySeparatorSlotNames();
- component.SkeletonRenderer.LateUpdate();
- SceneView.RepaintAll();
- slotsReapplyRequired = false;
- }
- }
-
- public void AddPartsRenderer (int count) {
- var componentRenderers = component.partsRenderers;
- bool emptyFound = componentRenderers.Contains(null);
- if (emptyFound) {
- bool userClearEntries = EditorUtility.DisplayDialog("Empty entries found", "Null entries found. Do you want to remove null entries before adding the new renderer? ", "Clear Empty Entries", "Don't Clear");
- if (userClearEntries) componentRenderers.RemoveAll(x => x == null);
- }
-
- Undo.RegisterCompleteObjectUndo(component, "Add Parts Renderers");
- for (int i = 0; i < count; i++) {
- int index = componentRenderers.Count;
- var smr = SkeletonPartsRenderer.NewPartsRendererGameObject(component.transform, index.ToString());
- Undo.RegisterCreatedObjectUndo(smr.gameObject, "New Parts Renderer GameObject.");
- componentRenderers.Add(smr);
-
- // increment renderer sorting order.
- if (index == 0) continue;
- var prev = componentRenderers[index - 1]; if (prev == null) continue;
-
- var prevMeshRenderer = prev.GetComponent();
- var currentMeshRenderer = smr.GetComponent();
- if (prevMeshRenderer == null || currentMeshRenderer == null) continue;
-
- int prevSortingLayer = prevMeshRenderer.sortingLayerID;
- int prevSortingOrder = prevMeshRenderer.sortingOrder;
- currentMeshRenderer.sortingLayerID = prevSortingLayer;
- currentMeshRenderer.sortingOrder = prevSortingOrder + SkeletonRenderSeparator.DefaultSortingOrderIncrement;
- }
-
- }
-
- /// Detects orphaned parts renderers and offers to delete them.
- public void DetectOrphanedPartsRenderers (SkeletonRenderSeparator component) {
- var children = component.GetComponentsInChildren();
-
- var orphans = new System.Collections.Generic.List();
- foreach (var r in children) {
- if (!component.partsRenderers.Contains(r))
- orphans.Add(r);
- }
-
- if (orphans.Count > 0) {
- if (EditorUtility.DisplayDialog("Destroy Submesh Renderers", "Unassigned renderers were found. Do you want to delete them? (These may belong to another Render Separator in the same hierarchy. If you don't have another Render Separator component in the children of this GameObject, it's likely safe to delete. Warning: This operation cannot be undone.)", "Delete", "Cancel")) {
- foreach (var o in orphans) {
- Undo.DestroyObjectImmediate(o.gameObject);
- }
- }
- }
- }
-
- #region SkeletonRenderer Context Menu Item
- [MenuItem ("CONTEXT/SkeletonRenderer/Add Skeleton Render Separator")]
- static void AddRenderSeparatorComponent (MenuCommand cmd) {
- var skeletonRenderer = cmd.context as SkeletonRenderer;
- var newComponent = skeletonRenderer.gameObject.AddComponent();
-
- Undo.RegisterCreatedObjectUndo(newComponent, "Add SkeletonRenderSeparator");
- }
-
- // Validate
- [MenuItem ("CONTEXT/SkeletonRenderer/Add Skeleton Render Separator", true)]
- static bool ValidateAddRenderSeparatorComponent (MenuCommand cmd) {
- var skeletonRenderer = cmd.context as SkeletonRenderer;
- var separator = skeletonRenderer.GetComponent();
- bool separatorNotOnObject = separator == null;
- return separatorNotOnObject;
- }
- #endregion
-
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonRenderSeparatorInspector.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonRenderSeparatorInspector.cs.meta
deleted file mode 100644
index 7e8e658..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonRenderSeparatorInspector.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: d2a5062cfe5dd4344831cda4723128af
-timeCreated: 1458067064
-licenseType: Free
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SlotBlendModes.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SlotBlendModes.meta
deleted file mode 100644
index 34d8d7e..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SlotBlendModes.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 18ee2876d53412642bbfa1070a1b947f
-folderAsset: yes
-timeCreated: 1527569487
-licenseType: Free
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs b/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs
deleted file mode 100644
index 8899952..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using UnityEngine;
-using UnityEditor;
-using Spine.Unity.Deprecated;
-using System;
-
-namespace Spine.Unity.Editor {
- using Editor = UnityEditor.Editor;
-
- [Obsolete("The spine-unity 3.7 runtime introduced SkeletonDataModifierAssets BlendModeMaterials which replaced SlotBlendModes. Will be removed in spine-unity 3.9.", false)]
- public class SlotBlendModesEditor : Editor {
-
- [MenuItem("CONTEXT/SkeletonRenderer/Add Slot Blend Modes Component")]
- static void AddSlotBlendModesComponent (MenuCommand command) {
- var skeletonRenderer = (SkeletonRenderer)command.context;
- skeletonRenderer.gameObject.AddComponent();
- }
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs.meta b/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs.meta
deleted file mode 100644
index 21d0e26..0000000
--- a/unity/Assets/Plugin/Spine/Editor/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: cbec7dc66dca80a419477536c23b7a0d
-timeCreated: 1496449255
-licenseType: Free
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Runtime/spine-csharp.meta b/unity/Assets/Plugin/Spine/Runtime/spine-csharp.meta
deleted file mode 100644
index 81ebc4e..0000000
--- a/unity/Assets/Plugin/Spine/Runtime/spine-csharp.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: a60dd41ef13d98647b9f963089feb7b0
-folderAsset: yes
-timeCreated: 1456265151
-licenseType: Free
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Runtime/spine-csharp/Skeleton.cs b/unity/Assets/Plugin/Spine/Runtime/spine-csharp/Skeleton.cs
deleted file mode 100644
index 1bd5017..0000000
--- a/unity/Assets/Plugin/Spine/Runtime/spine-csharp/Skeleton.cs
+++ /dev/null
@@ -1,635 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using System;
-using System.Collections.Generic;
-
-namespace Spine {
- public class Skeleton {
- internal SkeletonData data;
- internal ExposedList bones;
- internal ExposedList slots;
- internal ExposedList drawOrder;
- internal ExposedList ikConstraints;
- internal ExposedList transformConstraints;
- internal ExposedList pathConstraints;
- internal ExposedList updateCache = new ExposedList();
- internal ExposedList updateCacheReset = new ExposedList();
- internal Skin skin;
- internal float r = 1, g = 1, b = 1, a = 1;
- internal float time;
- private float scaleX = 1, scaleY = 1;
- internal float x, y;
-
- public SkeletonData Data { get { return data; } }
- public ExposedList Bones { get { return bones; } }
- public ExposedList UpdateCacheList { get { return updateCache; } }
- public ExposedList Slots { get { return slots; } }
- public ExposedList DrawOrder { get { return drawOrder; } }
- public ExposedList IkConstraints { get { return ikConstraints; } }
- public ExposedList PathConstraints { get { return pathConstraints; } }
- public ExposedList TransformConstraints { get { return transformConstraints; } }
- public Skin Skin { get { return skin; } set { SetSkin(value); } }
- public float R { get { return r; } set { r = value; } }
- public float G { get { return g; } set { g = value; } }
- public float B { get { return b; } set { b = value; } }
- public float A { get { return a; } set { a = value; } }
- public float Time { get { return time; } set { time = value; } }
- public float X { get { return x; } set { x = value; } }
- public float Y { get { return y; } set { y = value; } }
- public float ScaleX { get { return scaleX; } set { scaleX = value; } }
- public float ScaleY { get { return scaleY * (Bone.yDown ? -1 : 1); } set { scaleY = value; } }
-
- [Obsolete("Use ScaleX instead. FlipX is when ScaleX is negative.")]
- public bool FlipX { get { return scaleX < 0; } set { scaleX = value ? -1f : 1f; } }
-
- [Obsolete("Use ScaleY instead. FlipY is when ScaleY is negative.")]
- public bool FlipY { get { return scaleY < 0; } set { scaleY = value ? -1f : 1f; } }
-
- public Bone RootBone {
- get { return bones.Count == 0 ? null : bones.Items[0]; }
- }
-
- public Skeleton (SkeletonData data) {
- if (data == null) throw new ArgumentNullException("data", "data cannot be null.");
- this.data = data;
-
- bones = new ExposedList(data.bones.Count);
- foreach (BoneData boneData in data.bones) {
- Bone bone;
- if (boneData.parent == null) {
- bone = new Bone(boneData, this, null);
- } else {
- Bone parent = bones.Items[boneData.parent.index];
- bone = new Bone(boneData, this, parent);
- parent.children.Add(bone);
- }
- bones.Add(bone);
- }
-
- slots = new ExposedList(data.slots.Count);
- drawOrder = new ExposedList(data.slots.Count);
- foreach (SlotData slotData in data.slots) {
- Bone bone = bones.Items[slotData.boneData.index];
- Slot slot = new Slot(slotData, bone);
- slots.Add(slot);
- drawOrder.Add(slot);
- }
-
- ikConstraints = new ExposedList(data.ikConstraints.Count);
- foreach (IkConstraintData ikConstraintData in data.ikConstraints)
- ikConstraints.Add(new IkConstraint(ikConstraintData, this));
-
- transformConstraints = new ExposedList(data.transformConstraints.Count);
- foreach (TransformConstraintData transformConstraintData in data.transformConstraints)
- transformConstraints.Add(new TransformConstraint(transformConstraintData, this));
-
- pathConstraints = new ExposedList (data.pathConstraints.Count);
- foreach (PathConstraintData pathConstraintData in data.pathConstraints)
- pathConstraints.Add(new PathConstraint(pathConstraintData, this));
-
- UpdateCache();
- UpdateWorldTransform();
- }
-
- /// Caches information about bones and constraints. Must be called if the is modified or if bones, constraints, or
- /// constraints, or weighted path attachments are added or removed.
- public void UpdateCache () {
- var updateCache = this.updateCache;
- updateCache.Clear();
- this.updateCacheReset.Clear();
-
- int boneCount = this.bones.Items.Length;
- var bones = this.bones;
- for (int i = 0; i < boneCount; i++) {
- Bone bone = bones.Items[i];
- bone.sorted = bone.data.skinRequired;
- bone.active = !bone.sorted;
- }
- if (skin != null) {
- Object[] skinBones = skin.bones.Items;
- for (int i = 0, n = skin.bones.Count; i < n; i++) {
- Bone bone = (Bone)bones.Items[((BoneData)skinBones[i]).index];
- do {
- bone.sorted = false;
- bone.active = true;
- bone = bone.parent;
- } while (bone != null);
- }
- }
-
- int ikCount = this.ikConstraints.Count, transformCount = this.transformConstraints.Count, pathCount = this.pathConstraints.Count;
- var ikConstraints = this.ikConstraints;
- var transformConstraints = this.transformConstraints;
- var pathConstraints = this.pathConstraints;
- int constraintCount = ikCount + transformCount + pathCount;
- //outer:
- for (int i = 0; i < constraintCount; i++) {
- for (int ii = 0; ii < ikCount; ii++) {
- IkConstraint constraint = ikConstraints.Items[ii];
- if (constraint.data.order == i) {
- SortIkConstraint(constraint);
- goto continue_outer; //continue outer;
- }
- }
- for (int ii = 0; ii < transformCount; ii++) {
- TransformConstraint constraint = transformConstraints.Items[ii];
- if (constraint.data.order == i) {
- SortTransformConstraint(constraint);
- goto continue_outer; //continue outer;
- }
- }
- for (int ii = 0; ii < pathCount; ii++) {
- PathConstraint constraint = pathConstraints.Items[ii];
- if (constraint.data.order == i) {
- SortPathConstraint(constraint);
- goto continue_outer; //continue outer;
- }
- }
- continue_outer: {}
- }
-
- for (int i = 0; i < boneCount; i++)
- SortBone(bones.Items[i]);
- }
-
- private void SortIkConstraint (IkConstraint constraint) {
- constraint.active = constraint.target.active
- && (!constraint.data.skinRequired || (skin != null && skin.constraints.Contains(constraint.data)));
- if (!constraint.active) return;
-
- Bone target = constraint.target;
- SortBone(target);
-
- var constrained = constraint.bones;
- Bone parent = constrained.Items[0];
- SortBone(parent);
-
- if (constrained.Count > 1) {
- Bone child = constrained.Items[constrained.Count - 1];
- if (!updateCache.Contains(child))
- updateCacheReset.Add(child);
- }
-
- updateCache.Add(constraint);
-
- SortReset(parent.children);
- constrained.Items[constrained.Count - 1].sorted = true;
- }
-
- private void SortPathConstraint (PathConstraint constraint) {
- constraint.active = constraint.target.bone.active
- && (!constraint.data.skinRequired || (skin != null && skin.constraints.Contains(constraint.data)));
- if (!constraint.active) return;
-
- Slot slot = constraint.target;
- int slotIndex = slot.data.index;
- Bone slotBone = slot.bone;
- if (skin != null) SortPathConstraintAttachment(skin, slotIndex, slotBone);
- if (data.defaultSkin != null && data.defaultSkin != skin)
- SortPathConstraintAttachment(data.defaultSkin, slotIndex, slotBone);
-
- Attachment attachment = slot.attachment;
- if (attachment is PathAttachment) SortPathConstraintAttachment(attachment, slotBone);
-
- var constrained = constraint.bones;
- int boneCount = constrained.Count;
- for (int i = 0; i < boneCount; i++)
- SortBone(constrained.Items[i]);
-
- updateCache.Add(constraint);
-
- for (int i = 0; i < boneCount; i++)
- SortReset(constrained.Items[i].children);
- for (int i = 0; i < boneCount; i++)
- constrained.Items[i].sorted = true;
- }
-
- private void SortTransformConstraint (TransformConstraint constraint) {
- constraint.active = constraint.target.active
- && (!constraint.data.skinRequired || (skin != null && skin.constraints.Contains(constraint.data)));
- if (!constraint.active) return;
-
- SortBone(constraint.target);
-
- var constrained = constraint.bones;
- int boneCount = constrained.Count;
- if (constraint.data.local) {
- for (int i = 0; i < boneCount; i++) {
- Bone child = constrained.Items[i];
- SortBone(child.parent);
- if (!updateCache.Contains(child)) updateCacheReset.Add(child);
- }
- } else {
- for (int i = 0; i < boneCount; i++)
- SortBone(constrained.Items[i]);
- }
-
- updateCache.Add(constraint);
-
- for (int i = 0; i < boneCount; i++)
- SortReset(constrained.Items[i].children);
- for (int i = 0; i < boneCount; i++)
- constrained.Items[i].sorted = true;
- }
-
- private void SortPathConstraintAttachment (Skin skin, int slotIndex, Bone slotBone) {
- foreach (var entryObj in skin.Attachments.Keys) {
- var entry = (Skin.SkinEntry)entryObj;
- if (entry.SlotIndex == slotIndex) SortPathConstraintAttachment(entry.Attachment, slotBone);
- }
- }
-
- private void SortPathConstraintAttachment (Attachment attachment, Bone slotBone) {
- if (!(attachment is PathAttachment)) return;
- int[] pathBones = ((PathAttachment)attachment).bones;
- if (pathBones == null)
- SortBone(slotBone);
- else {
- var bones = this.bones;
- for (int i = 0, n = pathBones.Length; i < n;) {
- int nn = pathBones[i++];
- nn += i;
- while (i < nn)
- SortBone(bones.Items[pathBones[i++]]);
- }
- }
- }
-
- private void SortBone (Bone bone) {
- if (bone.sorted) return;
- Bone parent = bone.parent;
- if (parent != null) SortBone(parent);
- bone.sorted = true;
- updateCache.Add(bone);
- }
-
- private static void SortReset (ExposedList bones) {
- var bonesItems = bones.Items;
- for (int i = 0, n = bones.Count; i < n; i++) {
- Bone bone = bonesItems[i];
- if (!bone.active) continue;
- if (bone.sorted) SortReset(bone.children);
- bone.sorted = false;
- }
- }
-
- /// Updates the world transform for each bone and applies constraints.
- public void UpdateWorldTransform () {
- var updateCacheReset = this.updateCacheReset;
- var updateCacheResetItems = updateCacheReset.Items;
- for (int i = 0, n = updateCacheReset.Count; i < n; i++) {
- Bone bone = updateCacheResetItems[i];
- bone.ax = bone.x;
- bone.ay = bone.y;
- bone.arotation = bone.rotation;
- bone.ascaleX = bone.scaleX;
- bone.ascaleY = bone.scaleY;
- bone.ashearX = bone.shearX;
- bone.ashearY = bone.shearY;
- bone.appliedValid = true;
- }
- var updateItems = this.updateCache.Items;
- for (int i = 0, n = updateCache.Count; i < n; i++)
- updateItems[i].Update();
- }
-
- ///
- /// Temporarily sets the root bone as a child of the specified bone, then updates the world transform for each bone and applies
- /// all constraints.
- ///
- public void UpdateWorldTransform (Bone parent) {
- // This partial update avoids computing the world transform for constrained bones when 1) the bone is not updated
- // before the constraint, 2) the constraint only needs to access the applied local transform, and 3) the constraint calls
- // updateWorldTransform.
- var updateCacheReset = this.updateCacheReset;
- var updateCacheResetItems = updateCacheReset.Items;
- for (int i = 0, n = updateCacheReset.Count; i < n; i++) {
- Bone bone = updateCacheResetItems[i];
- bone.ax = bone.x;
- bone.ay = bone.y;
- bone.arotation = bone.rotation;
- bone.ascaleX = bone.scaleX;
- bone.ascaleY = bone.scaleY;
- bone.ashearX = bone.shearX;
- bone.ashearY = bone.shearY;
- bone.appliedValid = true;
- }
-
- // Apply the parent bone transform to the root bone. The root bone always inherits scale, rotation and reflection.
- Bone rootBone = this.RootBone;
- float pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d;
- rootBone.worldX = pa * x + pb * y + parent.worldX;
- rootBone.worldY = pc * x + pd * y + parent.worldY;
-
- float rotationY = rootBone.rotation + 90 + rootBone.shearY;
- float la = MathUtils.CosDeg(rootBone.rotation + rootBone.shearX) * rootBone.scaleX;
- float lb = MathUtils.CosDeg(rotationY) * rootBone.scaleY;
- float lc = MathUtils.SinDeg(rootBone.rotation + rootBone.shearX) * rootBone.scaleX;
- float ld = MathUtils.SinDeg(rotationY) * rootBone.scaleY;
- rootBone.a = (pa * la + pb * lc) * scaleX;
- rootBone.b = (pa * lb + pb * ld) * scaleX;
- rootBone.c = (pc * la + pd * lc) * scaleY;
- rootBone.d = (pc * lb + pd * ld) * scaleY;
-
- // Update everything except root bone.
- var updateCache = this.updateCache;
- var updateCacheItems = updateCache.Items;
- for (int i = 0, n = updateCache.Count; i < n; i++) {
- var updatable = updateCacheItems[i];
- if (updatable != rootBone)
- updatable.Update();
- }
- }
-
- /// Sets the bones, constraints, and slots to their setup pose values.
- public void SetToSetupPose () {
- SetBonesToSetupPose();
- SetSlotsToSetupPose();
- }
-
- /// Sets the bones and constraints to their setup pose values.
- public void SetBonesToSetupPose () {
- var bonesItems = this.bones.Items;
- for (int i = 0, n = bones.Count; i < n; i++)
- bonesItems[i].SetToSetupPose();
-
- var ikConstraintsItems = this.ikConstraints.Items;
- for (int i = 0, n = ikConstraints.Count; i < n; i++) {
- IkConstraint constraint = ikConstraintsItems[i];
- constraint.mix = constraint.data.mix;
- constraint.softness = constraint.data.softness;
- constraint.bendDirection = constraint.data.bendDirection;
- constraint.compress = constraint.data.compress;
- constraint.stretch = constraint.data.stretch;
- }
-
- var transformConstraintsItems = this.transformConstraints.Items;
- for (int i = 0, n = transformConstraints.Count; i < n; i++) {
- TransformConstraint constraint = transformConstraintsItems[i];
- TransformConstraintData constraintData = constraint.data;
- constraint.rotateMix = constraintData.rotateMix;
- constraint.translateMix = constraintData.translateMix;
- constraint.scaleMix = constraintData.scaleMix;
- constraint.shearMix = constraintData.shearMix;
- }
-
- var pathConstraintItems = this.pathConstraints.Items;
- for (int i = 0, n = pathConstraints.Count; i < n; i++) {
- PathConstraint constraint = pathConstraintItems[i];
- PathConstraintData constraintData = constraint.data;
- constraint.position = constraintData.position;
- constraint.spacing = constraintData.spacing;
- constraint.rotateMix = constraintData.rotateMix;
- constraint.translateMix = constraintData.translateMix;
- }
- }
-
- public void SetSlotsToSetupPose () {
- var slots = this.slots;
- var slotsItems = slots.Items;
- drawOrder.Clear();
- for (int i = 0, n = slots.Count; i < n; i++)
- drawOrder.Add(slotsItems[i]);
-
- for (int i = 0, n = slots.Count; i < n; i++)
- slotsItems[i].SetToSetupPose();
- }
-
- /// May be null.
- public Bone FindBone (string boneName) {
- if (boneName == null) throw new ArgumentNullException("boneName", "boneName cannot be null.");
- var bones = this.bones;
- var bonesItems = bones.Items;
- for (int i = 0, n = bones.Count; i < n; i++) {
- Bone bone = bonesItems[i];
- if (bone.data.name == boneName) return bone;
- }
- return null;
- }
-
- /// -1 if the bone was not found.
- public int FindBoneIndex (string boneName) {
- if (boneName == null) throw new ArgumentNullException("boneName", "boneName cannot be null.");
- var bones = this.bones;
- var bonesItems = bones.Items;
- for (int i = 0, n = bones.Count; i < n; i++)
- if (bonesItems[i].data.name == boneName) return i;
- return -1;
- }
-
- /// May be null.
- public Slot FindSlot (string slotName) {
- if (slotName == null) throw new ArgumentNullException("slotName", "slotName cannot be null.");
- var slots = this.slots;
- var slotsItems = slots.Items;
- for (int i = 0, n = slots.Count; i < n; i++) {
- Slot slot = slotsItems[i];
- if (slot.data.name == slotName) return slot;
- }
- return null;
- }
-
- /// -1 if the bone was not found.
- public int FindSlotIndex (string slotName) {
- if (slotName == null) throw new ArgumentNullException("slotName", "slotName cannot be null.");
- var slots = this.slots;
- var slotsItems = slots.Items;
- for (int i = 0, n = slots.Count; i < n; i++)
- if (slotsItems[i].data.name.Equals(slotName)) return i;
- return -1;
- }
-
- /// Sets a skin by name (see SetSkin).
- public void SetSkin (string skinName) {
- Skin foundSkin = data.FindSkin(skinName);
- if (foundSkin == null) throw new ArgumentException("Skin not found: " + skinName, "skinName");
- SetSkin(foundSkin);
- }
-
- ///
- /// Sets the skin used to look up attachments before looking in the . If the
- /// skin is changed, is called.
- ///
- /// Attachments from the new skin are attached if the corresponding attachment from the old skin was attached.
- /// If there was no old skin, each slot's setup mode attachment is attached from the new skin.
- ///
- /// After changing the skin, the visible attachments can be reset to those attached in the setup pose by calling
- /// .
- /// Also, often is called before the next time the
- /// skeleton is rendered to allow any attachment keys in the current animation(s) to hide or show attachments from the new skin.
- ///
- /// May be null.
- public void SetSkin (Skin newSkin) {
- if (newSkin == skin) return;
- if (newSkin != null) {
- if (skin != null)
- newSkin.AttachAll(this, skin);
- else {
- ExposedList slots = this.slots;
- for (int i = 0, n = slots.Count; i < n; i++) {
- Slot slot = slots.Items[i];
- string name = slot.data.attachmentName;
- if (name != null) {
- Attachment attachment = newSkin.GetAttachment(i, name);
- if (attachment != null) slot.Attachment = attachment;
- }
- }
- }
- }
- skin = newSkin;
- UpdateCache();
- }
-
- /// Finds an attachment by looking in the {@link #skin} and {@link SkeletonData#defaultSkin} using the slot name and attachment name.
- /// May be null.
- public Attachment GetAttachment (string slotName, string attachmentName) {
- return GetAttachment(data.FindSlotIndex(slotName), attachmentName);
- }
-
- /// Finds an attachment by looking in the skin and skeletonData.defaultSkin using the slot index and attachment name.First the skin is checked and if the attachment was not found, the default skin is checked.
- /// May be null.
- public Attachment GetAttachment (int slotIndex, string attachmentName) {
- if (attachmentName == null) throw new ArgumentNullException("attachmentName", "attachmentName cannot be null.");
- if (skin != null) {
- Attachment attachment = skin.GetAttachment(slotIndex, attachmentName);
- if (attachment != null) return attachment;
- }
- return data.defaultSkin != null ? data.defaultSkin.GetAttachment(slotIndex, attachmentName) : null;
- }
-
- /// A convenience method to set an attachment by finding the slot with FindSlot, finding the attachment with GetAttachment, then setting the slot's slot.Attachment.
- /// May be null to clear the slot's attachment.
- public void SetAttachment (string slotName, string attachmentName) {
- if (slotName == null) throw new ArgumentNullException("slotName", "slotName cannot be null.");
- ExposedList slots = this.slots;
- for (int i = 0, n = slots.Count; i < n; i++) {
- Slot slot = slots.Items[i];
- if (slot.data.name == slotName) {
- Attachment attachment = null;
- if (attachmentName != null) {
- attachment = GetAttachment(i, attachmentName);
- if (attachment == null) throw new Exception("Attachment not found: " + attachmentName + ", for slot: " + slotName);
- }
- slot.Attachment = attachment;
- return;
- }
- }
- throw new Exception("Slot not found: " + slotName);
- }
-
- /// May be null.
- public IkConstraint FindIkConstraint (string constraintName) {
- if (constraintName == null) throw new ArgumentNullException("constraintName", "constraintName cannot be null.");
- ExposedList ikConstraints = this.ikConstraints;
- for (int i = 0, n = ikConstraints.Count; i < n; i++) {
- IkConstraint ikConstraint = ikConstraints.Items[i];
- if (ikConstraint.data.name == constraintName) return ikConstraint;
- }
- return null;
- }
-
- /// May be null.
- public TransformConstraint FindTransformConstraint (string constraintName) {
- if (constraintName == null) throw new ArgumentNullException("constraintName", "constraintName cannot be null.");
- ExposedList transformConstraints = this.transformConstraints;
- for (int i = 0, n = transformConstraints.Count; i < n; i++) {
- TransformConstraint transformConstraint = transformConstraints.Items[i];
- if (transformConstraint.data.Name == constraintName) return transformConstraint;
- }
- return null;
- }
-
- /// May be null.
- public PathConstraint FindPathConstraint (string constraintName) {
- if (constraintName == null) throw new ArgumentNullException("constraintName", "constraintName cannot be null.");
- ExposedList pathConstraints = this.pathConstraints;
- for (int i = 0, n = pathConstraints.Count; i < n; i++) {
- PathConstraint constraint = pathConstraints.Items[i];
- if (constraint.data.Name.Equals(constraintName)) return constraint;
- }
- return null;
- }
-
- public void Update (float delta) {
- time += delta;
- }
-
- /// Returns the axis aligned bounding box (AABB) of the region and mesh attachments for the current pose.
- /// The horizontal distance between the skeleton origin and the left side of the AABB.
- /// The vertical distance between the skeleton origin and the bottom side of the AABB.
- /// The width of the AABB
- /// The height of the AABB.
- /// Reference to hold a float[]. May be a null reference. This method will assign it a new float[] with the appropriate size as needed.
- public void GetBounds (out float x, out float y, out float width, out float height, ref float[] vertexBuffer) {
- float[] temp = vertexBuffer;
- temp = temp ?? new float[8];
- var drawOrderItems = this.drawOrder.Items;
- float minX = int.MaxValue, minY = int.MaxValue, maxX = int.MinValue, maxY = int.MinValue;
- for (int i = 0, n = drawOrderItems.Length; i < n; i++) {
- Slot slot = drawOrderItems[i];
- if (!slot.bone.active) continue;
- int verticesLength = 0;
- float[] vertices = null;
- Attachment attachment = slot.attachment;
- var regionAttachment = attachment as RegionAttachment;
- if (regionAttachment != null) {
- verticesLength = 8;
- vertices = temp;
- if (vertices.Length < 8) vertices = temp = new float[8];
- regionAttachment.ComputeWorldVertices(slot.bone, temp, 0);
- } else {
- var meshAttachment = attachment as MeshAttachment;
- if (meshAttachment != null) {
- MeshAttachment mesh = meshAttachment;
- verticesLength = mesh.WorldVerticesLength;
- vertices = temp;
- if (vertices.Length < verticesLength) vertices = temp = new float[verticesLength];
- mesh.ComputeWorldVertices(slot, 0, verticesLength, temp, 0);
- }
- }
-
- if (vertices != null) {
- for (int ii = 0; ii < verticesLength; ii += 2) {
- float vx = vertices[ii], vy = vertices[ii + 1];
- minX = Math.Min(minX, vx);
- minY = Math.Min(minY, vy);
- maxX = Math.Max(maxX, vx);
- maxY = Math.Max(maxY, vy);
- }
- }
- }
- x = minX;
- y = minY;
- width = maxX - minX;
- height = maxY - minY;
- vertexBuffer = temp;
- }
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Runtime/spine-csharp/Skeleton.cs.meta b/unity/Assets/Plugin/Spine/Runtime/spine-csharp/Skeleton.cs.meta
deleted file mode 100644
index 619d2cc..0000000
--- a/unity/Assets/Plugin/Spine/Runtime/spine-csharp/Skeleton.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 12ac3c1c7546be24fb9625d3c850619d
-timeCreated: 1456265153
-licenseType: Free
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Runtime/spine-csharp/SkeletonBinary.cs b/unity/Assets/Plugin/Spine/Runtime/spine-csharp/SkeletonBinary.cs
deleted file mode 100644
index 810c22b..0000000
--- a/unity/Assets/Plugin/Spine/Runtime/spine-csharp/SkeletonBinary.cs
+++ /dev/null
@@ -1,997 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#if (UNITY_5 || UNITY_5_3_OR_NEWER || UNITY_WSA || UNITY_WP8 || UNITY_WP8_1)
-#define IS_UNITY
-#endif
-
-using System;
-using System.IO;
-using System.Collections.Generic;
-
-#if WINDOWS_STOREAPP
-using System.Threading.Tasks;
-using Windows.Storage;
-#endif
-
-namespace Spine {
- public class SkeletonBinary {
- public const int BONE_ROTATE = 0;
- public const int BONE_TRANSLATE = 1;
- public const int BONE_SCALE = 2;
- public const int BONE_SHEAR = 3;
-
- public const int SLOT_ATTACHMENT = 0;
- public const int SLOT_COLOR = 1;
- public const int SLOT_TWO_COLOR = 2;
-
- public const int PATH_POSITION = 0;
- public const int PATH_SPACING = 1;
- public const int PATH_MIX = 2;
-
- public const int CURVE_LINEAR = 0;
- public const int CURVE_STEPPED = 1;
- public const int CURVE_BEZIER = 2;
-
- public float Scale { get; set; }
-
- private AttachmentLoader attachmentLoader;
- private List linkedMeshes = new List();
-
- public SkeletonBinary (params Atlas[] atlasArray)
- : this(new AtlasAttachmentLoader(atlasArray)) {
- }
-
- public SkeletonBinary (AttachmentLoader attachmentLoader) {
- if (attachmentLoader == null) throw new ArgumentNullException("attachmentLoader");
- this.attachmentLoader = attachmentLoader;
- Scale = 1;
- }
-
- #if !ISUNITY && WINDOWS_STOREAPP
- private async Task ReadFile(string path) {
- var folder = Windows.ApplicationModel.Package.Current.InstalledLocation;
- using (var input = new BufferedStream(await folder.GetFileAsync(path).AsTask().ConfigureAwait(false))) {
- SkeletonData skeletonData = ReadSkeletonData(input);
- skeletonData.Name = Path.GetFileNameWithoutExtension(path);
- return skeletonData;
- }
- }
-
- public SkeletonData ReadSkeletonData (String path) {
- return this.ReadFile(path).Result;
- }
- #else
- public SkeletonData ReadSkeletonData (String path) {
- #if WINDOWS_PHONE
- using (var input = new BufferedStream(Microsoft.Xna.Framework.TitleContainer.OpenStream(path))) {
- #else
- using (var input = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)) {
- #endif
- SkeletonData skeletonData = ReadSkeletonData(input);
- skeletonData.name = Path.GetFileNameWithoutExtension(path);
- return skeletonData;
- }
- }
- #endif // WINDOWS_STOREAPP
-
- public static readonly TransformMode[] TransformModeValues = {
- TransformMode.Normal,
- TransformMode.OnlyTranslation,
- TransformMode.NoRotationOrReflection,
- TransformMode.NoScale,
- TransformMode.NoScaleOrReflection
- };
-
- /// Returns the version string of binary skeleton data.
- public static string GetVersionString (Stream file) {
- if (file == null) throw new ArgumentNullException("file");
-
- SkeletonInput input = new SkeletonInput(file);
- return input.GetVersionString();
- }
-
- public SkeletonData ReadSkeletonData (Stream file) {
- if (file == null) throw new ArgumentNullException("file");
- float scale = Scale;
-
- var skeletonData = new SkeletonData();
- SkeletonInput input = new SkeletonInput(file);
-
- skeletonData.hash = input.ReadString();
- if (skeletonData.hash.Length == 0) skeletonData.hash = null;
- skeletonData.version = input.ReadString();
- if (skeletonData.version.Length == 0) skeletonData.version = null;
- if ("3.8.75" == skeletonData.version)
- throw new Exception("Unsupported skeleton data, please export with a newer version of Spine.");
- skeletonData.x = input.ReadFloat();
- skeletonData.y = input.ReadFloat();
- skeletonData.width = input.ReadFloat();
- skeletonData.height = input.ReadFloat();
-
- bool nonessential = input.ReadBoolean();
-
- if (nonessential) {
- skeletonData.fps = input.ReadFloat();
-
- skeletonData.imagesPath = input.ReadString();
- if (string.IsNullOrEmpty(skeletonData.imagesPath)) skeletonData.imagesPath = null;
-
- skeletonData.audioPath = input.ReadString();
- if (string.IsNullOrEmpty(skeletonData.audioPath)) skeletonData.audioPath = null;
- }
-
- int n;
- Object[] o;
-
- // Strings.
- input.strings = new ExposedList(n = input.ReadInt(true));
- o = input.strings.Resize(n).Items;
- for (int i = 0; i < n; i++)
- o[i] = input.ReadString();
-
- // Bones.
- o = skeletonData.bones.Resize(n = input.ReadInt(true)).Items;
- for (int i = 0; i < n; i++) {
- String name = input.ReadString();
- BoneData parent = i == 0 ? null : skeletonData.bones.Items[input.ReadInt(true)];
- BoneData data = new BoneData(i, name, parent);
- data.rotation = input.ReadFloat();
- data.x = input.ReadFloat() * scale;
- data.y = input.ReadFloat() * scale;
- data.scaleX = input.ReadFloat();
- data.scaleY = input.ReadFloat();
- data.shearX = input.ReadFloat();
- data.shearY = input.ReadFloat();
- data.length = input.ReadFloat() * scale;
- data.transformMode = TransformModeValues[input.ReadInt(true)];
- data.skinRequired = input.ReadBoolean();
- if (nonessential) input.ReadInt(); // Skip bone color.
- o[i] = data;
- }
-
- // Slots.
- o = skeletonData.slots.Resize(n = input.ReadInt(true)).Items;
- for (int i = 0; i < n; i++) {
- String slotName = input.ReadString();
- BoneData boneData = skeletonData.bones.Items[input.ReadInt(true)];
- SlotData slotData = new SlotData(i, slotName, boneData);
- int color = input.ReadInt();
- slotData.r = ((color & 0xff000000) >> 24) / 255f;
- slotData.g = ((color & 0x00ff0000) >> 16) / 255f;
- slotData.b = ((color & 0x0000ff00) >> 8) / 255f;
- slotData.a = ((color & 0x000000ff)) / 255f;
-
- int darkColor = input.ReadInt(); // 0x00rrggbb
- if (darkColor != -1) {
- slotData.hasSecondColor = true;
- slotData.r2 = ((darkColor & 0x00ff0000) >> 16) / 255f;
- slotData.g2 = ((darkColor & 0x0000ff00) >> 8) / 255f;
- slotData.b2 = ((darkColor & 0x000000ff)) / 255f;
- }
-
- slotData.attachmentName = input.ReadStringRef();
- slotData.blendMode = (BlendMode)input.ReadInt(true);
- o[i] = slotData;
- }
-
- // IK constraints.
- o = skeletonData.ikConstraints.Resize(n = input.ReadInt(true)).Items;
- for (int i = 0, nn; i < n; i++) {
- IkConstraintData data = new IkConstraintData(input.ReadString());
- data.order = input.ReadInt(true);
- data.skinRequired = input.ReadBoolean();
- Object[] bones = data.bones.Resize(nn = input.ReadInt(true)).Items;
- for (int ii = 0; ii < nn; ii++)
- bones[ii] = skeletonData.bones.Items[input.ReadInt(true)];
- data.target = skeletonData.bones.Items[input.ReadInt(true)];
- data.mix = input.ReadFloat();
- data.softness = input.ReadFloat() * scale;
- data.bendDirection = input.ReadSByte();
- data.compress = input.ReadBoolean();
- data.stretch = input.ReadBoolean();
- data.uniform = input.ReadBoolean();
- o[i] = data;
- }
-
- // Transform constraints.
- o = skeletonData.transformConstraints.Resize(n = input.ReadInt(true)).Items;
- for (int i = 0, nn; i < n; i++) {
- TransformConstraintData data = new TransformConstraintData(input.ReadString());
- data.order = input.ReadInt(true);
- data.skinRequired = input.ReadBoolean();
- Object[] bones = data.bones.Resize(nn = input.ReadInt(true)).Items;
- for (int ii = 0; ii < nn; ii++)
- bones[ii] = skeletonData.bones.Items[input.ReadInt(true)];
- data.target = skeletonData.bones.Items[input.ReadInt(true)];
- data.local = input.ReadBoolean();
- data.relative = input.ReadBoolean();
- data.offsetRotation = input.ReadFloat();
- data.offsetX = input.ReadFloat() * scale;
- data.offsetY = input.ReadFloat() * scale;
- data.offsetScaleX = input.ReadFloat();
- data.offsetScaleY = input.ReadFloat();
- data.offsetShearY = input.ReadFloat();
- data.rotateMix = input.ReadFloat();
- data.translateMix = input.ReadFloat();
- data.scaleMix = input.ReadFloat();
- data.shearMix = input.ReadFloat();
- o[i] = data;
- }
-
- // Path constraints
- o = skeletonData.pathConstraints.Resize(n = input.ReadInt(true)).Items;
- for (int i = 0, nn; i < n; i++) {
- PathConstraintData data = new PathConstraintData(input.ReadString());
- data.order = input.ReadInt(true);
- data.skinRequired = input.ReadBoolean();
- Object[] bones = data.bones.Resize(nn = input.ReadInt(true)).Items;
- for (int ii = 0; ii < nn; ii++)
- bones[ii] = skeletonData.bones.Items[input.ReadInt(true)];
- data.target = skeletonData.slots.Items[input.ReadInt(true)];
- data.positionMode = (PositionMode)Enum.GetValues(typeof(PositionMode)).GetValue(input.ReadInt(true));
- data.spacingMode = (SpacingMode)Enum.GetValues(typeof(SpacingMode)).GetValue(input.ReadInt(true));
- data.rotateMode = (RotateMode)Enum.GetValues(typeof(RotateMode)).GetValue(input.ReadInt(true));
- data.offsetRotation = input.ReadFloat();
- data.position = input.ReadFloat();
- if (data.positionMode == PositionMode.Fixed) data.position *= scale;
- data.spacing = input.ReadFloat();
- if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) data.spacing *= scale;
- data.rotateMix = input.ReadFloat();
- data.translateMix = input.ReadFloat();
- o[i] = data;
- }
-
- // Default skin.
- Skin defaultSkin = ReadSkin(input, skeletonData, true, nonessential);
- if (defaultSkin != null) {
- skeletonData.defaultSkin = defaultSkin;
- skeletonData.skins.Add(defaultSkin);
- }
-
- // Skins.
- {
- int i = skeletonData.skins.Count;
- o = skeletonData.skins.Resize(n = i + input.ReadInt(true)).Items;
- for (; i < n; i++)
- o[i] = ReadSkin(input, skeletonData, false, nonessential);
- }
-
- // Linked meshes.
- n = linkedMeshes.Count;
- for (int i = 0; i < n; i++) {
- SkeletonJson.LinkedMesh linkedMesh = linkedMeshes[i];
- Skin skin = linkedMesh.skin == null ? skeletonData.DefaultSkin : skeletonData.FindSkin(linkedMesh.skin);
- if (skin == null) throw new Exception("Skin not found: " + linkedMesh.skin);
- Attachment parent = skin.GetAttachment(linkedMesh.slotIndex, linkedMesh.parent);
- if (parent == null) throw new Exception("Parent mesh not found: " + linkedMesh.parent);
- linkedMesh.mesh.DeformAttachment = linkedMesh.inheritDeform ? (VertexAttachment)parent : linkedMesh.mesh;
- linkedMesh.mesh.ParentMesh = (MeshAttachment)parent;
- linkedMesh.mesh.UpdateUVs();
- }
- linkedMeshes.Clear();
-
- // Events.
- o = skeletonData.events.Resize(n = input.ReadInt(true)).Items;
- for (int i = 0; i < n; i++) {
- EventData data = new EventData(input.ReadStringRef());
- data.Int = input.ReadInt(false);
- data.Float = input.ReadFloat();
- data.String = input.ReadString();
- data.AudioPath = input.ReadString();
- if (data.AudioPath != null) {
- data.Volume = input.ReadFloat();
- data.Balance = input.ReadFloat();
- }
- o[i] = data;
- }
-
- // Animations.
- o = skeletonData.animations.Resize(n = input.ReadInt(true)).Items;
- for (int i = 0; i < n; i++)
- o[i] = ReadAnimation(input.ReadString(), input, skeletonData);
-
- return skeletonData;
- }
-
-
- /// May be null.
- private Skin ReadSkin (SkeletonInput input, SkeletonData skeletonData, bool defaultSkin, bool nonessential) {
-
- Skin skin;
- int slotCount;
-
- if (defaultSkin) {
- slotCount = input.ReadInt(true);
- if (slotCount == 0) return null;
- skin = new Skin("default");
- } else {
- skin = new Skin(input.ReadStringRef());
- Object[] bones = skin.bones.Resize(input.ReadInt(true)).Items;
- for (int i = 0, n = skin.bones.Count; i < n; i++)
- bones[i] = skeletonData.bones.Items[input.ReadInt(true)];
-
- for (int i = 0, n = input.ReadInt(true); i < n; i++)
- skin.constraints.Add(skeletonData.ikConstraints.Items[input.ReadInt(true)]);
- for (int i = 0, n = input.ReadInt(true); i < n; i++)
- skin.constraints.Add(skeletonData.transformConstraints.Items[input.ReadInt(true)]);
- for (int i = 0, n = input.ReadInt(true); i < n; i++)
- skin.constraints.Add(skeletonData.pathConstraints.Items[input.ReadInt(true)]);
- skin.constraints.TrimExcess();
- slotCount = input.ReadInt(true);
- }
- for (int i = 0; i < slotCount; i++) {
- int slotIndex = input.ReadInt(true);
- for (int ii = 0, nn = input.ReadInt(true); ii < nn; ii++) {
- String name = input.ReadStringRef();
- Attachment attachment = ReadAttachment(input, skeletonData, skin, slotIndex, name, nonessential);
- if (attachment != null) skin.SetAttachment(slotIndex, name, attachment);
- }
- }
- return skin;
- }
-
- private Attachment ReadAttachment (SkeletonInput input, SkeletonData skeletonData, Skin skin, int slotIndex,
- String attachmentName, bool nonessential) {
-
- float scale = Scale;
-
- String name = input.ReadStringRef();
- if (name == null) name = attachmentName;
-
- AttachmentType type = (AttachmentType)input.ReadByte();
- switch (type) {
- case AttachmentType.Region: {
- String path = input.ReadStringRef();
- float rotation = input.ReadFloat();
- float x = input.ReadFloat();
- float y = input.ReadFloat();
- float scaleX = input.ReadFloat();
- float scaleY = input.ReadFloat();
- float width = input.ReadFloat();
- float height = input.ReadFloat();
- int color = input.ReadInt();
-
- if (path == null) path = name;
- RegionAttachment region = attachmentLoader.NewRegionAttachment(skin, name, path);
- if (region == null) return null;
- region.Path = path;
- region.x = x * scale;
- region.y = y * scale;
- region.scaleX = scaleX;
- region.scaleY = scaleY;
- region.rotation = rotation;
- region.width = width * scale;
- region.height = height * scale;
- region.r = ((color & 0xff000000) >> 24) / 255f;
- region.g = ((color & 0x00ff0000) >> 16) / 255f;
- region.b = ((color & 0x0000ff00) >> 8) / 255f;
- region.a = ((color & 0x000000ff)) / 255f;
- region.UpdateOffset();
- return region;
- }
- case AttachmentType.Boundingbox: {
- int vertexCount = input.ReadInt(true);
- Vertices vertices = ReadVertices(input, vertexCount);
- if (nonessential) input.ReadInt(); //int color = nonessential ? input.ReadInt() : 0; // Avoid unused local warning.
-
- BoundingBoxAttachment box = attachmentLoader.NewBoundingBoxAttachment(skin, name);
- if (box == null) return null;
- box.worldVerticesLength = vertexCount << 1;
- box.vertices = vertices.vertices;
- box.bones = vertices.bones;
- // skipped porting: if (nonessential) Color.rgba8888ToColor(box.getColor(), color);
- return box;
- }
- case AttachmentType.Mesh: {
- String path = input.ReadStringRef();
- int color = input.ReadInt();
- int vertexCount = input.ReadInt(true);
- float[] uvs = ReadFloatArray(input, vertexCount << 1, 1);
- int[] triangles = ReadShortArray(input);
- Vertices vertices = ReadVertices(input, vertexCount);
- int hullLength = input.ReadInt(true);
- int[] edges = null;
- float width = 0, height = 0;
- if (nonessential) {
- edges = ReadShortArray(input);
- width = input.ReadFloat();
- height = input.ReadFloat();
- }
-
- if (path == null) path = name;
- MeshAttachment mesh = attachmentLoader.NewMeshAttachment(skin, name, path);
- if (mesh == null) return null;
- mesh.Path = path;
- mesh.r = ((color & 0xff000000) >> 24) / 255f;
- mesh.g = ((color & 0x00ff0000) >> 16) / 255f;
- mesh.b = ((color & 0x0000ff00) >> 8) / 255f;
- mesh.a = ((color & 0x000000ff)) / 255f;
- mesh.bones = vertices.bones;
- mesh.vertices = vertices.vertices;
- mesh.WorldVerticesLength = vertexCount << 1;
- mesh.triangles = triangles;
- mesh.regionUVs = uvs;
- mesh.UpdateUVs();
- mesh.HullLength = hullLength << 1;
- if (nonessential) {
- mesh.Edges = edges;
- mesh.Width = width * scale;
- mesh.Height = height * scale;
- }
- return mesh;
- }
- case AttachmentType.Linkedmesh: {
- String path = input.ReadStringRef();
- int color = input.ReadInt();
- String skinName = input.ReadStringRef();
- String parent = input.ReadStringRef();
- bool inheritDeform = input.ReadBoolean();
- float width = 0, height = 0;
- if (nonessential) {
- width = input.ReadFloat();
- height = input.ReadFloat();
- }
-
- if (path == null) path = name;
- MeshAttachment mesh = attachmentLoader.NewMeshAttachment(skin, name, path);
- if (mesh == null) return null;
- mesh.Path = path;
- mesh.r = ((color & 0xff000000) >> 24) / 255f;
- mesh.g = ((color & 0x00ff0000) >> 16) / 255f;
- mesh.b = ((color & 0x0000ff00) >> 8) / 255f;
- mesh.a = ((color & 0x000000ff)) / 255f;
- if (nonessential) {
- mesh.Width = width * scale;
- mesh.Height = height * scale;
- }
- linkedMeshes.Add(new SkeletonJson.LinkedMesh(mesh, skinName, slotIndex, parent, inheritDeform));
- return mesh;
- }
- case AttachmentType.Path: {
- bool closed = input.ReadBoolean();
- bool constantSpeed = input.ReadBoolean();
- int vertexCount = input.ReadInt(true);
- Vertices vertices = ReadVertices(input, vertexCount);
- float[] lengths = new float[vertexCount / 3];
- for (int i = 0, n = lengths.Length; i < n; i++)
- lengths[i] = input.ReadFloat() * scale;
- if (nonessential) input.ReadInt(); //int color = nonessential ? input.ReadInt() : 0;
-
- PathAttachment path = attachmentLoader.NewPathAttachment(skin, name);
- if (path == null) return null;
- path.closed = closed;
- path.constantSpeed = constantSpeed;
- path.worldVerticesLength = vertexCount << 1;
- path.vertices = vertices.vertices;
- path.bones = vertices.bones;
- path.lengths = lengths;
- // skipped porting: if (nonessential) Color.rgba8888ToColor(path.getColor(), color);
- return path;
- }
- case AttachmentType.Point: {
- float rotation = input.ReadFloat();
- float x = input.ReadFloat();
- float y = input.ReadFloat();
- if (nonessential) input.ReadInt(); //int color = nonessential ? input.ReadInt() : 0;
-
- PointAttachment point = attachmentLoader.NewPointAttachment(skin, name);
- if (point == null) return null;
- point.x = x * scale;
- point.y = y * scale;
- point.rotation = rotation;
- // skipped porting: if (nonessential) point.color = color;
- return point;
- }
- case AttachmentType.Clipping: {
- int endSlotIndex = input.ReadInt(true);
- int vertexCount = input.ReadInt(true);
- Vertices vertices = ReadVertices(input, vertexCount);
- if (nonessential) input.ReadInt();
-
- ClippingAttachment clip = attachmentLoader.NewClippingAttachment(skin, name);
- if (clip == null) return null;
- clip.EndSlot = skeletonData.slots.Items[endSlotIndex];
- clip.worldVerticesLength = vertexCount << 1;
- clip.vertices = vertices.vertices;
- clip.bones = vertices.bones;
- // skipped porting: if (nonessential) Color.rgba8888ToColor(clip.getColor(), color);
- return clip;
- }
- }
- return null;
- }
-
- private Vertices ReadVertices (SkeletonInput input, int vertexCount) {
- float scale = Scale;
- int verticesLength = vertexCount << 1;
- Vertices vertices = new Vertices();
- if(!input.ReadBoolean()) {
- vertices.vertices = ReadFloatArray(input, verticesLength, scale);
- return vertices;
- }
- var weights = new ExposedList(verticesLength * 3 * 3);
- var bonesArray = new ExposedList(verticesLength * 3);
- for (int i = 0; i < vertexCount; i++) {
- int boneCount = input.ReadInt(true);
- bonesArray.Add(boneCount);
- for (int ii = 0; ii < boneCount; ii++) {
- bonesArray.Add(input.ReadInt(true));
- weights.Add(input.ReadFloat() * scale);
- weights.Add(input.ReadFloat() * scale);
- weights.Add(input.ReadFloat());
- }
- }
-
- vertices.vertices = weights.ToArray();
- vertices.bones = bonesArray.ToArray();
- return vertices;
- }
-
- private float[] ReadFloatArray (SkeletonInput input, int n, float scale) {
- float[] array = new float[n];
- if (scale == 1) {
- for (int i = 0; i < n; i++)
- array[i] = input.ReadFloat();
- } else {
- for (int i = 0; i < n; i++)
- array[i] = input.ReadFloat() * scale;
- }
- return array;
- }
-
- private int[] ReadShortArray (SkeletonInput input) {
- int n = input.ReadInt(true);
- int[] array = new int[n];
- for (int i = 0; i < n; i++)
- array[i] = (input.ReadByte() << 8) | input.ReadByte();
- return array;
- }
-
- private Animation ReadAnimation (String name, SkeletonInput input, SkeletonData skeletonData) {
- var timelines = new ExposedList(32);
- float scale = Scale;
- float duration = 0;
-
- // Slot timelines.
- for (int i = 0, n = input.ReadInt(true); i < n; i++) {
- int slotIndex = input.ReadInt(true);
- for (int ii = 0, nn = input.ReadInt(true); ii < nn; ii++) {
- int timelineType = input.ReadByte();
- int frameCount = input.ReadInt(true);
- switch (timelineType) {
- case SLOT_ATTACHMENT: {
- AttachmentTimeline timeline = new AttachmentTimeline(frameCount);
- timeline.slotIndex = slotIndex;
- for (int frameIndex = 0; frameIndex < frameCount; frameIndex++)
- timeline.SetFrame(frameIndex, input.ReadFloat(), input.ReadStringRef());
- timelines.Add(timeline);
- duration = Math.Max(duration, timeline.frames[frameCount - 1]);
- break;
- }
- case SLOT_COLOR: {
- ColorTimeline timeline = new ColorTimeline(frameCount);
- timeline.slotIndex = slotIndex;
- for (int frameIndex = 0; frameIndex < frameCount; frameIndex++) {
- float time = input.ReadFloat();
- int color = input.ReadInt();
- float r = ((color & 0xff000000) >> 24) / 255f;
- float g = ((color & 0x00ff0000) >> 16) / 255f;
- float b = ((color & 0x0000ff00) >> 8) / 255f;
- float a = ((color & 0x000000ff)) / 255f;
- timeline.SetFrame(frameIndex, time, r, g, b, a);
- if (frameIndex < frameCount - 1) ReadCurve(input, frameIndex, timeline);
- }
- timelines.Add(timeline);
- duration = Math.Max(duration, timeline.frames[(frameCount - 1) * ColorTimeline.ENTRIES]);
- break;
- }
- case SLOT_TWO_COLOR: {
- TwoColorTimeline timeline = new TwoColorTimeline(frameCount);
- timeline.slotIndex = slotIndex;
- for (int frameIndex = 0; frameIndex < frameCount; frameIndex++) {
- float time = input.ReadFloat();
- int color = input.ReadInt();
- float r = ((color & 0xff000000) >> 24) / 255f;
- float g = ((color & 0x00ff0000) >> 16) / 255f;
- float b = ((color & 0x0000ff00) >> 8) / 255f;
- float a = ((color & 0x000000ff)) / 255f;
- int color2 = input.ReadInt(); // 0x00rrggbb
- float r2 = ((color2 & 0x00ff0000) >> 16) / 255f;
- float g2 = ((color2 & 0x0000ff00) >> 8) / 255f;
- float b2 = ((color2 & 0x000000ff)) / 255f;
-
- timeline.SetFrame(frameIndex, time, r, g, b, a, r2, g2, b2);
- if (frameIndex < frameCount - 1) ReadCurve(input, frameIndex, timeline);
- }
- timelines.Add(timeline);
- duration = Math.Max(duration, timeline.frames[(frameCount - 1) * TwoColorTimeline.ENTRIES]);
- break;
- }
- }
- }
- }
-
- // Bone timelines.
- for (int i = 0, n = input.ReadInt(true); i < n; i++) {
- int boneIndex = input.ReadInt(true);
- for (int ii = 0, nn = input.ReadInt(true); ii < nn; ii++) {
- int timelineType = input.ReadByte();
- int frameCount = input.ReadInt(true);
- switch (timelineType) {
- case BONE_ROTATE: {
- RotateTimeline timeline = new RotateTimeline(frameCount);
- timeline.boneIndex = boneIndex;
- for (int frameIndex = 0; frameIndex < frameCount; frameIndex++) {
- timeline.SetFrame(frameIndex, input.ReadFloat(), input.ReadFloat());
- if (frameIndex < frameCount - 1) ReadCurve(input, frameIndex, timeline);
- }
- timelines.Add(timeline);
- duration = Math.Max(duration, timeline.frames[(frameCount - 1) * RotateTimeline.ENTRIES]);
- break;
- }
- case BONE_TRANSLATE:
- case BONE_SCALE:
- case BONE_SHEAR: {
- TranslateTimeline timeline;
- float timelineScale = 1;
- if (timelineType == BONE_SCALE)
- timeline = new ScaleTimeline(frameCount);
- else if (timelineType == BONE_SHEAR)
- timeline = new ShearTimeline(frameCount);
- else {
- timeline = new TranslateTimeline(frameCount);
- timelineScale = scale;
- }
- timeline.boneIndex = boneIndex;
- for (int frameIndex = 0; frameIndex < frameCount; frameIndex++) {
- timeline.SetFrame(frameIndex, input.ReadFloat(), input.ReadFloat() * timelineScale,
- input.ReadFloat() * timelineScale);
- if (frameIndex < frameCount - 1) ReadCurve(input, frameIndex, timeline);
- }
- timelines.Add(timeline);
- duration = Math.Max(duration, timeline.frames[(frameCount - 1) * TranslateTimeline.ENTRIES]);
- break;
- }
- }
- }
- }
-
- // IK constraint timelines.
- for (int i = 0, n = input.ReadInt(true); i < n; i++) {
- int index = input.ReadInt(true);
- int frameCount = input.ReadInt(true);
- IkConstraintTimeline timeline = new IkConstraintTimeline(frameCount) {
- ikConstraintIndex = index
- };
- for (int frameIndex = 0; frameIndex < frameCount; frameIndex++) {
- timeline.SetFrame(frameIndex, input.ReadFloat(), input.ReadFloat(), input.ReadFloat() * scale, input.ReadSByte(), input.ReadBoolean(),
- input.ReadBoolean());
- if (frameIndex < frameCount - 1) ReadCurve(input, frameIndex, timeline);
- }
- timelines.Add(timeline);
- duration = Math.Max(duration, timeline.frames[(frameCount - 1) * IkConstraintTimeline.ENTRIES]);
- }
-
- // Transform constraint timelines.
- for (int i = 0, n = input.ReadInt(true); i < n; i++) {
- int index = input.ReadInt(true);
- int frameCount = input.ReadInt(true);
- TransformConstraintTimeline timeline = new TransformConstraintTimeline(frameCount);
- timeline.transformConstraintIndex = index;
- for (int frameIndex = 0; frameIndex < frameCount; frameIndex++) {
- timeline.SetFrame(frameIndex, input.ReadFloat(), input.ReadFloat(), input.ReadFloat(), input.ReadFloat(),
- input.ReadFloat());
- if (frameIndex < frameCount - 1) ReadCurve(input, frameIndex, timeline);
- }
- timelines.Add(timeline);
- duration = Math.Max(duration, timeline.frames[(frameCount - 1) * TransformConstraintTimeline.ENTRIES]);
- }
-
- // Path constraint timelines.
- for (int i = 0, n = input.ReadInt(true); i < n; i++) {
- int index = input.ReadInt(true);
- PathConstraintData data = skeletonData.pathConstraints.Items[index];
- for (int ii = 0, nn = input.ReadInt(true); ii < nn; ii++) {
- int timelineType = input.ReadSByte();
- int frameCount = input.ReadInt(true);
- switch(timelineType) {
- case PATH_POSITION:
- case PATH_SPACING: {
- PathConstraintPositionTimeline timeline;
- float timelineScale = 1;
- if (timelineType == PATH_SPACING) {
- timeline = new PathConstraintSpacingTimeline(frameCount);
- if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) timelineScale = scale;
- } else {
- timeline = new PathConstraintPositionTimeline(frameCount);
- if (data.positionMode == PositionMode.Fixed) timelineScale = scale;
- }
- timeline.pathConstraintIndex = index;
- for (int frameIndex = 0; frameIndex < frameCount; frameIndex++) {
- timeline.SetFrame(frameIndex, input.ReadFloat(), input.ReadFloat() * timelineScale);
- if (frameIndex < frameCount - 1) ReadCurve(input, frameIndex, timeline);
- }
- timelines.Add(timeline);
- duration = Math.Max(duration, timeline.frames[(frameCount - 1) * PathConstraintPositionTimeline.ENTRIES]);
- break;
- }
- case PATH_MIX: {
- PathConstraintMixTimeline timeline = new PathConstraintMixTimeline(frameCount);
- timeline.pathConstraintIndex = index;
- for (int frameIndex = 0; frameIndex < frameCount; frameIndex++) {
- timeline.SetFrame(frameIndex, input.ReadFloat(), input.ReadFloat(), input.ReadFloat());
- if (frameIndex < frameCount - 1) ReadCurve(input, frameIndex, timeline);
- }
- timelines.Add(timeline);
- duration = Math.Max(duration, timeline.frames[(frameCount - 1) * PathConstraintMixTimeline.ENTRIES]);
- break;
- }
- }
- }
- }
-
- // Deform timelines.
- for (int i = 0, n = input.ReadInt(true); i < n; i++) {
- Skin skin = skeletonData.skins.Items[input.ReadInt(true)];
- for (int ii = 0, nn = input.ReadInt(true); ii < nn; ii++) {
- int slotIndex = input.ReadInt(true);
- for (int iii = 0, nnn = input.ReadInt(true); iii < nnn; iii++) {
- VertexAttachment attachment = (VertexAttachment)skin.GetAttachment(slotIndex, input.ReadStringRef());
- bool weighted = attachment.bones != null;
- float[] vertices = attachment.vertices;
- int deformLength = weighted ? vertices.Length / 3 * 2 : vertices.Length;
-
- int frameCount = input.ReadInt(true);
- DeformTimeline timeline = new DeformTimeline(frameCount);
- timeline.slotIndex = slotIndex;
- timeline.attachment = attachment;
-
- for (int frameIndex = 0; frameIndex < frameCount; frameIndex++) {
- float time = input.ReadFloat();
- float[] deform;
- int end = input.ReadInt(true);
- if (end == 0)
- deform = weighted ? new float[deformLength] : vertices;
- else {
- deform = new float[deformLength];
- int start = input.ReadInt(true);
- end += start;
- if (scale == 1) {
- for (int v = start; v < end; v++)
- deform[v] = input.ReadFloat();
- } else {
- for (int v = start; v < end; v++)
- deform[v] = input.ReadFloat() * scale;
- }
- if (!weighted) {
- for (int v = 0, vn = deform.Length; v < vn; v++)
- deform[v] += vertices[v];
- }
- }
-
- timeline.SetFrame(frameIndex, time, deform);
- if (frameIndex < frameCount - 1) ReadCurve(input, frameIndex, timeline);
- }
- timelines.Add(timeline);
- duration = Math.Max(duration, timeline.frames[frameCount - 1]);
- }
- }
- }
-
- // Draw order timeline.
- int drawOrderCount = input.ReadInt(true);
- if (drawOrderCount > 0) {
- DrawOrderTimeline timeline = new DrawOrderTimeline(drawOrderCount);
- int slotCount = skeletonData.slots.Count;
- for (int i = 0; i < drawOrderCount; i++) {
- float time = input.ReadFloat();
- int offsetCount = input.ReadInt(true);
- int[] drawOrder = new int[slotCount];
- for (int ii = slotCount - 1; ii >= 0; ii--)
- drawOrder[ii] = -1;
- int[] unchanged = new int[slotCount - offsetCount];
- int originalIndex = 0, unchangedIndex = 0;
- for (int ii = 0; ii < offsetCount; ii++) {
- int slotIndex = input.ReadInt(true);
- // Collect unchanged items.
- while (originalIndex != slotIndex)
- unchanged[unchangedIndex++] = originalIndex++;
- // Set changed items.
- drawOrder[originalIndex + input.ReadInt(true)] = originalIndex++;
- }
- // Collect remaining unchanged items.
- while (originalIndex < slotCount)
- unchanged[unchangedIndex++] = originalIndex++;
- // Fill in unchanged items.
- for (int ii = slotCount - 1; ii >= 0; ii--)
- if (drawOrder[ii] == -1) drawOrder[ii] = unchanged[--unchangedIndex];
- timeline.SetFrame(i, time, drawOrder);
- }
- timelines.Add(timeline);
- duration = Math.Max(duration, timeline.frames[drawOrderCount - 1]);
- }
-
- // Event timeline.
- int eventCount = input.ReadInt(true);
- if (eventCount > 0) {
- EventTimeline timeline = new EventTimeline(eventCount);
- for (int i = 0; i < eventCount; i++) {
- float time = input.ReadFloat();
- EventData eventData = skeletonData.events.Items[input.ReadInt(true)];
- Event e = new Event(time, eventData) {
- Int = input.ReadInt(false),
- Float = input.ReadFloat(),
- String = input.ReadBoolean() ? input.ReadString() : eventData.String
- };
- if (e.data.AudioPath != null) {
- e.volume = input.ReadFloat();
- e.balance = input.ReadFloat();
- }
- timeline.SetFrame(i, e);
- }
- timelines.Add(timeline);
- duration = Math.Max(duration, timeline.frames[eventCount - 1]);
- }
-
- timelines.TrimExcess();
- return new Animation(name, timelines, duration);
- }
-
- private void ReadCurve (SkeletonInput input, int frameIndex, CurveTimeline timeline) {
- switch (input.ReadByte()) {
- case CURVE_STEPPED:
- timeline.SetStepped(frameIndex);
- break;
- case CURVE_BEZIER:
- timeline.SetCurve(frameIndex, input.ReadFloat(), input.ReadFloat(), input.ReadFloat(), input.ReadFloat());
- break;
- }
- }
-
- internal class Vertices
- {
- public int[] bones;
- public float[] vertices;
- }
-
- internal class SkeletonInput {
- private byte[] chars = new byte[32];
- private byte[] bytesBigEndian = new byte[4];
- internal ExposedList strings;
- Stream input;
-
- public SkeletonInput (Stream input) {
- this.input = input;
- }
-
- public byte ReadByte () {
- return (byte)input.ReadByte();
- }
-
- public sbyte ReadSByte () {
- int value = input.ReadByte();
- if (value == -1) throw new EndOfStreamException();
- return (sbyte)value;
- }
-
- public bool ReadBoolean () {
- return input.ReadByte() != 0;
- }
-
- public float ReadFloat () {
- input.Read(bytesBigEndian, 0, 4);
- chars[3] = bytesBigEndian[0];
- chars[2] = bytesBigEndian[1];
- chars[1] = bytesBigEndian[2];
- chars[0] = bytesBigEndian[3];
- return BitConverter.ToSingle(chars, 0);
- }
-
- public int ReadInt () {
- input.Read(bytesBigEndian, 0, 4);
- return (bytesBigEndian[0] << 24)
- + (bytesBigEndian[1] << 16)
- + (bytesBigEndian[2] << 8)
- + bytesBigEndian[3];
- }
-
- public int ReadInt (bool optimizePositive) {
- int b = input.ReadByte();
- int result = b & 0x7F;
- if ((b & 0x80) != 0) {
- b = input.ReadByte();
- result |= (b & 0x7F) << 7;
- if ((b & 0x80) != 0) {
- b = input.ReadByte();
- result |= (b & 0x7F) << 14;
- if ((b & 0x80) != 0) {
- b = input.ReadByte();
- result |= (b & 0x7F) << 21;
- if ((b & 0x80) != 0) result |= (input.ReadByte() & 0x7F) << 28;
- }
- }
- }
- return optimizePositive ? result : ((result >> 1) ^ -(result & 1));
- }
-
- public string ReadString () {
- int byteCount = ReadInt(true);
- switch (byteCount) {
- case 0:
- return null;
- case 1:
- return "";
- }
- byteCount--;
- byte[] buffer = this.chars;
- if (buffer.Length < byteCount) buffer = new byte[byteCount];
- ReadFully(buffer, 0, byteCount);
- return System.Text.Encoding.UTF8.GetString(buffer, 0, byteCount);
- }
-
- ///May be null.
- public String ReadStringRef () {
- int index = ReadInt(true);
- return index == 0 ? null : strings.Items[index - 1];
- }
-
- public void ReadFully (byte[] buffer, int offset, int length) {
- while (length > 0) {
- int count = input.Read(buffer, offset, length);
- if (count <= 0) throw new EndOfStreamException();
- offset += count;
- length -= count;
- }
- }
-
- /// Returns the version string of binary skeleton data.
- public string GetVersionString () {
- try {
- // Hash.
- int byteCount = ReadInt(true);
- if (byteCount > 1) input.Position += byteCount - 1;
-
- // Version.
- byteCount = ReadInt(true);
- if (byteCount > 1) {
- byteCount--;
- var buffer = new byte[byteCount];
- ReadFully(buffer, 0, byteCount);
- return System.Text.Encoding.UTF8.GetString(buffer, 0, byteCount);
- }
-
- throw new ArgumentException("Stream does not contain a valid binary Skeleton Data.", "input");
- } catch (Exception e) {
- throw new ArgumentException("Stream does not contain a valid binary Skeleton Data.\n" + e, "input");
- }
- }
- }
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Runtime/spine-csharp/SkeletonBinary.cs.meta b/unity/Assets/Plugin/Spine/Runtime/spine-csharp/SkeletonBinary.cs.meta
deleted file mode 100644
index fd3aabc..0000000
--- a/unity/Assets/Plugin/Spine/Runtime/spine-csharp/SkeletonBinary.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 40d8a8f15082f3844a5c9c8c3ef2047f
-timeCreated: 1456265154
-licenseType: Free
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Runtime/spine-csharp/SkeletonBounds.cs b/unity/Assets/Plugin/Spine/Runtime/spine-csharp/SkeletonBounds.cs
deleted file mode 100644
index fe24736..0000000
--- a/unity/Assets/Plugin/Spine/Runtime/spine-csharp/SkeletonBounds.cs
+++ /dev/null
@@ -1,234 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using System;
-
-namespace Spine {
-
- ///
- /// Collects each BoundingBoxAttachment that is visible and computes the world vertices for its polygon.
- /// The polygon vertices are provided along with convenience methods for doing hit detection.
- ///
- public class SkeletonBounds {
- private ExposedList polygonPool = new ExposedList();
- private float minX, minY, maxX, maxY;
-
- public ExposedList BoundingBoxes { get; private set; }
- public ExposedList Polygons { get; private set; }
- public float MinX { get { return minX; } set { minX = value; } }
- public float MinY { get { return minY; } set { minY = value; } }
- public float MaxX { get { return maxX; } set { maxX = value; } }
- public float MaxY { get { return maxY; } set { maxY = value; } }
- public float Width { get { return maxX - minX; } }
- public float Height { get { return maxY - minY; } }
-
- public SkeletonBounds () {
- BoundingBoxes = new ExposedList();
- Polygons = new ExposedList();
- }
-
- ///
- /// Clears any previous polygons, finds all visible bounding box attachments,
- /// and computes the world vertices for each bounding box's polygon.
- /// The skeleton.
- ///
- /// If true, the axis aligned bounding box containing all the polygons is computed.
- /// If false, the SkeletonBounds AABB methods will always return true.
- ///
- public void Update (Skeleton skeleton, bool updateAabb) {
- ExposedList boundingBoxes = BoundingBoxes;
- ExposedList polygons = Polygons;
- ExposedList slots = skeleton.slots;
- int slotCount = slots.Count;
-
- boundingBoxes.Clear();
- for (int i = 0, n = polygons.Count; i < n; i++)
- polygonPool.Add(polygons.Items[i]);
- polygons.Clear();
-
- for (int i = 0; i < slotCount; i++) {
- Slot slot = slots.Items[i];
- if (!slot.bone.active) continue;
- BoundingBoxAttachment boundingBox = slot.attachment as BoundingBoxAttachment;
- if (boundingBox == null) continue;
- boundingBoxes.Add(boundingBox);
-
- Polygon polygon = null;
- int poolCount = polygonPool.Count;
- if (poolCount > 0) {
- polygon = polygonPool.Items[poolCount - 1];
- polygonPool.RemoveAt(poolCount - 1);
- } else
- polygon = new Polygon();
- polygons.Add(polygon);
-
- int count = boundingBox.worldVerticesLength;
- polygon.Count = count;
- if (polygon.Vertices.Length < count) polygon.Vertices = new float[count];
- boundingBox.ComputeWorldVertices(slot, polygon.Vertices);
- }
-
- if (updateAabb) {
- AabbCompute();
- } else {
- minX = int.MinValue;
- minY = int.MinValue;
- maxX = int.MaxValue;
- maxY = int.MaxValue;
- }
- }
-
- private void AabbCompute () {
- float minX = int.MaxValue, minY = int.MaxValue, maxX = int.MinValue, maxY = int.MinValue;
- ExposedList polygons = Polygons;
- for (int i = 0, n = polygons.Count; i < n; i++) {
- Polygon polygon = polygons.Items[i];
- float[] vertices = polygon.Vertices;
- for (int ii = 0, nn = polygon.Count; ii < nn; ii += 2) {
- float x = vertices[ii];
- float y = vertices[ii + 1];
- minX = Math.Min(minX, x);
- minY = Math.Min(minY, y);
- maxX = Math.Max(maxX, x);
- maxY = Math.Max(maxY, y);
- }
- }
- this.minX = minX;
- this.minY = minY;
- this.maxX = maxX;
- this.maxY = maxY;
- }
-
-
- /// Returns true if the axis aligned bounding box contains the point.
- public bool AabbContainsPoint (float x, float y) {
- return x >= minX && x <= maxX && y >= minY && y <= maxY;
- }
-
- /// Returns true if the axis aligned bounding box intersects the line segment.
- public bool AabbIntersectsSegment (float x1, float y1, float x2, float y2) {
- float minX = this.minX;
- float minY = this.minY;
- float maxX = this.maxX;
- float maxY = this.maxY;
- if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY))
- return false;
- float m = (y2 - y1) / (x2 - x1);
- float y = m * (minX - x1) + y1;
- if (y > minY && y < maxY) return true;
- y = m * (maxX - x1) + y1;
- if (y > minY && y < maxY) return true;
- float x = (minY - y1) / m + x1;
- if (x > minX && x < maxX) return true;
- x = (maxY - y1) / m + x1;
- if (x > minX && x < maxX) return true;
- return false;
- }
-
- /// Returns true if the axis aligned bounding box intersects the axis aligned bounding box of the specified bounds.
- public bool AabbIntersectsSkeleton (SkeletonBounds bounds) {
- return minX < bounds.maxX && maxX > bounds.minX && minY < bounds.maxY && maxY > bounds.minY;
- }
-
- /// Returns true if the polygon contains the point.
- public bool ContainsPoint (Polygon polygon, float x, float y) {
- float[] vertices = polygon.Vertices;
- int nn = polygon.Count;
-
- int prevIndex = nn - 2;
- bool inside = false;
- for (int ii = 0; ii < nn; ii += 2) {
- float vertexY = vertices[ii + 1];
- float prevY = vertices[prevIndex + 1];
- if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) {
- float vertexX = vertices[ii];
- if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) inside = !inside;
- }
- prevIndex = ii;
- }
- return inside;
- }
-
- /// Returns the first bounding box attachment that contains the point, or null. When doing many checks, it is usually more
- /// efficient to only call this method if {@link #aabbContainsPoint(float, float)} returns true.
- public BoundingBoxAttachment ContainsPoint (float x, float y) {
- ExposedList polygons = Polygons;
- for (int i = 0, n = polygons.Count; i < n; i++)
- if (ContainsPoint(polygons.Items[i], x, y)) return BoundingBoxes.Items[i];
- return null;
- }
-
- /// Returns the first bounding box attachment that contains the line segment, or null. When doing many checks, it is usually
- /// more efficient to only call this method if {@link #aabbIntersectsSegment(float, float, float, float)} returns true.
- public BoundingBoxAttachment IntersectsSegment (float x1, float y1, float x2, float y2) {
- ExposedList polygons = Polygons;
- for (int i = 0, n = polygons.Count; i < n; i++)
- if (IntersectsSegment(polygons.Items[i], x1, y1, x2, y2)) return BoundingBoxes.Items[i];
- return null;
- }
-
- /// Returns true if the polygon contains the line segment.
- public bool IntersectsSegment (Polygon polygon, float x1, float y1, float x2, float y2) {
- float[] vertices = polygon.Vertices;
- int nn = polygon.Count;
-
- float width12 = x1 - x2, height12 = y1 - y2;
- float det1 = x1 * y2 - y1 * x2;
- float x3 = vertices[nn - 2], y3 = vertices[nn - 1];
- for (int ii = 0; ii < nn; ii += 2) {
- float x4 = vertices[ii], y4 = vertices[ii + 1];
- float det2 = x3 * y4 - y3 * x4;
- float width34 = x3 - x4, height34 = y3 - y4;
- float det3 = width12 * height34 - height12 * width34;
- float x = (det1 * width34 - width12 * det2) / det3;
- if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) {
- float y = (det1 * height34 - height12 * det2) / det3;
- if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) return true;
- }
- x3 = x4;
- y3 = y4;
- }
- return false;
- }
-
- public Polygon GetPolygon (BoundingBoxAttachment attachment) {
- int index = BoundingBoxes.IndexOf(attachment);
- return index == -1 ? null : Polygons.Items[index];
- }
- }
-
- public class Polygon {
- public float[] Vertices { get; set; }
- public int Count { get; set; }
-
- public Polygon () {
- Vertices = new float[16];
- }
- }
-}
diff --git a/unity/Assets/Plugin/Spine/Runtime/spine-csharp/SkeletonBounds.cs.meta b/unity/Assets/Plugin/Spine/Runtime/spine-csharp/SkeletonBounds.cs.meta
deleted file mode 100644
index db6a2d1..0000000
--- a/unity/Assets/Plugin/Spine/Runtime/spine-csharp/SkeletonBounds.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 087b328a58c93b149bb977eee3a17258
-timeCreated: 1456265153
-licenseType: Free
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/unity/Assets/Plugin/Spine/Runtime/spine-csharp/SkeletonClipping.cs b/unity/Assets/Plugin/Spine/Runtime/spine-csharp/SkeletonClipping.cs
deleted file mode 100644
index 40b6036..0000000
--- a/unity/Assets/Plugin/Spine/Runtime/spine-csharp/SkeletonClipping.cs
+++ /dev/null
@@ -1,296 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated January 1, 2020. Replaces all prior versions.
- *
- * Copyright (c) 2013-2020, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using System;
-
-namespace Spine {
- public class SkeletonClipping {
- internal readonly Triangulator triangulator = new Triangulator();
- internal readonly ExposedList clippingPolygon = new ExposedList();
- internal readonly ExposedList clipOutput = new ExposedList(128);
- internal readonly ExposedList clippedVertices = new ExposedList(128);
- internal readonly ExposedList clippedTriangles = new ExposedList(128);
- internal readonly ExposedList clippedUVs = new ExposedList(128);
- internal readonly ExposedList scratch = new ExposedList();
-
- internal ClippingAttachment clipAttachment;
- internal ExposedList> clippingPolygons;
-
- public ExposedList