Improved adding and removal of anim events

This commit is contained in:
AbstractConcept 2022-09-17 19:06:33 -05:00
parent f0d46df3d6
commit 8523abf957
276 changed files with 1401 additions and 5422 deletions

View File

@ -63,10 +63,7 @@
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Assets\Scripts\ActorBody.cs" />
<Compile Include="Assets\Scripts\ActorCard.cs" />
<Compile Include="Assets\Scripts\AnimationComponents\Actor.cs" /> <Compile Include="Assets\Scripts\AnimationComponents\Actor.cs" />
<Compile Include="Assets\Scripts\AnimationComponents\ActorBodyPart.cs" />
<Compile Include="Assets\Scripts\AnimationComponents\AlienRaceOffset.cs" /> <Compile Include="Assets\Scripts\AnimationComponents\AlienRaceOffset.cs" />
<Compile Include="Assets\Scripts\AnimationComponents\AnimationClips\AnimationClip.cs" /> <Compile Include="Assets\Scripts\AnimationComponents\AnimationClips\AnimationClip.cs" />
<Compile Include="Assets\Scripts\AnimationComponents\AnimationClips\PawnAnimationClip.cs" /> <Compile Include="Assets\Scripts\AnimationComponents\AnimationClips\PawnAnimationClip.cs" />
@ -74,35 +71,37 @@
<Compile Include="Assets\Scripts\AnimationComponents\AnimationDef.cs" /> <Compile Include="Assets\Scripts\AnimationComponents\AnimationDef.cs" />
<Compile Include="Assets\Scripts\AnimationComponents\AnimationStage.cs" /> <Compile Include="Assets\Scripts\AnimationComponents\AnimationStage.cs" />
<Compile Include="Assets\Scripts\AnimationComponents\BodyTypeOffset.cs" /> <Compile Include="Assets\Scripts\AnimationComponents\BodyTypeOffset.cs" />
<Compile Include="Assets\Scripts\AnimationComponents\Defs.cs" />
<Compile Include="Assets\Scripts\AnimationComponents\KeyFrames\Keyframe.cs" /> <Compile Include="Assets\Scripts\AnimationComponents\KeyFrames\Keyframe.cs" />
<Compile Include="Assets\Scripts\AnimationComponents\KeyFrames\PawnKeyframe.cs" /> <Compile Include="Assets\Scripts\AnimationComponents\KeyFrames\PawnKeyframe.cs" />
<Compile Include="Assets\Scripts\AnimationComponents\KeyFrames\ThingKeyFrame.cs" /> <Compile Include="Assets\Scripts\AnimationComponents\KeyFrames\ThingKeyFrame.cs" />
<Compile Include="Assets\Scripts\AnimationController.cs" />
<Compile Include="Assets\Scripts\AnimationDefCard.cs" />
<Compile Include="Assets\Scripts\ApplicationManager.cs" />
<Compile Include="Assets\Scripts\CameraController.cs" />
<Compile Include="Assets\Scripts\CurvePoint.cs" />
<Compile Include="Assets\Scripts\Defs.cs" />
<Compile Include="Assets\Scripts\DialogBoxes\DialogBox.cs" />
<Compile Include="Assets\Scripts\DialogBoxes\SelectAnimationDialog.cs" />
<Compile Include="Assets\Scripts\DialogBoxes\SelectBodyDefTypesDialog.cs" />
<Compile Include="Assets\Scripts\DialogBoxes\SelectBodyPartsDialog.cs" />
<Compile Include="Assets\Scripts\DialogBoxes\SelectDefNamesDialog.cs" />
<Compile Include="Assets\Scripts\DialogBoxes\SelectInteractionDefsDialog.cs" />
<Compile Include="Assets\Scripts\DialogBoxes\SelectSexTypesDialog.cs" />
<Compile Include="Assets\Scripts\Enums.cs" />
<Compile Include="Assets\Scripts\Extensions\IListExtensions.cs" /> <Compile Include="Assets\Scripts\Extensions\IListExtensions.cs" />
<Compile Include="Assets\Scripts\Extensions\ObjectExtensions.cs" />
<Compile Include="Assets\Scripts\Extensions\TransformExtensions.cs" /> <Compile Include="Assets\Scripts\Extensions\TransformExtensions.cs" />
<Compile Include="Assets\Scripts\GUI\ActorBody.cs" />
<Compile Include="Assets\Scripts\GUI\ActorBodyPart.cs" />
<Compile Include="Assets\Scripts\GUI\ActorCard.cs" />
<Compile Include="Assets\Scripts\GUI\ActorKeyframeCard.cs" /> <Compile Include="Assets\Scripts\GUI\ActorKeyframeCard.cs" />
<Compile Include="Assets\Scripts\GUI\AnimationDefCard.cs" />
<Compile Include="Assets\Scripts\GUI\AnimationTimeline.cs" /> <Compile Include="Assets\Scripts\GUI\AnimationTimeline.cs" />
<Compile Include="Assets\Scripts\GUI\DialogBoxes\DialogBox.cs" />
<Compile Include="Assets\Scripts\GUI\DialogBoxes\SelectAnimationDialog.cs" />
<Compile Include="Assets\Scripts\GUI\DialogBoxes\SelectBodyDefTypesDialog.cs" />
<Compile Include="Assets\Scripts\GUI\DialogBoxes\SelectBodyPartsDialog.cs" />
<Compile Include="Assets\Scripts\GUI\DialogBoxes\SelectDefNamesDialog.cs" />
<Compile Include="Assets\Scripts\GUI\DialogBoxes\SelectInteractionDefsDialog.cs" />
<Compile Include="Assets\Scripts\GUI\DialogBoxes\SelectSexTypesDialog.cs" />
<Compile Include="Assets\Scripts\GUI\KeyframeSlider.cs" /> <Compile Include="Assets\Scripts\GUI\KeyframeSlider.cs" />
<Compile Include="Assets\Scripts\GUI\StageCard.cs" /> <Compile Include="Assets\Scripts\GUI\StageCard.cs" />
<Compile Include="Assets\Scripts\GenMath.cs" /> <Compile Include="Assets\Scripts\Managers\AnimationController.cs" />
<Compile Include="Assets\Scripts\ObjectExtensions.cs" /> <Compile Include="Assets\Scripts\Managers\ApplicationManager.cs" />
<Compile Include="Assets\Scripts\PawnUtility.cs" /> <Compile Include="Assets\Scripts\Managers\CameraController.cs" />
<Compile Include="Assets\Scripts\SimpleCurve.cs" /> <Compile Include="Assets\Scripts\Managers\StageCardManager.cs" />
<Compile Include="Assets\Scripts\Math\Constants\Enums.cs" />
<Compile Include="Assets\Scripts\Math\CurvePoint.cs" />
<Compile Include="Assets\Scripts\Math\GenMath.cs" />
<Compile Include="Assets\Scripts\Math\SimpleCurve.cs" />
<Compile Include="Assets\Scripts\Singleton.cs" /> <Compile Include="Assets\Scripts\Singleton.cs" />
<Compile Include="Assets\Scripts\StageCardManager.cs" />
<Compile Include="Assets\Scripts\StandaloneFileBrowser\IStandaloneFileBrowser.cs" /> <Compile Include="Assets\Scripts\StandaloneFileBrowser\IStandaloneFileBrowser.cs" />
<Compile Include="Assets\Scripts\StandaloneFileBrowser\Sample\BasicSample.cs" /> <Compile Include="Assets\Scripts\StandaloneFileBrowser\Sample\BasicSample.cs" />
<Compile Include="Assets\Scripts\StandaloneFileBrowser\Sample\CanvasSampleOpenFileImage.cs" /> <Compile Include="Assets\Scripts\StandaloneFileBrowser\Sample\CanvasSampleOpenFileImage.cs" />
@ -115,10 +114,10 @@
<Compile Include="Assets\Scripts\StandaloneFileBrowser\StandaloneFileBrowserLinux.cs" /> <Compile Include="Assets\Scripts\StandaloneFileBrowser\StandaloneFileBrowserLinux.cs" />
<Compile Include="Assets\Scripts\StandaloneFileBrowser\StandaloneFileBrowserMac.cs" /> <Compile Include="Assets\Scripts\StandaloneFileBrowser\StandaloneFileBrowserMac.cs" />
<Compile Include="Assets\Scripts\StandaloneFileBrowser\StandaloneFileBrowserWindows.cs" /> <Compile Include="Assets\Scripts\StandaloneFileBrowser\StandaloneFileBrowserWindows.cs" />
<Compile Include="Assets\Scripts\Tag.cs" /> <Compile Include="Assets\Scripts\Utilities\PawnUtility.cs" />
<Compile Include="Assets\Scripts\Workspace.cs" /> <Compile Include="Assets\Scripts\Utilities\XmlUtility.cs" />
<Compile Include="Assets\Scripts\WorkspaceSnapShot.cs" /> <Compile Include="Assets\Scripts\Workspace\Workspace.cs" />
<Compile Include="Assets\Scripts\XmlUtility.cs" /> <Compile Include="Assets\Scripts\Workspace\WorkspaceSnapShot.cs" />
<Reference Include="UnityEngine"> <Reference Include="UnityEngine">
<HintPath>C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/Managed/UnityEngine/UnityEngine.dll</HintPath> <HintPath>C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/Managed/UnityEngine/UnityEngine.dll</HintPath>
</Reference> </Reference>

View File

@ -220,6 +220,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
actorID: 0 actorID: 0
bodyType: Male
bodyRenderer: {fileID: 7929422520673851208} bodyRenderer: {fileID: 7929422520673851208}
headRenderer: {fileID: 7929422519883802244} headRenderer: {fileID: 7929422519883802244}
--- !u!61 &-7575978412006062152 --- !u!61 &-7575978412006062152

File diff suppressed because it is too large Load Diff

View File

@ -152,10 +152,10 @@ MonoBehaviour:
m_FillRect: {fileID: 0} m_FillRect: {fileID: 0}
m_HandleRect: {fileID: 4629009613275671144} m_HandleRect: {fileID: 4629009613275671144}
m_Direction: 0 m_Direction: 0
m_MinValue: 0 m_MinValue: 1
m_MaxValue: 1 m_MaxValue: 100
m_WholeNumbers: 0 m_WholeNumbers: 1
m_Value: 0 m_Value: 1
m_OnValueChanged: m_OnValueChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []

View File

@ -1,5 +1,83 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1 &255340361666115937
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4582147206438861788}
- component: {fileID: 4481661501672296306}
- component: {fileID: 1575336727571200468}
m_Layer: 5
m_Name: StageName
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4582147206438861788
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 255340361666115937}
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_Children: []
m_Father: {fileID: 7103687360075875721}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: -19.997498, y: 0}
m_SizeDelta: {x: -69.994995, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4481661501672296306
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 255340361666115937}
m_CullTransparentMesh: 0
--- !u!114 &1575336727571200468
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 255340361666115937}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: New Stage
--- !u!1 &533195464737222177 --- !u!1 &533195464737222177
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -18,7 +96,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!224 &6879350963725555054 --- !u!224 &6879350963725555054
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -37,8 +115,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5} m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5} m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: -12.5, y: 0} m_AnchoredPosition: {x: -25, y: 0}
m_SizeDelta: {x: -85, y: 30} m_SizeDelta: {x: -60, y: 30}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8870590487640252840 --- !u!222 &8870590487640252840
CanvasRenderer: CanvasRenderer:
@ -516,80 +594,6 @@ MonoBehaviour:
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: "\u25BC" m_Text: "\u25BC"
--- !u!1 &4843121831299662333
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7599581139340530791}
- component: {fileID: 6786778780998977734}
- component: {fileID: 4227567506521745569}
m_Layer: 5
m_Name: Checkmark
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7599581139340530791
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4843121831299662333}
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_Children: []
m_Father: {fileID: 715755059079491005}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6786778780998977734
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4843121831299662333}
m_CullTransparentMesh: 0
--- !u!114 &4227567506521745569
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4843121831299662333}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &4855549260496161365 --- !u!1 &4855549260496161365
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -599,7 +603,6 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 7103687360075875721} - component: {fileID: 7103687360075875721}
- component: {fileID: 896733896646901507}
- component: {fileID: 2278168916950142456} - component: {fileID: 2278168916950142456}
m_Layer: 5 m_Layer: 5
m_Name: StageCard m_Name: StageCard
@ -615,12 +618,12 @@ RectTransform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4855549260496161365} m_GameObject: {fileID: 4855549260496161365}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 7737550082720105943} - {fileID: 7737550082720105943}
- {fileID: 715755059079491005} - {fileID: 4582147206438861788}
- {fileID: 6879350963725555054} - {fileID: 6879350963725555054}
- {fileID: 7491544813714640283} - {fileID: 7491544813714640283}
- {fileID: 7800254234182321350} - {fileID: 7800254234182321350}
@ -632,64 +635,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 30} m_SizeDelta: {x: 0, y: 30}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &896733896646901507
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4855549260496161365}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 7564065888872812478}
toggleTransition: 1
graphic: {fileID: 4227567506521745569}
m_Group: {fileID: 0}
onValueChanged:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 2278168916950142456}
m_MethodName: OnSelectStage
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
m_IsOn: 0
--- !u!114 &2278168916950142456 --- !u!114 &2278168916950142456
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -984,78 +929,3 @@ MonoBehaviour:
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: m_Text:
--- !u!1 &6418257093045468156
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 715755059079491005}
- component: {fileID: 5914141751191426547}
- component: {fileID: 7564065888872812478}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &715755059079491005
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6418257093045468156}
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_Children:
- {fileID: 7599581139340530791}
m_Father: {fileID: 7103687360075875721}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 15, y: -15}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5914141751191426547
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6418257093045468156}
m_CullTransparentMesh: 0
--- !u!114 &7564065888872812478
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6418257093045468156}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1

View File

@ -1,383 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2457332935154835317
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3579657770581364086}
- component: {fileID: 4290777413156071777}
- component: {fileID: 4316394326062907506}
- component: {fileID: 6316298721278742349}
- component: {fileID: 5023412901064837631}
m_Layer: 5
m_Name: CancelButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3579657770581364086
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2457332935154835317}
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_Children: []
m_Father: {fileID: 3885973051141023947}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 24, y: 24}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4290777413156071777
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2457332935154835317}
m_CullTransparentMesh: 0
--- !u!114 &4316394326062907506
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2457332935154835317}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: b0310c99dea57fb4d94c4d001d8e0ccf, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &6316298721278742349
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2457332935154835317}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 4316394326062907506}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 6278582729557287117}
m_MethodName: DeleteTag
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &5023412901064837631
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2457332935154835317}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 1
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: -1
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &3885973050753013168
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3885973050753013169}
- component: {fileID: 3885973050753013180}
- component: {fileID: 3885973050753013183}
- component: {fileID: 3885973050753013182}
m_Layer: 5
m_Name: TagText
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3885973050753013169
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973050753013168}
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_Children: []
m_Father: {fileID: 3885973051141023947}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3885973050753013180
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973050753013168}
m_CullTransparentMesh: 0
--- !u!114 &3885973050753013183
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973050753013168}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Tag
--- !u!114 &3885973050753013182
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973050753013168}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: 30
m_PreferredWidth: -1
m_PreferredHeight: 30
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &3885973051141023946
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3885973051141023947}
- component: {fileID: 3885973051141023959}
- component: {fileID: 3885973051141023958}
- component: {fileID: 3885973051141023945}
- component: {fileID: 3885973051141023944}
- component: {fileID: 6278582729557287117}
m_Layer: 5
m_Name: Tag
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3885973051141023947
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973051141023946}
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_Children:
- {fileID: 3885973050753013169}
- {fileID: 3579657770581364086}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -136}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3885973051141023959
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973051141023946}
m_CullTransparentMesh: 0
--- !u!114 &3885973051141023958
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973051141023946}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &3885973051141023945
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973051141023946}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 2
m_VerticalFit: 2
--- !u!114 &3885973051141023944
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973051141023946}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 10
m_Right: 10
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 0
m_Spacing: 0
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 1
m_ChildControlHeight: 1
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
--- !u!114 &6278582729557287117
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973051141023946}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e3306014932bdc74ca0fe3ff85867c58, type: 3}
m_Name:
m_EditorClassIdentifier:
tagName: Tag
tagText: {fileID: 3885973050753013183}

View File

@ -1,343 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2457332935154835317
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3579657770581364086}
- component: {fileID: 4290777413156071777}
- component: {fileID: 4316394326062907506}
- component: {fileID: 6316298721278742349}
- component: {fileID: 5023412901064837631}
m_Layer: 5
m_Name: CancelButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3579657770581364086
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2457332935154835317}
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_Children: []
m_Father: {fileID: 3885973051141023947}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 0, y: 5}
m_SizeDelta: {x: 24, y: 24}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4290777413156071777
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2457332935154835317}
m_CullTransparentMesh: 0
--- !u!114 &4316394326062907506
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2457332935154835317}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: b0310c99dea57fb4d94c4d001d8e0ccf, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &6316298721278742349
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2457332935154835317}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 4316394326062907506}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 6278582729557287117}
m_MethodName: DeleteTag
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &5023412901064837631
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2457332935154835317}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 1
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: -1
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &3885973050753013168
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3885973050753013169}
- component: {fileID: 3885973050753013180}
- component: {fileID: 3885973050753013183}
- component: {fileID: 3885973050753013182}
m_Layer: 5
m_Name: TagText
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3885973050753013169
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973050753013168}
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_Children: []
m_Father: {fileID: 3885973051141023947}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 80, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3885973050753013180
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973050753013168}
m_CullTransparentMesh: 0
--- !u!114 &3885973050753013183
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973050753013168}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Tag
--- !u!114 &3885973050753013182
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973050753013168}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: 30
m_PreferredWidth: -1
m_PreferredHeight: 30
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &3885973051141023946
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3885973051141023947}
- component: {fileID: 3885973051141023959}
- component: {fileID: 3885973051141023958}
- component: {fileID: 6278582729557287117}
m_Layer: 5
m_Name: Tag
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3885973051141023947
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973051141023946}
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_Children:
- {fileID: 3885973050753013169}
- {fileID: 3579657770581364086}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3885973051141023959
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973051141023946}
m_CullTransparentMesh: 0
--- !u!114 &3885973051141023958
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973051141023946}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &6278582729557287117
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3885973051141023946}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e3306014932bdc74ca0fe3ff85867c58, type: 3}
m_Name:
m_EditorClassIdentifier:
tagName: Tag
tagText: {fileID: 3885973050753013183}
tagPrefab: {fileID: 0}

File diff suppressed because it is too large Load Diff

View File

@ -33,5 +33,26 @@ namespace RimWorldAnimationStudio
public bool ShouldSerializecontrolGenitalAngle() { return controlGenitalAngle != null; } public bool ShouldSerializecontrolGenitalAngle() { return controlGenitalAngle != null; }
public bool ShouldSerializeisFucking() { return isFucking != null; } public bool ShouldSerializeisFucking() { return isFucking != null; }
public bool ShouldSerializeisFucked() { return isFucked != null; } public bool ShouldSerializeisFucked() { return isFucked != null; }
public bool MakeNew()
{
if (Workspace.animationDef == null)
{ Debug.LogWarning("Cannot make new actor - there is no AnimationDef"); return false; }
Workspace.animationDef.actors.Add(this);
foreach (AnimationStage stage in Workspace.animationDef.animationStages)
{
PawnAnimationClip clip = new PawnAnimationClip();
if (clip.MakeNew())
{
stage.animationClips.Add(clip);
stage.Initialize();
}
}
return true;
}
} }
} }

View File

@ -30,7 +30,6 @@ namespace RimWorldAnimationStudio
BodyFacing.Clear(); BodyFacing.Clear();
HeadBob.Clear(); HeadBob.Clear();
GenitalAngle.Clear(); GenitalAngle.Clear();
SoundEffects.Clear();
int duration = 0; int duration = 0;
@ -60,9 +59,6 @@ namespace RimWorldAnimationStudio
if (keyframe.genitalAngle.HasValue) if (keyframe.genitalAngle.HasValue)
{ GenitalAngle.Add((float)keyframe.atTick / (float)duration, keyframe.genitalAngle.Value, true); } { GenitalAngle.Add((float)keyframe.atTick / (float)duration, keyframe.genitalAngle.Value, true); }
if (keyframe.soundEffect != null)
{ SoundEffects.Add((int)keyframe.atTick, keyframe.soundEffect); }
if (i + 1 < keyframes.Count) if (i + 1 < keyframes.Count)
{ keyframes[i].tickDuration = keyframes[i + 1].atTick.Value - keyframes[i].atTick.Value; } { keyframes[i].tickDuration = keyframes[i + 1].atTick.Value - keyframes[i].atTick.Value; }
} }
@ -78,10 +74,7 @@ namespace RimWorldAnimationStudio
HeadBob.Add((float)keyframePosition / (float)duration, keyframe.headBob, true); HeadBob.Add((float)keyframePosition / (float)duration, keyframe.headBob, true);
if (keyframe.genitalAngle.HasValue) if (keyframe.genitalAngle.HasValue)
GenitalAngle.Add((float)keyframePosition / (float)duration, keyframe.genitalAngle.Value, true); { GenitalAngle.Add((float)keyframePosition / (float)duration, keyframe.genitalAngle.Value, true); }
if (keyframe.soundEffect != null)
{ SoundEffects.Add(keyframePosition, keyframe.soundEffect); }
if (keyframe.tickDuration != 1 && keyframe.quiver.HasValue) if (keyframe.tickDuration != 1 && keyframe.quiver.HasValue)
{ {
@ -96,5 +89,19 @@ namespace RimWorldAnimationStudio
keyframes[keyframes.Count - 1].tickDuration = 1; keyframes[keyframes.Count - 1].tickDuration = 1;
} }
public bool MakeNew()
{
PawnKeyframe keyframeA = new PawnKeyframe();
keyframeA.tickDuration = 60;
keyframes.Add(keyframeA);
PawnKeyframe keyframeB = new PawnKeyframe();
keyframes.Add(keyframeB);
BuildSimpleCurves();
return true;
}
} }
} }

View File

@ -1,16 +1,17 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Xml; using System.Xml;
using System.Xml.Serialization; using System.Xml.Serialization;
using UnityEngine;
namespace RimWorldAnimationStudio namespace RimWorldAnimationStudio
{ {
public class AnimationStage public class AnimationStage
{ {
public string stageName = "default"; public string stageName = "NewStage";
public int stageIndex = 0; public int stageIndex = 0;
public int playTimeTicks = 0; public int playTimeTicks = 0;
public int playTimeTicksQuick = -1; public int playTimeTicksQuick = -1;
public bool isLooping = true; public bool isLooping = false;
[XmlArray("animationClips"), XmlArrayItem("li")] [XmlArray("animationClips"), XmlArrayItem("li")]
public List<PawnAnimationClip> animationClips = new List<PawnAnimationClip>(); public List<PawnAnimationClip> animationClips = new List<PawnAnimationClip>();
@ -26,5 +27,25 @@ namespace RimWorldAnimationStudio
{ playTimeTicks = clip.duration; } { playTimeTicks = clip.duration; }
} }
} }
public bool MakeNew()
{
if (Workspace.animationDef == null)
{ Debug.LogWarning("Cannot make new animation stage - there is no AnimationDef"); return false; }
foreach(Actor actor in Workspace.animationDef.actors)
{
PawnAnimationClip clip = new PawnAnimationClip();
if (clip.MakeNew())
{ animationClips.Add(clip); }
}
Initialize();
Workspace.animationDef.animationStages.Add(this);
return true;
}
} }
} }

View File

@ -9,6 +9,7 @@ namespace RimWorldAnimationStudio
public class ActorBody : MonoBehaviour, IPointerClickHandler, IDragHandler public class ActorBody : MonoBehaviour, IPointerClickHandler, IDragHandler
{ {
public int actorID; public int actorID;
public string bodyType = "Male";
public SpriteRenderer bodyRenderer; public SpriteRenderer bodyRenderer;
public SpriteRenderer headRenderer; public SpriteRenderer headRenderer;
@ -22,8 +23,51 @@ namespace RimWorldAnimationStudio
{ {
if (eventData.pointerCurrentRaycast.gameObject.GetComponent<ActorBody>() == null) if (eventData.pointerCurrentRaycast.gameObject.GetComponent<ActorBody>() == null)
{ return; } { return; }
foreach (ActorBody actorBody in AnimationController.Instance.actorBodies) Activate();
}
public void OnDrag(PointerEventData eventData)
{
Activate();
PawnKeyframe keyframe = Workspace.Instance.GetCurrentPawnKeyframe();
if (Workspace.Instance.GetCurrentPawnKeyframe() == null)
{ Debug.LogWarning("Cannot alter actor - no keyframe data available"); return; }
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if (Workspace.actorManipulationMode == ActorManipulationMode.Pan)
{
keyframe.bodyOffsetX = mousePosition.x;
keyframe.bodyOffsetZ = mousePosition.y;
}
else if (Workspace.actorManipulationMode == ActorManipulationMode.Rotate)
{
float angle = Vector2.SignedAngle(Vector2.down, (Vector2)mousePosition - (Vector2)transform.position);
keyframe.bodyAngle = angle;
}
else if (Workspace.actorManipulationMode == ActorManipulationMode.Face)
{
float angle = Vector2.SignedAngle(Vector2.up, (Vector2)mousePosition - (Vector2)transform.position);
int facing = -Mathf.RoundToInt(angle / 90f );
facing = facing < 0 ? facing + 4 : facing;
keyframe.bodyFacing = facing;
}
PawnAnimationClip clip = Workspace.Instance.GetPawnAnimationClip(actorID);
clip.BuildSimpleCurves();
}
public void Activate()
{
Workspace.actorID = actorID;
foreach (ActorBody actorBody in AnimationController.Instance.GetComponentsInChildren<ActorBody>())
{ {
if (actorBody == this) if (actorBody == this)
{ continue; } { continue; }
@ -34,40 +78,6 @@ namespace RimWorldAnimationStudio
bodyRenderer.color = new Color(0f, 1f, 0f); bodyRenderer.color = new Color(0f, 1f, 0f);
headRenderer.color = new Color(0f, 1f, 0f); headRenderer.color = new Color(0f, 1f, 0f);
Workspace.actorID = actorID;
}
public void OnDrag(PointerEventData eventData)
{
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if (Workspace.actorManipulationMode == ActorManipulationMode.Pan)
{
Workspace.animationDef.animationStages[Workspace.stageID].animationClips[actorID].keyframes.FirstOrDefault(x => x.keyframeID == Workspace.keyframeID).bodyOffsetX = mousePosition.x;
Workspace.animationDef.animationStages[Workspace.stageID].animationClips[actorID].keyframes.FirstOrDefault(x => x.keyframeID == Workspace.keyframeID).bodyOffsetZ = mousePosition.y;
}
else if (Workspace.actorManipulationMode == ActorManipulationMode.Rotate)
{
float angle = Vector2.SignedAngle(Vector2.down, (Vector2)mousePosition - (Vector2)transform.position);
Workspace.animationDef.animationStages[Workspace.stageID].animationClips[actorID].keyframes.FirstOrDefault(x => x.keyframeID == Workspace.keyframeID).bodyAngle = angle;
}
else if (Workspace.actorManipulationMode == ActorManipulationMode.Face)
{
float angle = Vector2.SignedAngle(Vector2.up, (Vector2)mousePosition - (Vector2)transform.position);
int facing = -Mathf.RoundToInt(angle / 90f );
facing = facing < 0 ? facing + 4 : facing;
Debug.Log(facing.ToString());
Workspace.animationDef.animationStages[Workspace.stageID].animationClips[actorID].keyframes.FirstOrDefault(x => x.keyframeID == Workspace.keyframeID).bodyFacing = facing;
}
PawnAnimationClip clip = Workspace.Instance.GetPawnAnimationClip(actorID);
clip.BuildSimpleCurves();
} }
} }
} }

View File

@ -16,17 +16,13 @@ namespace RimWorldAnimationStudio
if (eventData.pointerCurrentRaycast.gameObject.GetComponent<ActorBodyPart>() == null) if (eventData.pointerCurrentRaycast.gameObject.GetComponent<ActorBodyPart>() == null)
{ return; } { return; }
foreach (ActorBody actorBody in AnimationController.Instance.actorBodies) Activate();
{
actorBody.bodyRenderer.color = new Color(1f, 1f, 1f);
actorBody.headRenderer.color = new Color(1f, 1f, 1f);
}
bodyPartRenderer.color = new Color(0f, 1f, 0f);
} }
public void OnDrag(PointerEventData eventData) public void OnDrag(PointerEventData eventData)
{ {
Activate();
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
PawnKeyframe keyframe = Workspace.animationDef.animationStages[Workspace.stageID].animationClips[parent.actorID].keyframes.FirstOrDefault(x => x.keyframeID == Workspace.keyframeID); PawnKeyframe keyframe = Workspace.animationDef.animationStages[Workspace.stageID].animationClips[parent.actorID].keyframes.FirstOrDefault(x => x.keyframeID == Workspace.keyframeID);
@ -63,5 +59,18 @@ namespace RimWorldAnimationStudio
PawnAnimationClip clip = Workspace.Instance.GetPawnAnimationClip(parent.actorID); PawnAnimationClip clip = Workspace.Instance.GetPawnAnimationClip(parent.actorID);
clip.BuildSimpleCurves(); clip.BuildSimpleCurves();
} }
public void Activate()
{
Workspace.actorID = parent.actorID;
foreach (ActorBody actorBody in AnimationController.Instance.GetComponentsInChildren<ActorBody>())
{
actorBody.bodyRenderer.color = new Color(1f, 1f, 1f);
actorBody.headRenderer.color = new Color(1f, 1f, 1f);
}
bodyPartRenderer.color = new Color(0f, 1f, 0f);
}
} }
} }

View File

@ -13,22 +13,11 @@ namespace RimWorldAnimationStudio
public InputField bodyOffsetZField; public InputField bodyOffsetZField;
public Toggle initiatorToggle; public Toggle initiatorToggle;
private Actor actor; public void Initialize()
public string bodyType
{
get
{
string _bodyType = bodyTypeDropdown.options[bodyTypeDropdown.value].text;
if (_bodyType == "") return "Male";
return _bodyType;
}
}
public void Initialize(Actor actor)
{ {
this.actor = actor; Actor actor = Workspace.animationDef.actors[Workspace.actorID];
string bodyType = bodyTypeDropdown.options[bodyTypeDropdown.value].text;
bodyType = bodyType == null || bodyType == "" ? "Male" : bodyType;
initiatorToggle.isOn = actor.initiator; initiatorToggle.isOn = actor.initiator;
bodyOffsetXField.text = actor.bodyTypeOffset.GetOffset(bodyType).x.ToString(); bodyOffsetXField.text = actor.bodyTypeOffset.GetOffset(bodyType).x.ToString();
@ -37,18 +26,23 @@ namespace RimWorldAnimationStudio
public void UpdateAnimationDef() public void UpdateAnimationDef()
{ {
Actor actor = Workspace.animationDef.actors[Workspace.actorID];
string bodyType = bodyTypeDropdown.options[bodyTypeDropdown.value].text;
bodyType = bodyType == null || bodyType == "" ? "Male" : bodyType;
Debug.Log(bodyType);
AnimationController.Instance.transform.GetChild(Workspace.actorID).GetComponent<ActorBody>().bodyType = bodyType;
float.TryParse(bodyOffsetXField.text, out float x); float.TryParse(bodyOffsetXField.text, out float x);
float.TryParse(bodyOffsetZField.text, out float z); float.TryParse(bodyOffsetZField.text, out float z);
actor.bodyTypeOffset.SetOffset(bodyType, new Vector2(x, z)); actor.bodyTypeOffset.SetOffset(bodyType, new Vector2(x, z));
actor.initiator = initiatorToggle.isOn;
if (actor.isFucking == null) actor.initiator = initiatorToggle.isOn;
{ }
} }
public void OpenSelectBodyPartsDialog() public void OpenSelectBodyPartsDialog()
{ {
Actor actor = Workspace.animationDef.actors[Workspace.actorID];
var dialog = Resources.FindObjectsOfTypeAll(typeof(SelectBodyPartsDialog)) as SelectBodyPartsDialog[]; var dialog = Resources.FindObjectsOfTypeAll(typeof(SelectBodyPartsDialog)) as SelectBodyPartsDialog[];
if (dialog != null) if (dialog != null)
@ -57,6 +51,7 @@ namespace RimWorldAnimationStudio
public void OpenSelectDefNamesDialog() public void OpenSelectDefNamesDialog()
{ {
Actor actor = Workspace.animationDef.actors[Workspace.actorID];
var dialog = Resources.FindObjectsOfTypeAll(typeof(SelectDefNamesDialog)) as SelectDefNamesDialog[]; var dialog = Resources.FindObjectsOfTypeAll(typeof(SelectDefNamesDialog)) as SelectDefNamesDialog[];
if (dialog != null) if (dialog != null)
@ -65,6 +60,7 @@ namespace RimWorldAnimationStudio
public void OpenSelectBodyDefTypesDialog() public void OpenSelectBodyDefTypesDialog()
{ {
Actor actor = Workspace.animationDef.actors[Workspace.actorID];
var dialog = Resources.FindObjectsOfTypeAll(typeof(SelectBodyDefTypesDialog)) as SelectBodyDefTypesDialog[]; var dialog = Resources.FindObjectsOfTypeAll(typeof(SelectBodyDefTypesDialog)) as SelectBodyDefTypesDialog[];
if (dialog != null) if (dialog != null)

View File

@ -20,8 +20,11 @@ namespace RimWorldAnimationStudio
if ((Workspace.animationDef == null || AnimationController.Instance.stageTick == lastTick) && isDirty == false) if ((Workspace.animationDef == null || AnimationController.Instance.stageTick == lastTick) && isDirty == false)
{ return; } { return; }
ActorBody actorBody = AnimationController.Instance.actorBodies[Workspace.actorID]; if (Workspace.actorID >= AnimationController.Instance.transform.childCount)
string bodyType = AnimationController.Instance.actorCards.transform.GetChild(Workspace.actorID).GetComponent<ActorCard>().bodyType; { return; }
ActorBody actorBody = AnimationController.Instance.transform.GetChild(Workspace.actorID).GetComponent<ActorBody>();
string bodyType = actorBody.bodyType;
PawnAnimationClip clip = Workspace.animationDef.animationStages[Workspace.stageID].animationClips[Workspace.actorID]; PawnAnimationClip clip = Workspace.animationDef.animationStages[Workspace.stageID].animationClips[Workspace.actorID];
float clipPercent = (float)(AnimationController.Instance.stageTick % clip.duration) / clip.duration; float clipPercent = (float)(AnimationController.Instance.stageTick % clip.duration) / clip.duration;

View File

@ -17,6 +17,8 @@ namespace RimWorldAnimationStudio
{ {
this.actorID = actorID; this.actorID = actorID;
Reset();
PawnAnimationClip clip = Workspace.Instance.GetPawnAnimationClip(actorID); PawnAnimationClip clip = Workspace.Instance.GetPawnAnimationClip(actorID);
if (clip == null || clip.keyframes.NullOrEmpty()) if (clip == null || clip.keyframes.NullOrEmpty())
@ -35,22 +37,22 @@ namespace RimWorldAnimationStudio
} }
} }
public void AddKeyFrame(int atTick) public void Reset()
{ {
foreach(KeyframeSlider keyframeSlider in GetComponentsInChildren<KeyframeSlider>())
{ Destroy(keyframeSlider.gameObject); }
} }
public bool CanAddKeyFrameAtTick(int atTick) public void AddPawnKeyFrame(int keyframeID)
{ {
foreach (Transform child in transform) KeyframeSlider keyframeSlider = Instantiate(keyframeSliderPrefab, transform);
{ keyframeSlider.Initialize(this, actorID, keyframeID);
KeyframeSlider keyframeSlider = child.GetComponent<KeyframeSlider>(); }
if (keyframeSlider != null && Workspace.Instance.GetPawnKeyframe(keyframeSlider.actorID, keyframeSlider.keyframeID).atTick == atTick) public void RemovePawnKeyFrame(int keyframeID)
{ return false; } {
} KeyframeSlider keyframeSlider = GetComponentsInChildren<KeyframeSlider>().FirstOrDefault(x => x.keyframeID == keyframeID);
Destroy(keyframeSlider?.gameObject);
return true;
} }
} }
} }

View File

@ -12,9 +12,6 @@ namespace RimWorldAnimationStudio
public class KeyframeSlider : Slider, IPointerClickHandler, IBeginDragHandler, IEndDragHandler public class KeyframeSlider : Slider, IPointerClickHandler, IBeginDragHandler, IEndDragHandler
{ {
public AnimationTimeline timeline; public AnimationTimeline timeline;
//public AnimationClip clip;
//public Keyframe keyframe;
public Transform ghostSliders; public Transform ghostSliders;
public Slider ghostSliderPrefab; public Slider ghostSliderPrefab;
public int maxGhosts = 4; public int maxGhosts = 4;
@ -22,18 +19,22 @@ namespace RimWorldAnimationStudio
public int actorID; public int actorID;
public int keyframeID; public int keyframeID;
private PawnAnimationClip clip;
private PawnKeyframe keyframe;
public void Initialize(AnimationTimeline timeline, int actorID, int keyframeID) public void Initialize(AnimationTimeline timeline, int actorID, int keyframeID)
{ {
this.timeline = timeline; this.timeline = timeline;
//this.clip = clip; this.clip = Workspace.Instance.GetPawnAnimationClip(actorID);
//this.keyframe = keyframe; this.keyframe = Workspace.Instance.GetPawnKeyframe(actorID, keyframeID);
this.actorID = actorID; this.actorID = actorID;
this.keyframeID = keyframeID; this.keyframeID = keyframeID;
PawnKeyframe keyframe = Workspace.Instance.GetPawnKeyframe(actorID, keyframeID); PawnKeyframe keyframe = Workspace.Instance.GetPawnKeyframe(actorID, keyframeID);
Debug.Log(keyframe.atTick); maxValue = Workspace.animationClipWindowSize;
value = (float)keyframe.atTick / Workspace.animationClipWindowSize; value = keyframe.atTick.Value;
OnValueChanged(); OnValueChanged();
onValueChanged.AddListener(delegate (float value) { OnValueChanged(); }); onValueChanged.AddListener(delegate (float value) { OnValueChanged(); });
@ -41,12 +42,7 @@ namespace RimWorldAnimationStudio
public void OnValueChanged() public void OnValueChanged()
{ {
PawnKeyframe keyframe = Workspace.Instance.GetPawnKeyframe(actorID, keyframeID); keyframe.atTick = (int)value;
PawnAnimationClip clip = Workspace.Instance.GetPawnAnimationClip(actorID);
int newTick = Mathf.RoundToInt(value * Workspace.animationClipWindowSize);
keyframe.atTick = newTick;
UpdateGhostFrames(); UpdateGhostFrames();
@ -58,9 +54,6 @@ namespace RimWorldAnimationStudio
// Ghost sliders are non-interactable slider handle // Ghost sliders are non-interactable slider handle
public void UpdateGhostFrames() public void UpdateGhostFrames()
{ {
PawnKeyframe keyframe = Workspace.Instance.GetPawnKeyframe(actorID, keyframeID);
PawnAnimationClip clip = Workspace.Instance.GetPawnAnimationClip(actorID);
if (maxGhosts == 0) if (maxGhosts == 0)
{ return; } { return; }
@ -79,7 +72,7 @@ namespace RimWorldAnimationStudio
Slider ghostSlider = ghostSliderObject.GetComponent<Slider>(); Slider ghostSlider = ghostSliderObject.GetComponent<Slider>();
Debug.Log(ghostSlider); Debug.Log(ghostSlider);
ghostSlider.value = (float)((i + 1) * clip.duration + keyframe.atTick) / Workspace.animationClipWindowSize; ghostSlider.value = (int)((i + 1) * clip.duration + keyframe.atTick);
float mult = 1f - Mathf.Pow((float)i / maxGhosts, 2); float mult = 1f - Mathf.Pow((float)i / maxGhosts, 2);
ghostSlider.transform.FindDeepChild("Handle").GetComponent<Image>().color = new Color(0, 0.5f, 0.5f, 0.5f * mult); ghostSlider.transform.FindDeepChild("Handle").GetComponent<Image>().color = new Color(0, 0.5f, 0.5f, 0.5f * mult);
@ -92,8 +85,6 @@ namespace RimWorldAnimationStudio
public int GetGhostFramesRequired() public int GetGhostFramesRequired()
{ {
PawnAnimationClip clip = Workspace.Instance.GetPawnAnimationClip(actorID);
if (Workspace.animationDef.animationStages[Workspace.stageID].isLooping == false) if (Workspace.animationDef.animationStages[Workspace.stageID].isLooping == false)
{ return 0; } { return 0; }
@ -105,31 +96,48 @@ namespace RimWorldAnimationStudio
public void OnPointerClick(PointerEventData eventData) public void OnPointerClick(PointerEventData eventData)
{ {
PawnKeyframe keyframe = Workspace.Instance.GetPawnKeyframe(actorID, keyframeID); Activate();
foreach (KeyframeSlider keyframeSlider in timeline.transform.GetComponentsInChildren<KeyframeSlider>())
{
if (keyframeSlider == this)
{ continue; }
keyframeSlider.transform.FindDeepChild("Handle").GetComponent<Image>().color = new Color(1f, 1f, 1f);
}
transform.FindDeepChild("Handle").GetComponent<Image>().color = new Color(0f, 1f, 0f);
AnimationController.Instance.stageTick = keyframe.atTick.Value;
Workspace.keyframeID = keyframeID;
} }
public void OnBeginDrag(PointerEventData eventData) public void OnBeginDrag(PointerEventData eventData)
{ {
Activate();
if (keyframe.atTick == 1)
{ return; }
interactable = true; interactable = true;
} }
public override void OnDrag(PointerEventData eventData)
{
base.OnDrag(eventData);
Activate();
}
public void OnEndDrag(PointerEventData eventData) public void OnEndDrag(PointerEventData eventData)
{ {
interactable = false; interactable = false;
} }
public void Activate()
{
AnimationController.Instance.stageTick = keyframe.atTick.Value;
Workspace.keyframeID = keyframeID;
foreach (AnimationTimeline _timeline in AnimationController.Instance.animationTimelines.GetComponentsInChildren<AnimationTimeline>())
{
foreach (KeyframeSlider keyframeSlider in _timeline.GetComponentsInChildren<KeyframeSlider>())
{
if (keyframeSlider.keyframe.atTick.Value == keyframe.atTick.Value)
{ keyframeSlider.transform.FindDeepChild("Handle").GetComponent<Image>().color = new Color(0f, 1f, 0f); }
else
{ keyframeSlider.transform.FindDeepChild("Handle").GetComponent<Image>().color = new Color(1f, 1f, 1f); }
}
}
}
} }
} }

View File

@ -2,23 +2,20 @@
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using UnityEngine.EventSystems;
namespace RimWorldAnimationStudio namespace RimWorldAnimationStudio
{ {
public class StageCard : MonoBehaviour public class StageCard : MonoBehaviour, IPointerClickHandler
{ {
private Text stageName;
private InputField stageNameField;
private Image banner; private Image banner;
private Toggle toggle;
public void OnNameChange() public void OnNameChange()
{ {
stageName.text = stageNameField.text;
} stageNameField.gameObject.SetActive(false);
public void OnSelectStage()
{
if (GetComponent<Toggle>().isOn && Workspace.stageID != transform.GetSiblingIndex())
{ Workspace.stageID = transform.GetSiblingIndex(); }
} }
public void OnMoveStage(int delta) public void OnMoveStage(int delta)
@ -32,30 +29,39 @@ namespace RimWorldAnimationStudio
} }
} }
public void Start() public void Initialize(string stageName)
{ {
banner = transform.Find("Banner").GetComponent<Image>(); this.stageName = transform.Find("StageName").GetComponent<Text>();
toggle = GetComponent<Toggle>(); this.stageNameField = transform.Find("StageNameField").GetComponent<InputField>();
toggle.group = StageCardManager.Instance.GetComponent<ToggleGroup>(); this.banner = transform.Find("Banner").GetComponent<Image>();
this.stageName.text = stageName;
} }
public void Update() public void Update()
{ {
if (Workspace.stageID == transform.GetSiblingIndex()) if (Workspace.stageID == transform.GetSiblingIndex())
{ { banner.gameObject.SetActive(true); }
banner.gameObject.SetActive(true);
if (toggle.isOn == false)
{ toggle.isOn = true; }
}
else else
{ {
banner.gameObject.SetActive(false); banner.gameObject.SetActive(false);
stageNameField.gameObject.SetActive(false);
if (toggle.isOn)
{ toggle.isOn = false; }
} }
} }
public void OnPointerClick(PointerEventData eventData)
{
if (eventData.clickCount >= 2)
{
stageNameField.text = stageName.text;
stageNameField.gameObject.SetActive(true);
}
Workspace.stageID = transform.GetSiblingIndex();
AnimationController.Instance.ResetAnimationTimeline();
AnimationController.Instance.InitializeAnimationTimeline();
}
} }
} }

View File

@ -1,6 +1,7 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 63160f5485db7444a9493d2195860460 guid: 5d9672c420dae5b4095d933223c39cd5
PrefabImporter: folderAsset: yes
DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:
assetBundleName: assetBundleName:

View File

@ -12,35 +12,28 @@ namespace RimWorldAnimationStudio
{ {
public class AnimationController : Singleton<AnimationController> public class AnimationController : Singleton<AnimationController>
{ {
[Header("Animation settings")]
public bool isAnimating = false; public bool isAnimating = false;
public bool isLooping = true; public int stageTick = 1;
public int stageTick = 0;
public bool autoAdvanceToNextStage = false;
[Header("Object references")]
public Slider stageTimelineSlider; public Slider stageTimelineSlider;
public GameObject actorBodyPrefab;
public List<ActorBody> actorBodies = new List<ActorBody>();
public Text stageTickText;
public Text stageLengthText;
public Transform actorCards;
public GameObject actorCardPrefab;
public Dropdown stageLoopDropdown; public Dropdown stageLoopDropdown;
public InputField stageIDField;
public Transform animationTimelines;
public AnimationTimeline animationTimelinePrefab;
private float currentTime = 0;
private int cycleIndex = 0;
public InputField cyclesNormalField; public InputField cyclesNormalField;
public InputField cyclesFastField; public InputField cyclesFastField;
public Text stageTickText;
public Text stageLengthText;
public ActorCard actorCard;
public Transform animationTimelines;
[Header("Prefabs")]
public ActorBody actorBodyPrefab;
public AnimationTimeline animationTimelinePrefab;
// Private timing variables
private float timeSinceLastUpdate = 0;
private int cycleIndex = 0;
public void Update() public void Update()
{ {
// No animation, exit // No animation, exit
@ -50,61 +43,65 @@ namespace RimWorldAnimationStudio
if (Workspace.animationDef != null && Workspace.isDirty) if (Workspace.animationDef != null && Workspace.isDirty)
{ Initialize(); return; } { Initialize(); return; }
// Not animating, update preview // Update tick if animating
if (isAnimating == false) { UpdateAnimation(); return; } if (isAnimating)
{
timeSinceLastUpdate += Time.deltaTime;
// Animating, update stage tick before updating preview if (timeSinceLastUpdate < 1f / 60f)
currentTime += Time.deltaTime; { return; }
if (currentTime < 1f/60f) timeSinceLastUpdate -= 1f / 60f;
{ return; } stageTick += 1;
currentTime -= 1f/60f; if (stageTick > Workspace.animationClipWindowSize)
stageTick += 1;
if (stageTick > Workspace.animationClipWindowSize)
{
if (stageLoopDropdown.value == 1)
{ stageTick = 1; }
else if (stageLoopDropdown.value == 2 && Workspace.stageID < Workspace.animationDef.animationStages.Count - 1)
{ {
++cycleIndex; if (stageLoopDropdown.value == 1)
stageTick = 1; { stageTick = 1; }
if (cycleIndex > int.Parse(cyclesNormalField.text)) else if (stageLoopDropdown.value == 2 && Workspace.stageID < Workspace.animationDef.animationStages.Count - 1)
{ {
++Workspace.stageID; ++cycleIndex;
stageIDField.text = Workspace.stageID.ToString(); stageTick = 1;
cycleIndex = 0;
}
}
else if (cycleIndex > int.Parse(cyclesNormalField.text))
{ stageTick = Workspace.animationClipWindowSize; } {
++Workspace.stageID;
cycleIndex = 0;
}
}
else
{ stageTick = Workspace.animationClipWindowSize; }
}
} }
// Update stage timeline
stageTimelineSlider.maxValue = Workspace.animationClipWindowSize; stageTimelineSlider.maxValue = Workspace.animationClipWindowSize;
stageTimelineSlider.value = stageTick; stageTimelineSlider.value = stageTick;
stageTickText.text = stageTick.ToString();
stageLengthText.text = Workspace.animationClipWindowSize.ToString();
// Update animation
UpdateAnimation(); UpdateAnimation();
} }
public void UpdateAnimation() public void UpdateAnimation()
{ {
if (stageTickText != null) List<ActorBody> actorBodies = GetComponentsInChildren<ActorBody>().ToList();
{ stageTickText.text = stageTick.ToString(); }
if (stageLengthText != null)
{ stageLengthText.text = Workspace.animationClipWindowSize.ToString(); }
for (int actorID = 0; actorID < actorBodies.Count; actorID++) for (int actorID = 0; actorID < actorBodies.Count; actorID++)
{ {
ActorBody actorBody = actorBodies[actorID]; PawnAnimationClip clip = Workspace.animationDef?.animationStages[Workspace.stageID]?.animationClips[actorID];
string bodyType = actorCards.transform.GetChild(actorID).GetComponent<ActorCard>().bodyType;
if (clip == null)
{ continue; }
PawnAnimationClip clip = Workspace.animationDef.animationStages[Workspace.stageID].animationClips[actorID];
float clipPercent = (float)(stageTick % clip.duration) / clip.duration; float clipPercent = (float)(stageTick % clip.duration) / clip.duration;
ActorBody actorBody = actorBodies[actorID];
string bodyType = actorBody.bodyType;
Vector3 deltaPos = new Vector3(clip.BodyOffsetX.Evaluate(clipPercent), 0, clip.BodyOffsetZ.Evaluate(clipPercent)); Vector3 deltaPos = new Vector3(clip.BodyOffsetX.Evaluate(clipPercent), 0, clip.BodyOffsetZ.Evaluate(clipPercent));
deltaPos += Workspace.animationDef.actors[actorID].bodyTypeOffset.GetOffset(bodyType); deltaPos += Workspace.animationDef.actors[actorID].bodyTypeOffset.GetOffset(bodyType);
@ -140,75 +137,64 @@ namespace RimWorldAnimationStudio
} }
} }
public void UpdateStageID()
{
if (Workspace.animationDef == null)
{
stageIDField.text = "0";
return;
}
int.TryParse(stageIDField.text, out int i);
Workspace.stageID = Mathf.Clamp(i, 0, Workspace.animationDef.animationStages.Count - 1);
stageTick = 0;
stageIDField.text = Workspace.stageID.ToString();
}
public void Initialize() public void Initialize()
{ {
Debug.Log("Initializing animation preview"); Debug.Log("Initializing animation preview");
Reset(); Reset();
Workspace.animationClipWindowSize = Workspace.animationDef.animationStages[Workspace.stageID].animationClips.Select(x => x.duration).Max(); InitializeAnimationTimeline();
stageTimelineSlider.maxValue = Workspace.animationClipWindowSize; StageCardManager.Instance.Initialize();
Workspace.isDirty = false;
}
public void InitializeAnimationTimeline()
{
Workspace.animationClipWindowSize = Workspace.animationDef.animationStages[Workspace.stageID].animationClips.Select(x => x.duration).Max();
cyclesNormalField.text = Mathf.Max(Mathf.CeilToInt((float)Workspace.animationDef.animationStages[Workspace.stageID].playTimeTicks / Workspace.animationClipWindowSize), 1).ToString(); cyclesNormalField.text = Mathf.Max(Mathf.CeilToInt((float)Workspace.animationDef.animationStages[Workspace.stageID].playTimeTicks / Workspace.animationClipWindowSize), 1).ToString();
cyclesFastField.text = Mathf.Max(Mathf.CeilToInt((float)Workspace.animationDef.animationStages[Workspace.stageID].playTimeTicksQuick / Workspace.animationClipWindowSize), 1).ToString(); cyclesFastField.text = Mathf.Max(Mathf.CeilToInt((float)Workspace.animationDef.animationStages[Workspace.stageID].playTimeTicksQuick / Workspace.animationClipWindowSize), 1).ToString();
for (int actorID = 0; actorID < Workspace.animationDef.actors.Count; actorID++) for (int actorID = 0; actorID < Workspace.animationDef.actors.Count; actorID++)
{ {
GameObject actorBodyObject = Instantiate(actorBodyPrefab, transform); ActorBody actorBody = Instantiate(actorBodyPrefab, transform);
actorBodies.Add(actorBodyObject.GetComponent<ActorBody>()); actorBody.Initialize(actorID);
actorBodyObject.GetComponent<ActorBody>().Initialize(actorID);
GameObject actorCardObject = Instantiate(actorCardPrefab, actorCards);
actorCardObject.GetComponent<ActorCard>().Initialize(Workspace.animationDef.actors[actorID]);
AnimationTimeline animationTimeline = Instantiate(animationTimelinePrefab, animationTimelines); AnimationTimeline animationTimeline = Instantiate(animationTimelinePrefab, animationTimelines);
animationTimeline.Initialize(actorID); animationTimeline.Initialize(actorID);
} }
StageCardManager.Instance.Initialize(); stageTimelineSlider.maxValue = Workspace.animationClipWindowSize;
stageTimelineSlider.value = 1;
Workspace.isDirty = false; stageTick = 1;
UpdateAnimation();
} }
public void Reset() public void Reset()
{ {
Workspace.stageID = 0; Workspace.stageID = 0;
stageTick = 0;
ResetAnimationTimeline();
StageCardManager.Instance.Reset();
}
public void ResetAnimationTimeline()
{
isAnimating = false; isAnimating = false;
timeSinceLastUpdate = 0;
cycleIndex = 0;
foreach (ActorBody actorBody in actorBodies) foreach (ActorBody actorBody in GetComponentsInChildren<ActorBody>())
{ Destroy(actorBody.gameObject); } { Destroy(actorBody.gameObject); }
foreach (Transform actorCard in actorCards)
{ Destroy(actorCard.gameObject); }
foreach (Transform animationTimeline in animationTimelines) foreach (Transform animationTimeline in animationTimelines)
{ Destroy(animationTimeline.gameObject); } { Destroy(animationTimeline.gameObject); }
actorBodies.Clear();
} }
public bool AddAnimationStage() public bool AddAnimationStage()
{ {
return true; AnimationStage stage = new AnimationStage();
return stage.MakeNew();
} }
public bool CloneAnimationStage() public bool CloneAnimationStage()
@ -248,17 +234,20 @@ namespace RimWorldAnimationStudio
return true; return true;
} }
public bool AddActor() public void AddActor()
{ {
return true; Actor actor = new Actor();
if (actor.MakeNew())
{ Initialize(); }
} }
public bool RemoveActor() public void RemoveActor()
{ {
if (Workspace.animationDef.actors.Count == 1) if (Workspace.animationDef.actors.Count == 1)
{ {
Debug.LogWarning("Cannot delete actor - the animation must contain at least one actor."); Debug.LogWarning("Cannot delete actor - the animation must contain at least one actor.");
return false; return;
} }
foreach (AnimationStage stage in Workspace.animationDef.animationStages) foreach (AnimationStage stage in Workspace.animationDef.animationStages)
@ -267,21 +256,66 @@ namespace RimWorldAnimationStudio
Workspace.animationDef.actors.RemoveAt(Workspace.actorID); Workspace.animationDef.actors.RemoveAt(Workspace.actorID);
Workspace.actorID = Workspace.actorID >= Workspace.animationDef.actors.Count ? Workspace.actorID = Workspace.animationDef.actors.Count - 1 : Workspace.actorID; Workspace.actorID = Workspace.actorID >= Workspace.animationDef.actors.Count ? Workspace.actorID = Workspace.animationDef.actors.Count - 1 : Workspace.actorID;
return true; Initialize();
} }
public void AddPawnKeyframe()
{
PawnAnimationClip clip = Workspace.Instance.GetCurrentPawnAnimationClip();
List<PawnKeyframe> keyframes = clip?.keyframes;
if (clip == null || keyframes == null)
{ Debug.LogWarning("Cannot add pawn keyframe - the AnimationDef is invalid"); return; }
if (keyframes.FirstOrDefault(x => x.atTick == stageTick) != null)
{ Debug.LogWarning("Cannot add pawn keyframe - a keyframe already exists at this tick"); return; }
float clipPercent = (float)(stageTick % clip.duration) / clip.duration;
PawnKeyframe keyframe = new PawnKeyframe();
keyframe.bodyAngle = clip.BodyAngle.Evaluate(clipPercent);
keyframe.headAngle = clip.HeadAngle.Evaluate(clipPercent);
keyframe.headBob = clip.HeadBob.Evaluate(clipPercent);
keyframe.bodyOffsetX = clip.BodyOffsetX.Evaluate(clipPercent);
keyframe.bodyOffsetZ = clip.BodyOffsetZ.Evaluate(clipPercent);
keyframe.headFacing = clip.HeadFacing.Evaluate(clipPercent);
keyframe.bodyFacing = clip.BodyFacing.Evaluate(clipPercent);
keyframe.genitalAngle = clip.GenitalAngle.Evaluate(clipPercent);
keyframe.atTick = stageTick;
PawnKeyframe nextKeyframe = keyframes.FirstOrDefault(x => x.atTick > stageTick);
if (nextKeyframe != null)
{ keyframes.Insert(keyframes.IndexOf(nextKeyframe), keyframe); }
else
{ keyframes.Add(keyframe); }
clip.BuildSimpleCurves();
animationTimelines.GetChild(Workspace.actorID).GetComponent<AnimationTimeline>().AddPawnKeyFrame(keyframe.keyframeID);
}
public void RemovePawnKeyframe()
{
PawnKeyframe keyframe = Workspace.Instance.GetCurrentPawnKeyframe(false);
if (keyframe != null)
{
animationTimelines.GetChild(Workspace.actorID).GetComponent<AnimationTimeline>().RemovePawnKeyFrame(keyframe.keyframeID);
PawnAnimationClip clip = Workspace.Instance.GetCurrentPawnAnimationClip();
clip.keyframes.Remove(keyframe);
clip.BuildSimpleCurves();
}
}
public void ToggleAnimation() public void ToggleAnimation()
{ {
isAnimating = !isAnimating; isAnimating = !isAnimating;
} }
public void ToggleAnimationLoop()
{
isLooping = !isLooping;
}
public void UpdateFromStageTimelineSlider() public void UpdateFromStageTimelineSlider()
{ {
if (Workspace.animationDef == null) if (Workspace.animationDef == null)

View File

@ -49,9 +49,6 @@ namespace RimWorldAnimationStudio
curZoom += Input.GetAxis("Mouse ScrollWheel") * scrollSpeed * 0.1f; curZoom += Input.GetAxis("Mouse ScrollWheel") * scrollSpeed * 0.1f;
curZoom = Mathf.Clamp(curZoom, maxZoom, minZoom); curZoom = Mathf.Clamp(curZoom, maxZoom, minZoom);
x = transform.position.x + Input.GetAxis("Horizontal") * scrollSpeed * Time.deltaTime;
y = transform.position.y + Input.GetAxis("Vertical") * scrollSpeed * Time.deltaTime;
Vector3 cameraPosition = Vector3.Lerp(transform.position, new Vector3(x, y, -10), 0.2f); Vector3 cameraPosition = Vector3.Lerp(transform.position, new Vector3(x, y, -10), 0.2f);
transform.position = cameraPosition; transform.position = cameraPosition;
cam.orthographicSize = Mathf.Abs(curZoom); cam.orthographicSize = Mathf.Abs(curZoom);

View File

@ -12,9 +12,13 @@ namespace RimWorldAnimationStudio
public void Initialize() public void Initialize()
{ {
foreach(AnimationStage stage in Workspace.animationDef.animationStages) foreach(AnimationStage stage in Workspace.animationDef.animationStages)
{ { MakeStageCard(stage.stageName); }
MakeStageCard(stage.stageName); }
}
public void Reset()
{
foreach(StageCard stageCard in GetComponentsInChildren<StageCard>())
{ Destroy(stageCard.gameObject); }
} }
public StageCard MakeStageCard(string stageName = null) public StageCard MakeStageCard(string stageName = null)
@ -22,14 +26,15 @@ namespace RimWorldAnimationStudio
StageCard stageCard = Instantiate(stageCardPrefab, transform); StageCard stageCard = Instantiate(stageCardPrefab, transform);
if (stageName != null) if (stageName != null)
{ stageCard.transform.Find("StageNameField").GetComponent<InputField>().text = stageName; } { stageCard.Initialize(stageName); }
return stageCard; return stageCard;
} }
public void OnNewStage() public void OnNewStage()
{ {
MakeStageCard(); if (AnimationController.Instance.AddAnimationStage())
{ MakeStageCard("NewStage"); }
} }
public void OnCloneStage() public void OnCloneStage()

View File

@ -1,6 +1,7 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 03afc196af1cd0d48acaf5d63fa41039 guid: 8ac88bae1e709d142bde52c3a5f17a9b
PrefabImporter: folderAsset: yes
DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:
assetBundleName: assetBundleName:

View File

@ -1,6 +1,7 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: b77422ff2d3c9134ca5b1d461e1d3868 guid: 0288c6c177cf10045b08f5d2b9ad52c4
PrefabImporter: folderAsset: yes
DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:
assetBundleName: assetBundleName:

View File

@ -1,35 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace RimWorldAnimationStudio
{
public class Tag : MonoBehaviour
{
public string tagName = "New Tag";
public Text tagText;
public GameObject tagPrefab;
public void Initialize(string tagName)
{
this.tagName = tagName;
tagText.text = tagName;
}
public void AddTag()
{
GameObject newTag = Instantiate(tagPrefab, transform.parent);
newTag.GetComponent<Tag>().Initialize(tagText.text);
tagText.text = tagName;
transform.SetAsLastSibling();
}
public void DeleteTag()
{
//SendMessageUpwards("DeleteTag", this);
Destroy(gameObject);
}
}
}

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: e3306014932bdc74ca0fe3ff85867c58
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ecaf47cada431924c86ace2e8056da7e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c7b8488a225a00944963946ebfa7a654
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -28,12 +28,22 @@ namespace RimWorldAnimationStudio
public static ActorManipulationMode actorManipulationMode = ActorManipulationMode.Pan; public static ActorManipulationMode actorManipulationMode = ActorManipulationMode.Pan;
public static int animationClipWindowSize = 600; public static int animationClipWindowSize = 600;
public PawnKeyframe GetCurrentPawnKeyframe(bool makeNewIfNull = true)
{
int stageTick = AnimationController.Instance.stageTick;
PawnKeyframe keyframe = animationDef?.animationStages[stageID]?.animationClips[actorID]?.keyframes.FirstOrDefault(x => x.atTick == stageTick);
//public int? GetCurrentKeyframe() if (keyframe != null || makeNewIfNull == false)
//{ { return keyframe; }
// return animationDef?.animationStages[stageID]?.animationClips[actorID]?.keyframes.FirstOrDefault(x => x.keyframeID == keyframeID)?.keyframeID;
//} AnimationController.Instance.AddPawnKeyframe();
return animationDef?.animationStages[stageID]?.animationClips[actorID]?.keyframes.FirstOrDefault(x => x.atTick == stageTick);
}
public PawnAnimationClip GetCurrentPawnAnimationClip()
{
return animationDef.animationStages[stageID].animationClips[actorID];
}
public PawnAnimationClip GetPawnAnimationClip(int actorID) public PawnAnimationClip GetPawnAnimationClip(int actorID)
{ {

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More