56 Commits

Author SHA1 Message Date
Chris
58f1bc66bb maint: moved CharacterModel.fbx to folder 2025-12-19 17:21:27 -05:00
Chris
cb2ab4344a maint: renamed player prefab to PlayerOld.prefab 2025-12-19 17:20:32 -05:00
Chris
6fe90c6f8e maint: some blender file minor/nothing changes 2025-12-19 14:05:16 -05:00
Chris
96d116176f feat: cleaned up animation data for new model before importing into unity 2025-12-19 14:00:20 -05:00
Chris
a145af8378 feat: new animations in progress, for 2nd attack and idle/running with weapon 2025-12-19 10:24:57 -05:00
Chris
9758584f73 feat: new player model updated with 2 combat animations, imported into unity and created animation controller 2025-12-18 18:45:23 -05:00
Chris
cdb74e5c99 feat: added test sword model 2025-12-18 18:44:11 -05:00
Chris
9dd1faf9ba feat: added new character model for player with running and idle animation finished. includes some empty/broken files in this commit from a failed recovery attempt 2025-12-17 16:21:26 -05:00
Chris
da2372d77d feat: minor attack value changes 2025-12-06 18:30:08 -05:00
Chris
26ceba2812 fix: non player units no longer rotate with camera 2025-12-06 18:29:42 -05:00
Chris
5f7179c861 fix: dragging units can no longer go haywire and yeet units off the map 2025-12-06 18:29:20 -05:00
Chris
557979f470 feat: updated attack graphs to use new attacking tasks, and overall finished a "0.1" version for enemy attacks- they now work. 2025-12-05 20:40:47 -05:00
Chris
f033ab0fe9 maint: prefab script changing resulting from removal of dragged units in editor 2025-12-05 20:39:33 -05:00
Chris
7f3bfcffe7 fix: players now take damage offline 2025-12-05 20:37:46 -05:00
Chris
a0ed17666d feat: rebuilt dragging mechanic slightly, and it's now more agnostic to collider type 2025-12-05 20:37:06 -05:00
Chris
ff4ccfdb1b feat: added a player layer 2025-12-05 19:21:01 -05:00
Chris
005d348a5c maint: renamed "ignore layers" to "layer mask" to imply additive layer masking 2025-12-05 18:38:38 -05:00
Chris
a631eb2105 feat: unity automatically added values for head/neck rotating to the player 2025-12-05 18:26:10 -05:00
Chris
fd49d7e3a3 change: moved player to own player 2025-12-05 18:24:41 -05:00
Chris
e1aef3b2d1 change: added initial attack damage logic (unfinished) to enemies 2025-12-03 22:52:45 -05:00
Chris
94ecc01074 change: attack chance for enemies down from 25% to 10% 2025-12-03 22:50:43 -05:00
Chris
3525f5fc47 fixed: non-smoothed values now have their values applied properly (instantly, when set) 2025-12-03 17:54:45 -05:00
Chris
14ea2c64dc change: added repath timer to "new path" task 2025-12-03 17:29:45 -05:00
Chris
b19421adfc fix: target property is now used for setting a new pathfinding path. enemies do not stand still in combat. 2025-12-03 15:52:23 -05:00
Chris
20c8b2b8c3 change: scene cleanup (hid exclamation mark) 2025-12-03 15:39:11 -05:00
Chris
4943c02125 fix: enemies now do not instantly enter combat after entering spawner ranger 2025-12-03 15:38:29 -05:00
Chris
cf70287797 maint: turned off the head moving for now 2025-12-02 17:57:18 -05:00
Chris
4bd307fba8 maint: renamed isPaused to fix overlap with nodecanvas variable 2025-12-02 17:57:00 -05:00
Chris
e49909580c changed: more tasks and states for changing pathfinding 2025-12-02 17:56:38 -05:00
Chris
30509b3714 added: new task script for allowing units to circle a target. Added to agent. 2025-12-02 17:36:55 -05:00
Chris
8919a69e50 change: changed how combat state mangement works by adding circling movement, target sight loss, and attach chance to combat subfsm 2025-12-02 17:16:30 -05:00
Chris
ed4298b1da feat: added the early parts of a basic attack system for enemies 2025-11-23 14:10:43 -05:00
Chris
8b9d2c21ce change: added more spawn zones 2025-11-22 14:16:11 -05:00
Chris
ea048be111 change: enemy combat/detection state now handled by the spawner 2025-11-22 14:15:58 -05:00
Chris
e7b72520c0 fix: readded playerfacingdirection temporarily to UnitFacingDirection.cs to resolve NodeCanvas issue with serialization on PlayerFSMs 2025-11-22 14:15:15 -05:00
Chris
4cf9054e88 change: more enemy state management changes 2025-11-11 12:34:27 -05:00
Chris
d75946de65 fix: changes to FSM state string to better account for local players 2025-11-10 16:32:23 -05:00
Chris
1a8c2fc601 change: removed unused animation componenet 2025-11-10 16:11:46 -05:00
Chris
0cb32eb498 added: indicator gameobject for noticing target 2025-11-10 16:08:28 -05:00
Chris
88803c9b86 added: enemy target acquisition, better pathfinding, moved combat reference to unit 2025-11-10 16:07:51 -05:00
Chris
68fe0e3413 maint: moved movement reference to unit 2025-11-10 16:07:12 -05:00
Chris
fa810bf970 added: enemy target acquisition, better pathfinding, moved combat reference to unit 2025-11-10 16:06:21 -05:00
Chris
a6182cd066 added: some headtracking 2025-11-10 15:18:48 -05:00
Chris
fb515ed1cf feat: enemies spawn in spawn zones and wander on a graph 2025-10-24 13:03:16 -04:00
Chris
f0a99253e5 maint: reimport of astar and aline, removal of asmdef temporarily 2025-10-24 10:56:28 -04:00
Chris
2203b0323b refactor: PlayerFacingDirection.cs renamed to UnitFacingDirection.cs 2025-10-23 21:56:58 -04:00
Chris
fd06b6c45b added: EnemyCombat.cs with reference to IUnitTargetProvider.UnitTarget 2025-10-23 21:55:44 -04:00
Chris
f1dee5c0e4 improv: UnitMovementHandler.cs uses IUnitDirectionProvider.cs for direction instead of input direction directly 2025-10-23 21:55:14 -04:00
Chris
958c57bdc0 improv: added IUnitDirectionProvider.cs for providing direction to UnitMovementHandler instead of PlayerControls 2025-10-23 21:49:14 -04:00
Chris
f4714db41b improv: UnitMovementHandler.cs now uses IUnitTargetProvider 2025-10-23 21:48:36 -04:00
Chris
129a5226c5 improv: added reference to movement for UnitComponent.cs 2025-10-23 21:48:05 -04:00
Chris
392f24a916 improv: added IUnitDirectionProvider.cs interface to replace directly accessing LockOnManager as part of generification of UnitMovementHandler.cs 2025-10-23 21:44:31 -04:00
Chris
0cb88b8fc6 fix: singleton operation for LockOnManager 2025-10-23 21:33:28 -04:00
Chris
2c88685990 maint: added astar to core asmdef 2025-10-23 20:52:56 -04:00
Chris
625db5cb74 Merge branch 'dev' into feature/player.basic-combat-pt2 2025-10-23 20:50:37 -04:00
Chris
5ce787251d maint: enemy asset folder restructuring, animations added, animators added, created enemy spawners 2025-10-23 20:37:35 -04:00
105 changed files with 4938 additions and 269 deletions

View File

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

View File

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

View File

@@ -0,0 +1,38 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f945e777233a59f4aba40aeca29093a6, type: 3}
m_Name: BasicEnemyFSM
m_EditorClassIdentifier: NodeCanvas::NodeCanvas.StateMachines.FSM
_serializedGraph: '{"type":"NodeCanvas.StateMachines.FSM","nodes":[{"_actionList":{"executionMode":1,"actions":[]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":522.1997,"y":608.5296},"$type":"NodeCanvas.StateMachines.ActionState","$id":"0"},{"_onEnterList":{"executionMode":1,"actions":[{"minValue":{"_value":2.0},"maxValue":{"_value":8.0},"floatVariable":{"_name":"_wanderTimer"},"$type":"NodeCanvas.Tasks.Actions.SetFloatRandom"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Wander
Stand-by","_position":{"x":83.0,"y":289.0},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"1"},{"_onEnterList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move
Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"},{"newSpeed":{},"absolute":{},"relativity":{},"$type":"Reset.Units.SetNewSpeed"},{"log":{"_value":"!?"},"secondsToRun":3.0,"verboseMode":2,"$type":"NodeCanvas.Tasks.Actions.DebugLogText"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Detect","_position":{"x":486.012,"y":-16.01074},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"2"},{"_actionList":{"executionMode":1,"actions":[{"log":{"_value":"Entering
Combat!"},"$type":"NodeCanvas.Tasks.Actions.DebugLogText"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Enter
Combat","_position":{"x":757.0,"y":-95.0},"$type":"NodeCanvas.StateMachines.ActionState","$id":"3"},{"_nestedFSM":{"_value":1},"_variablesMap":[],"_name":"In
Combat","_position":{"x":968.3454,"y":361.9611},"$type":"NodeCanvas.StateMachines.NestedFSMState","$id":"4"},{"_actionList":{"executionMode":1,"actions":[{"$type":"Reset.Units.SetWanderingPath"},{"minValue":{"_value":2.0},"maxValue":{"_value":7.0},"floatVariable":{"_name":"_newSpeed"},"$type":"NodeCanvas.Tasks.Actions.SetFloatRandom"},{"moveSpeed":{"label":"Move
Speed","changeValue":{"_value":1},"value":{"_name":"_newSpeed"},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"},{"newSpeed":{"_name":"_newSpeed"},"absolute":{},"relativity":{},"$type":"Reset.Units.SetNewSpeed"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Get
New Wandering Path","_position":{"x":-134.0,"y":112.0},"$type":"NodeCanvas.StateMachines.ActionState","$id":"5"}],"connections":[{"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"New
Target Detected"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_name":"_wanderTimer"},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"5"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Drop
Target"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Enter
Combat"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"3"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"4"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Drop
Target"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"4"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"5"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"}],"canvasGroups":[],"localBlackboard":{"_variables":{"testModelAnimator":{"_propertyPath":"Reset.Units.Enemy.testModelAnimator","_name":"testModelAnimator","_id":"2a36b4ca-c66b-4748-9a01-d054a460e3d3","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Animator,
UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}}'
_objectReferences:
- {fileID: 0}
- {fileID: 11400000, guid: 66d780be76d914c40afd1b3f00df719f, type: 2}
_graphSource:
_version: 3.31
_category:
_comments:
_translation: {x: 196, y: 321}
_zoomFactor: 1
_haltSerialization: 0
_externalSerializationFile: {fileID: 0}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: db5b23d2ee7fffd49a42d5a120c50e94
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

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

View File

@@ -0,0 +1,219 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &7595955851654214122
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7357363522575628893}
- component: {fileID: 3878897285376443062}
- component: {fileID: 3271418503839131048}
- component: {fileID: 4668686414587800026}
- component: {fileID: 6755264634504389795}
m_Layer: 0
m_Name: ExclamationMark
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7357363522575628893
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7595955851654214122}
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: 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: 1.22}
m_SizeDelta: {x: 0, y: 5}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!23 &3878897285376443062
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7595955851654214122}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
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: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &3271418503839131048
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7595955851654214122}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshPro
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: '!?'
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 11.8
m_fontSizeBase: 11.8
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 1
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: -14.26
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 0
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
_SortingLayer: 0
_SortingLayerID: 0
_SortingOrder: 0
m_hasFontAssetChanged: 0
m_renderer: {fileID: 3878897285376443062}
m_maskType: 0
--- !u!95 &4668686414587800026
Animator:
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7595955851654214122}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: b0d0b000545ecec4b9c657057baeb7e4, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!114 &6755264634504389795
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7595955851654214122}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.ContentSizeFitter
m_HorizontalFit: 2
m_VerticalFit: 0

View File

@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 3c37fe734c185fc48b50bb4fc19e7537
AssemblyDefinitionImporter:
guid: b6dcd93d4b0078d4c880649baec74f40
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:

View File

@@ -0,0 +1,101 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1102 &-6389478973801479273
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: IndicatorEnter
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 7711a26d68cffd248bcc3967c32653c0, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1107 &-5321450900668886657
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: -6389478973801479273}
m_Position: {x: 300, y: 120, z: 0}
- serializedVersion: 1
m_State: {fileID: 5234090493750268403}
m_Position: {x: 310, y: 10, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -6389478973801479273}
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: IndicatorAnimController
serializedVersion: 5
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: -5321450900668886657}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1102 &5234090493750268403
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: New State
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 0}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b0d0b000545ecec4b9c657057baeb7e4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,360 @@
%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: IndicatorEnter
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 0.3, y: 0.3, z: 1}
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.11666667
value: {x: 0.69593775, y: 1.16, z: 1}
inSlope: {x: -3.1875036, y: 4.199999, z: 0}
outSlope: {x: -3.1875036, y: 4.199999, 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.13333334
value: {x: 0.6, y: 1.3, z: 1}
inSlope: {x: -8.528585, y: 21.762453, z: 0}
outSlope: {x: -8.528585, y: 21.762453, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.41591632, y: 0.29147545, z: 0.33333334}
- serializedVersion: 3
time: 0.2
value: {x: 1, y: 1, z: 1}
inSlope: {x: -46.31948, y: 55.196556, z: 0}
outSlope: {x: -46.31948, y: 55.196556, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.37912178, y: 0.29860118, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
m_FloatCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0.2
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: m_AnchoredPosition.x
path:
classID: 224
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 3
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.11666667
value: 1.5
inSlope: -58.648453
outSlope: -58.648453
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.25934553
- serializedVersion: 3
time: 0.2
value: 1.22
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_AnchoredPosition.y
path:
classID: 224
script: {fileID: 0}
flags: 0
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: 3
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
- serializedVersion: 2
path: 0
attribute: 538195251
script: {fileID: 0}
typeID: 224
customType: 28
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
- serializedVersion: 2
path: 0
attribute: 1460864421
script: {fileID: 0}
typeID: 224
customType: 28
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.2
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.2
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: m_AnchoredPosition.x
path:
classID: 224
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 3
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.11666667
value: 1.5
inSlope: -58.648453
outSlope: -58.648453
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.25934553
- serializedVersion: 3
time: 0.2
value: 1.22
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_AnchoredPosition.y
path:
classID: 224
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.3
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.13333334
value: 0.6
inSlope: -8.528585
outSlope: -8.528585
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.41591632
- serializedVersion: 3
time: 0.2
value: 1
inSlope: -46.31948
outSlope: -46.31948
tangentMode: 0
weightedMode: 0
inWeight: 0.37912178
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.x
path:
classID: 224
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.3
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.11666667
value: 1.16
inSlope: 4.199999
outSlope: 4.199999
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.13333334
value: 1.3
inSlope: 21.762453
outSlope: 21.762453
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.29147545
- serializedVersion: 3
time: 0.2
value: 1
inSlope: 55.196556
outSlope: 55.196556
tangentMode: 0
weightedMode: 0
inWeight: 0.29860118
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.y
path:
classID: 224
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.2
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.z
path:
classID: 224
script: {fileID: 0}
flags: 0
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7711a26d68cffd248bcc3967c32653c0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,43 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1107 &-6638317236673258601
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates: []
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 0}
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TestMonsterObjectAnimController 1
serializedVersion: 5
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: -6638317236673258601}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}

View File

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

View File

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

View File

@@ -0,0 +1,29 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a686a47eee2fa44cb0a34b5d86e4d5e, type: 3}
m_Name: TestEnemySimpleSwipe
m_EditorClassIdentifier: NodeCanvas::NodeCanvas.BehaviourTrees.BehaviourTree
_serializedGraph: '{"type":"NodeCanvas.BehaviourTrees.BehaviourTree","nodes":[{"_position":{"x":670.0,"y":446.0},"$type":"NodeCanvas.BehaviourTrees.Sequencer","$id":"0"},{"_action":{"actions":[{"saveAs":{"_name":"_self"},"$type":"NodeCanvas.Tasks.Actions.GetSelf"},{"damage":{"_value":10.0},"source":{"_name":"_self"},"outputDamageSource":{"_name":"attackDamageSource","_targetVariableID":"c76cbb79-02a3-44dc-aea2-bae05b9700f1"},"$type":"Reset.Core.CreateDamageSource"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":240.9983,"y":637.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"1"},{"_action":{"actions":[{"parameter":{"_value":"Attack"},"parameterHashID":{},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"},{"parameter":{"_value":"Attack"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"5c66985d-3dce-49ff-a5eb-fb807771b577"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":448.0,"y":643.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"2"},{"repeatTimes":{"_value":4},"_position":{"x":773.3254,"y":607.6212},"$type":"NodeCanvas.BehaviourTrees.Repeater","$id":"3"},{"_position":{"x":807.3505,"y":698.1679},"$type":"NodeCanvas.BehaviourTrees.Sequencer","$id":"4"},{"conditionFailReturn":1,"_condition":{"castType":{"_value":1},"length":{"_value":2.0},"direction":{"_value":{"z":1.0}},"offset":{"_value":{"y":1.0,"z":-0.25}},"layerMask":{"_value":{"value":256}},"width":{},"size":{"_value":{"x":2.0,"y":2.5,"z":4.0}},"rotation":{},"drawGizmos":true,"outputHit":{"_name":"_hit"},"outputHitArray":{"_name":"hitTargets","_targetVariableID":"399e9260-1d4f-4ce4-af7d-6790ae65a5aa"},"$type":"Reset.CheckGenericObserver"},"_position":{"x":670.9581,"y":815.2833},"$type":"NodeCanvas.BehaviourTrees.ConditionalEvaluator","$id":"5"},{"_action":{"actions":[{"targets":{"_name":"hitTargets","_targetVariableID":"399e9260-1d4f-4ce4-af7d-6790ae65a5aa"},"damageSource":{"_name":"attackDamageSource","_targetVariableID":"c76cbb79-02a3-44dc-aea2-bae05b9700f1"},"$type":"Reset.Core.DealDamage"},{"unitsToDrag":{"_name":"hitTargets","_targetVariableID":"399e9260-1d4f-4ce4-af7d-6790ae65a5aa"},"dragTime":{"_value":0.3},"$type":"Reset.Units.DragUnits"},{"targetList":{"_name":"hitTargets","_targetVariableID":"399e9260-1d4f-4ce4-af7d-6790ae65a5aa"},"$type":"NodeCanvas.Tasks.Actions.ClearList"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":698.8863,"y":917.2681},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"6"},{"_action":{"waitTime":{"_value":0.45},"$type":"NodeCanvas.Tasks.Actions.Wait"},"_position":{"x":918.5366,"y":807.3505},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"7"}],"connections":[{"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"3"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"4"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"4"},"_targetNode":{"$ref":"5"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"4"},"_targetNode":{"$ref":"7"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"5"},"_targetNode":{"$ref":"6"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"}],"canvasGroups":[],"localBlackboard":{"_variables":{"hitTargets":{"_value":[],"_name":"hitTargets","_id":"399e9260-1d4f-4ce4-af7d-6790ae65a5aa","$type":"NodeCanvas.Framework.Variable`1[[System.Collections.Generic.List`1[[UnityEngine.Collider,
UnityEngine.PhysicsModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]],
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"attackDamageSource":{"_value":{"damageDealt":10.0},"_name":"attackDamageSource","_id":"c76cbb79-02a3-44dc-aea2-bae05b9700f1","$type":"NodeCanvas.Framework.Variable`1[[Reset.Core.DamageSource,
Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"draggedEnemies":{"_value":[],"_name":"draggedEnemies","_id":"23a630b7-8a16-4b7a-9425-b908ce8636e1","$type":"NodeCanvas.Framework.Variable`1[[System.Collections.Generic.List`1[[UnityEngine.Collider,
UnityEngine.PhysicsModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]],
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"}}},"derivedData":{"repeat":true,"$type":"NodeCanvas.BehaviourTrees.BehaviourTree+DerivedSerializationData"}}'
_objectReferences: []
_graphSource:
_version: 3.31
_category:
_comments:
_translation: {x: 241, y: -169}
_zoomFactor: 1
_haltSerialization: 0
_externalSerializationFile: {fileID: 0}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ef911f8ce63263d4cafc6ca3a8b30a1f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,35 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f945e777233a59f4aba40aeca29093a6, type: 3}
m_Name: TestEnemyCombatFSM
m_EditorClassIdentifier: NodeCanvas::NodeCanvas.StateMachines.FSM
_serializedGraph: '{"type":"NodeCanvas.StateMachines.FSM","nodes":[{"_actionList":{"executionMode":1,"actions":[{"pauseIntervalRange":{"_value":{"x":1.0,"y":3.0}},"unpauseIntervalRange":{"_value":{"x":1.0,"y":3.0}},"speedRange":{"_value":{"x":1.0,"y":3.0}},"speedChangeIntervalRange":{"_value":{"x":1.0,"y":3.0}},"speedSmoothing":{"_value":0.5},"strafeDirectionChangeInterval":{"_value":{"x":1.0,"y":3.0}},"directionSmoothing":{"_value":0.5},"$type":"Reset.Units.CircleTarget"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Circling
Movement","_position":{"x":589.0,"y":144.0},"$type":"NodeCanvas.StateMachines.ActionState","$id":"0"},{"_name":"Try
to Attack","_position":{"x":805.0,"y":384.0},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"1"},{"_nestedBT":{"_value":1},"executionMode":0,"_position":{"x":1006.0,"y":208.0},"$type":"NodeCanvas.StateMachines.NestedBTState","$id":"2"},{"_onEnterList":{"executionMode":1,"actions":[{"value":{"_value":true},"$type":"Reset.Units.TogglePathfinding"},{"target":{"_name":"target","_targetVariableID":"4a2889be-2a8a-4a68-ab49-fa456e2c9a19"},"timeToRepath":{},"$type":"Reset.Units.SetNewPathfindingPath"}]},"_onUpdateList":{"executionMode":1,"actions":[{"target":{"_name":"target","_targetVariableID":"4a2889be-2a8a-4a68-ab49-fa456e2c9a19"},"useTimer":true,"timeToRepath":{},"$type":"Reset.Units.SetNewPathfindingPath"}]},"_onExitList":{"executionMode":1,"actions":[{"value":{},"$type":"Reset.Units.TogglePathfinding"}]},"foldExit":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Walk
To Target","_position":{"x":306.0,"y":-148.0},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"3"},{"_actionList":{"executionMode":1,"actions":[]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Target
Too Close","_position":{"x":318.0,"y":369.0},"$type":"NodeCanvas.StateMachines.ActionState","$id":"4"},{"_conditionList":{"conditions":[]},"_actionList":{"executionMode":1,"actions":[{"facingDirection":{"label":"Facing
Direction","value":{"_value":{"$content":0,"$type":"Reset.Units.UnitFacingDirection"}},"changeValue":{"_value":1}},"rotationSpeed":{"label":"Rotation
Speed","changeValue":{"_value":1},"value":{"_value":2.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"value":{},"$type":"Reset.Units.TogglePathfinding"},{"moveSpeed":{"label":"Move
Speed","changeValue":{"_value":1},"value":{"_value":3.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"}]},"_position":{"x":759.0,"y":-54.0},"$type":"NodeCanvas.StateMachines.OnFSMEnter"}],"connections":[{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"target":{"_name":"target","_targetVariableID":"4a2889be-2a8a-4a68-ab49-fa456e2c9a19"},"maxDistance":{"_value":15.0},"layerMask":{"_value":{"value":255}},"awarnessDistance":{},"viewAngle":{"_value":90.0},"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CanSeeTarget"},{"checkTarget":{"_name":"target","_targetVariableID":"4a2889be-2a8a-4a68-ab49-fa456e2c9a19"},"checkType":1,"distance":{"_value":10.0},"$type":"NodeCanvas.Tasks.Conditions.CheckDistanceToGameObject"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"3"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkTarget":{"_name":"target","_targetVariableID":"4a2889be-2a8a-4a68-ab49-fa456e2c9a19"},"distance":{"_value":2.0},"$type":"NodeCanvas.Tasks.Conditions.CheckDistanceToGameObject"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"4"},"_isDisabled":true,"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"probability":{"_value":1.0},"maxValue":{"_value":10.0},"$type":"NodeCanvas.Tasks.Conditions.Probability"},"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"target":{"_name":"target","_targetVariableID":"4a2889be-2a8a-4a68-ab49-fa456e2c9a19"},"maxDistance":{"_value":15.0},"layerMask":{"_value":{"value":255}},"awarnessDistance":{},"viewAngle":{"_value":90.0},"$type":"NodeCanvas.Tasks.Conditions.CanSeeTarget"},{"checkTarget":{"_name":"target","_targetVariableID":"4a2889be-2a8a-4a68-ab49-fa456e2c9a19"},"distance":{"_value":10.0},"$type":"NodeCanvas.Tasks.Conditions.CheckDistanceToGameObject"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"}],"canvasGroups":[],"localBlackboard":{"_variables":{"testModelAnimator":{"_name":"testModelAnimator","_id":"7222df40-dd9e-41ce-a85a-a5221009180e","_isPublic":true,"$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Animator,
UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"bodyAnimator":{"_name":"bodyAnimator","_id":"00b78a8a-fb9e-44d0-b9a8-81c6992abd41","_isPublic":true,"$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Animator,
UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}}'
_objectReferences:
- {fileID: 0}
- {fileID: 11400000, guid: ef911f8ce63263d4cafc6ca3a8b30a1f, type: 2}
_graphSource:
_version: 3.31
_category:
_comments:
_translation: {x: 78, y: 337}
_zoomFactor: 1
_haltSerialization: 0
_externalSerializationFile: {fileID: 0}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 66d780be76d914c40afd1b3f00df719f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,267 @@
%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: Attack2
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: -10.72, y: -0.0000009536743, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 18.418364}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.46313047}
- serializedVersion: 3
time: 0.41666666
value: {x: -10.72, y: -0.0000009536743, z: 3}
inSlope: {x: 0, y: 0, z: 6.4490395}
outSlope: {x: 0, y: 0, z: 19.52712}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.09180558}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.11436028}
- serializedVersion: 3
time: 0.78333336
value: {x: -10.72, y: -0.0000009536743, z: 6.113785}
inSlope: {x: 0, y: 0, z: 4.9565926}
outSlope: {x: 0, y: 0, z: 15.10877}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.27278635}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.09727167}
- serializedVersion: 3
time: 1
value: {x: -10.72, y: -0.0000009536743, z: 8.219321}
inSlope: {x: 0, y: 0, z: 5.645157}
outSlope: {x: 0, y: 0, z: 5.645157}
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: 1.1166667
value: {x: -10.72, y: -0.0000009536743, z: 8.7494755}
inSlope: {x: 0, y: 0, z: 3.825402}
outSlope: {x: 0, y: 0, z: 3.825402}
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: 1.1833333
value: {x: -10.72, y: -0.0000009536743, z: 9}
inSlope: {x: 0, y: 0, z: 3.81515}
outSlope: {x: 0, y: 0, z: 14.673989}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.22113527}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.103907034}
- serializedVersion: 3
time: 1.5666667
value: {x: -10.72, y: -0.0000009536743, z: 12}
inSlope: {x: 0, y: 0, z: 6.6416936}
outSlope: {x: 0, y: 0, z: 13.543249}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.13644898}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.0939191}
- serializedVersion: 3
time: 1.9833333
value: {x: -10.72, y: -0.0000009536743, z: 15.442279}
inSlope: {x: 0, y: 0, z: 3.9477823}
outSlope: {x: 0, y: 0, z: 3.9477823}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.094107635}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
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: 1
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1.9833333
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: -10.72
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1
value: -10.72
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.x
path:
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: -0.0000009536743
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.1166667
value: -0.0000009536743
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.y
path:
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 18.418364
tangentMode: 1
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.46313047
- serializedVersion: 3
time: 0.41666666
value: 3
inSlope: 6.4490395
outSlope: 19.52712
tangentMode: 1
weightedMode: 0
inWeight: 0.09180558
outWeight: 0.11436028
- serializedVersion: 3
time: 0.78333336
value: 6.113785
inSlope: 4.9565926
outSlope: 15.10877
tangentMode: 1
weightedMode: 0
inWeight: 0.27278635
outWeight: 0.09727167
- serializedVersion: 3
time: 1.1833333
value: 9
inSlope: 3.81515
outSlope: 14.673989
tangentMode: 1
weightedMode: 0
inWeight: 0.22113527
outWeight: 0.103907034
- serializedVersion: 3
time: 1.5666667
value: 12
inSlope: 6.6416936
outSlope: 13.543249
tangentMode: 1
weightedMode: 0
inWeight: 0.13644898
outWeight: 0.0939191
- serializedVersion: 3
time: 1.9833333
value: 15.442279
inSlope: 3.9477823
outSlope: 3.9477823
tangentMode: 0
weightedMode: 0
inWeight: 0.094107635
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.z
path:
classID: 4
script: {fileID: 0}
flags: 0
m_EulerEditorCurves: []
m_HasGenericRootTransform: 1
m_HasMotionFloatCurves: 0
m_Events: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8dc4712be321ea2438dcd70a1af48da4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -26,31 +26,6 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &-8534861239787951524
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: Hit
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -7739802095274071406}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.02
m_TransitionOffset: 0.014190764
m_ExitTime: 0.0012524996
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 2
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &-7838002281315577225
AnimatorState:
serializedVersion: 6
@@ -88,7 +63,7 @@ AnimatorState:
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 6289592108717075239}
- {fileID: -2896483219205038615}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -115,62 +90,69 @@ AnimatorStateMachine:
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: -8894196964764803202}
m_Position: {x: 290, y: 400, z: 0}
m_Position: {x: 290, y: 540, z: 0}
- serializedVersion: 1
m_State: {fileID: -762329493899166440}
m_Position: {x: 10, y: 400, z: 0}
- serializedVersion: 1
m_State: {fileID: -6331071955438319008}
m_Position: {x: 310, y: 90, z: 0}
m_Position: {x: 10, y: 540, z: 0}
- serializedVersion: 1
m_State: {fileID: -3708334509902770229}
m_Position: {x: 560, y: 410, z: 0}
m_Position: {x: 560, y: 550, z: 0}
- serializedVersion: 1
m_State: {fileID: -853705697146182325}
m_Position: {x: 840, y: 410, z: 0}
m_Position: {x: 840, y: 550, z: 0}
- serializedVersion: 1
m_State: {fileID: 3379675004845603719}
m_Position: {x: 300, y: 560, z: 0}
m_Position: {x: 300, y: 700, z: 0}
- serializedVersion: 1
m_State: {fileID: 2846885752072739483}
m_Position: {x: 20, y: 560, z: 0}
m_Position: {x: 20, y: 700, z: 0}
- serializedVersion: 1
m_State: {fileID: 216270272570043207}
m_Position: {x: 580, y: 570, z: 0}
m_Position: {x: 580, y: 710, z: 0}
- serializedVersion: 1
m_State: {fileID: -7838002281315577225}
m_Position: {x: 860, y: 570, z: 0}
- serializedVersion: 1
m_State: {fileID: 2674828334277978819}
m_Position: {x: -46, y: 308.5, z: 0}
m_Position: {x: 860, y: 710, z: 0}
- serializedVersion: 1
m_State: {fileID: -7739802095274071406}
m_Position: {x: 640, y: 240, z: 0}
- serializedVersion: 1
m_State: {fileID: -2129754743114529880}
m_Position: {x: 310, y: 0, z: 0}
m_Position: {x: 310, y: 110, z: 0}
- serializedVersion: 1
m_State: {fileID: 3681834314654821130}
m_Position: {x: 640, y: -10, z: 0}
- serializedVersion: 1
m_State: {fileID: 5478294846319106365}
m_Position: {x: 330, y: -120, z: 0}
- serializedVersion: 1
m_State: {fileID: -6278834590196608118}
m_Position: {x: 230, y: 260, z: 0}
- serializedVersion: 1
m_State: {fileID: 6332575986919065934}
m_Position: {x: -68.95941, y: 277.56348, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_AnyStateTransitions:
- {fileID: 6050553813420038917}
m_EntryTransitions:
- {fileID: -6104077598451673648}
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_AnyStatePosition: {x: 250, y: 370, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 940, y: 40, z: 0}
m_ExitPosition: {x: 1000, y: 170, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -6331071955438319008}
--- !u!1102 &-6331071955438319008
m_DefaultState: {fileID: -2129754743114529880}
--- !u!1102 &-6278834590196608118
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: NewIdle-40
m_Speed: 0.2
m_Name: Die-60
m_Speed: 0.5
m_CycleOffset: 0
m_Transitions:
- {fileID: -8534861239787951524}
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -180,12 +162,26 @@ AnimatorState:
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: -747295086443886786, guid: 64c95eab532c57d4eb98569c66e7455a, type: 3}
m_Motion: {fileID: 8915747620852973273, guid: 64c95eab532c57d4eb98569c66e7455a, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1109 &-6104077598451673648
AnimatorTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -2129754743114529880}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 1
--- !u!1101 &-4872988204597852695
AnimatorStateTransition:
m_ObjectHideFlags: 1
@@ -274,6 +270,50 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &-2896483219205038615
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -2129754743114529880}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.059113443
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &-2879270276895609086
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -2129754743114529880}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.8846154
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &-2129754743114529880
AnimatorState:
serializedVersion: 6
@@ -284,7 +324,9 @@ AnimatorState:
m_Name: Blend Tree 0
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_Transitions:
- {fileID: -1762903771197777033}
- {fileID: 5120510497768700528}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -300,6 +342,31 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &-1762903771197777033
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: Hit
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -7739802095274071406}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.24999994
m_TransitionOffset: 0.14040057
m_ExitTime: 0.030737108
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &-853705697146182325
AnimatorState:
serializedVersion: 6
@@ -353,6 +420,28 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &-483324057439386864
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1413696981156420822}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.2500002
m_TransitionOffset: 0
m_ExitTime: 0.0007289399
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
@@ -374,6 +463,12 @@ AnimatorController:
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
- m_Name: Attack
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
@@ -387,6 +482,18 @@ AnimatorController:
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
- serializedVersion: 5
m_Name: New Layer
m_StateMachine: {fileID: 6830853216154444894}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 1
m_SyncedLayerIndex: -1
m_DefaultWeight: 1
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1102 &216270272570043207
AnimatorState:
serializedVersion: 6
@@ -414,6 +521,55 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &1413696981156420822
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: New State
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 1595209839139272091}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 0}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &1595209839139272091
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 8637122628281323528}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &1884416669882918329
AnimatorStateTransition:
m_ObjectHideFlags: 1
@@ -436,32 +592,6 @@ AnimatorStateTransition:
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &2674828334277978819
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Blend Tree
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 9024195164895604365}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &2846885752072739483
AnimatorState:
serializedVersion: 6
@@ -537,6 +667,33 @@ AnimatorStateTransition:
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &3681834314654821130
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Attack2-130
m_Speed: 1.2
m_CycleOffset: 0
m_Transitions:
- {fileID: -2879270276895609086}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: -6061412660744093124, guid: 64c95eab532c57d4eb98569c66e7455a, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &4299374430097347064
AnimatorStateTransition:
m_ObjectHideFlags: 1
@@ -559,7 +716,58 @@ AnimatorStateTransition:
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &6289592108717075239
--- !u!1101 &5120510497768700528
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: Attack
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 3681834314654821130}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0.5909091
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &5478294846319106365
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Attack-45
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 6410907019033591260, guid: 64c95eab532c57d4eb98569c66e7455a, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &6050553813420038917
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
@@ -568,47 +776,94 @@ AnimatorStateTransition:
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -6331071955438319008}
m_DstState: {fileID: -6278834590196608118}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.47
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.25000006
m_HasExitTime: 1
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!206 &9024195164895604365
BlendTree:
--- !u!1102 &6332575986919065934
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Blend Tree
m_Childs:
- serializedVersion: 2
m_Motion: {fileID: -1304387373167265313, guid: 64c95eab532c57d4eb98569c66e7455a, type: 3}
m_Threshold: 0
m_Position: {x: 0, y: 0}
m_TimeScale: 1
m_Name: New State
m_Speed: 1
m_CycleOffset: 0
m_DirectBlendParameter: Blend
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
- serializedVersion: 2
m_Motion: {fileID: -3100369314251171874, guid: 64c95eab532c57d4eb98569c66e7455a, type: 3}
m_Threshold: 1
m_Position: {x: 0, y: 0}
m_TimeScale: 1
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 0}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1107 &6830853216154444894
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: New Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 8637122628281323528}
m_Position: {x: 500, y: 90, z: 0}
- serializedVersion: 1
m_State: {fileID: 1413696981156420822}
m_Position: {x: 376.62445, y: 237.36044, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 1413696981156420822}
--- !u!1102 &8637122628281323528
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Attack2Telegraph-60
m_Speed: 1
m_CycleOffset: 0
m_DirectBlendParameter: Blend
m_Transitions:
- {fileID: -483324057439386864}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_BlendParameter: Blend
m_BlendParameterY: Blend
m_MinThreshold: 0
m_MaxThreshold: 1
m_UseAutomaticThresholds: 1
m_NormalizedBlendValues: 0
m_BlendType: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: -2778899801529699949, guid: 64c95eab532c57d4eb98569c66e7455a, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:

View File

@@ -0,0 +1,156 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1101 &-8701926306649203889
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -7846314796881791032}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.8739496
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &-7846314796881791032
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: New State
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: -1439225884702868440}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 0}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1107 &-6638317236673258601
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 6611013841474026752}
m_Position: {x: 340, y: 190, z: 0}
- serializedVersion: 1
m_State: {fileID: -7846314796881791032}
m_Position: {x: 280, y: 40, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -7846314796881791032}
--- !u!1101 &-1439225884702868440
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: Attack
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 6611013841474026752}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 4
m_OrderedInterruption: 0
m_CanTransitionToSelf: 1
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TestMonsterObjectAnimController 1
serializedVersion: 5
m_AnimatorParameters:
- m_Name: Attack
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: -6638317236673258601}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1102 &6611013841474026752
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Attack2
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: -8701926306649203889}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 8dc4712be321ea2438dcd70a1af48da4, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:

View File

@@ -361,8 +361,8 @@ ModelImporter:
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 0
loopBlend: 0
loopTime: 1
loopBlend: 1
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
@@ -407,7 +407,7 @@ ModelImporter:
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
isReadable: 0
isReadable: 1
meshes:
lODScreenPercentages: []
globalScale: 1

View File

@@ -12,6 +12,14 @@ GameObject:
- component: {fileID: 2562293259993124465}
- component: {fileID: 8206397622550667234}
- component: {fileID: 5956987736849929195}
- component: {fileID: 4447190118606394553}
- component: {fileID: 3375213058463339329}
- component: {fileID: 6881462958115636691}
- component: {fileID: 5075083518210584453}
- component: {fileID: 6620953456884791151}
- component: {fileID: 6778397863327314458}
- component: {fileID: 4799508192264281601}
- component: {fileID: -3090026840404744490}
m_Layer: 7
m_Name: TestMonster
m_TagString: Untagged
@@ -47,7 +55,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 972023326
GlobalObjectIdHash: 1434729210
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
@@ -73,6 +81,77 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Core::Reset.Units.Enemy
ShowTopMostFoldoutHeaderGroup: 1
graphStateAsString:
m_InternalValue:
utf8LengthInBytes: 0
bytes:
offset0000:
byte0000: 0
byte0001: 0
byte0002: 0
byte0003: 0
byte0004: 0
byte0005: 0
byte0006: 0
byte0007: 0
byte0008: 0
byte0009: 0
byte0010: 0
byte0011: 0
byte0012: 0
byte0013: 0
byte0014: 0
byte0015: 0
offset0016:
byte0000: 0
byte0001: 0
byte0002: 0
byte0003: 0
byte0004: 0
byte0005: 0
byte0006: 0
byte0007: 0
byte0008: 0
byte0009: 0
byte0010: 0
byte0011: 0
byte0012: 0
byte0013: 0
byte0014: 0
byte0015: 0
offset0032:
byte0000: 0
byte0001: 0
byte0002: 0
byte0003: 0
byte0004: 0
byte0005: 0
byte0006: 0
byte0007: 0
byte0008: 0
byte0009: 0
byte0010: 0
byte0011: 0
byte0012: 0
byte0013: 0
byte0014: 0
byte0015: 0
byte0048: 0
byte0049: 0
byte0050: 0
byte0051: 0
byte0052: 0
byte0053: 0
byte0054: 0
byte0055: 0
byte0056: 0
byte0057: 0
byte0058: 0
byte0059: 0
byte0060: 0
byte0061: 0
relatedSpawner: {fileID: 0}
testModelAnimator: {fileID: 8332864352631384059}
--- !u!114 &5956987736849929195
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -85,14 +164,15 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: b3b4e13d59527d1429a62dde97c6a001, type: 3}
m_Name:
m_EditorClassIdentifier: Core::Reset.Units.UnitMovementHandler
ShowTopMostFoldoutHeaderGroup: 1
data:
directionChangingSoftness:
targetValue: 1
currentValue: 1
targetValue: 5
currentValue: 5
targetSmoothing: 1
targetEasing: 2
currentSmoothing: 1
defaultValue: 1
defaultValue: 5
defaultSmoothing: 1
defaultEasing: 2
directionSpinningHardness:
@@ -123,30 +203,30 @@ MonoBehaviour:
defaultSmoothing: 1
defaultEasing: 2
acceleration:
targetValue: 5
currentValue: 5
targetValue: 20
currentValue: 20
targetSmoothing: 1
targetEasing: 2
currentSmoothing: 1
defaultValue: 5
defaultValue: 20
defaultSmoothing: 1
defaultEasing: 2
deacceleration:
targetValue: 5
currentValue: 5
targetValue: 10
currentValue: 10
targetSmoothing: 1
targetEasing: 2
currentSmoothing: 1
defaultValue: 5
defaultValue: 10
defaultSmoothing: 1
defaultEasing: 2
moveSpeed:
targetValue: 15
currentValue: 15
targetValue: 5
currentValue: 5
targetSmoothing: 10
targetEasing: 2
currentSmoothing: 10
defaultValue: 15
defaultValue: 5
defaultSmoothing: 10
defaultEasing: 2
gravityPower:
@@ -204,6 +284,231 @@ MonoBehaviour:
defaultSmoothing: 1
defaultEasing: 2
specifiedRotation: {x: 0, y: 0, z: 0}
--- !u!95 &4447190118606394553
Animator:
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9098724353270996650}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: 4f5596a1d63365d4cba1b75587fe5939, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 1
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!114 &3375213058463339329
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9098724353270996650}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4a7dbb6bbdf4ffb46ab7dd87ba8191e7, type: 3}
m_Name:
m_EditorClassIdentifier: NodeCanvas::NodeCanvas.StateMachines.FSMOwner
_serializedExposedParameters: []
_boundGraphSerialization:
_boundGraphObjectReferences: []
_boundGraphSource:
_version: 0
_category:
_comments:
_translation: {x: 0, y: 0}
_zoomFactor: 1
_firstActivation: 0
_enableAction: 0
_disableAction: 0
_lockBoundGraphPrefabOverrides: 1
_preInitializeSubGraphs: 0
_updateMode: 0
_graph: {fileID: 11400000, guid: db5b23d2ee7fffd49a42d5a120c50e94, type: 2}
_blackboard: {fileID: 6881462958115636691}
--- !u!114 &6881462958115636691
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9098724353270996650}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b98a6db0b653f764eac834f85857a9dd, type: 3}
m_Name:
m_EditorClassIdentifier: ParadoxNotion::NodeCanvas.Framework.Blackboard
_parentBlackboard: {fileID: 0}
_serializedBlackboard: '{"_variables":{"bodyAnimator":{"_value":1,"_name":"bodyAnimator","_id":"596577fd-def2-446f-855c-d366b7f6cc67","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Animator,
UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"modelAnimator":{"_value":2,"_name":"modelAnimator","_id":"5c66985d-3dce-49ff-a5eb-fb807771b577","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Animator,
UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"target":{"_propertyPath":"Reset.Units.EnemyCombat.target","_name":"target","_id":"4a2889be-2a8a-4a68-ab49-fa456e2c9a19","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.GameObject,
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}'
_objectReferences:
- {fileID: 0}
- {fileID: 4447190118606394553}
- {fileID: 8332864352631384059}
_serializedVariables:
- _json: '{"_value":1,"_name":"bodyAnimator","_id":"596577fd-def2-446f-855c-d366b7f6cc67","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Animator,
UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}'
_references:
- {fileID: 0}
- {fileID: 4447190118606394553}
- _json: '{"_value":1,"_name":"modelAnimator","_id":"5c66985d-3dce-49ff-a5eb-fb807771b577","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Animator,
UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}'
_references:
- {fileID: 0}
- {fileID: 8332864352631384059}
- _json: '{"_propertyPath":"Reset.Units.EnemyCombat.target","_name":"target","_id":"4a2889be-2a8a-4a68-ab49-fa456e2c9a19","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.GameObject,
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}'
_references: []
--- !u!114 &5075083518210584453
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9098724353270996650}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 373b52eb9bf8c40f785bb6947a1aee66, type: 3}
m_Name:
m_EditorClassIdentifier: AstarPathfindingProject::Pathfinding.Seeker
version: 1073741824
drawGizmos: 1
detailedGizmos: 0
startEndModifier:
addPoints: 0
exactStartPoint: 3
exactEndPoint: 3
useRaycasting: 0
mask:
serializedVersion: 2
m_Bits: 4294967295
useGraphRaycasting: 0
traversableTags: -1
tagCostMultipliers:
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
tagEntryCosts: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
graphMask:
value: -1
--- !u!143 &6620953456884791151
CharacterController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9098724353270996650}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Height: 2
m_Radius: 0.5
m_SlopeLimit: 45
m_StepOffset: 0.3
m_SkinWidth: 0.08
m_MinMoveDistance: 0.001
m_Center: {x: 0, y: 1, z: 0}
--- !u!114 &6778397863327314458
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9098724353270996650}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cb6a34d769a1e4ac7b0b30e433aa443c, type: 3}
m_Name:
m_EditorClassIdentifier: AstarPathfindingProject::Pathfinding.SimpleSmoothModifier
version: 1073741824
smoothType: 0
subdivisions: 2
iterations: 2
strength: 0.5
uniformLength: 1
maxSegmentLength: 2
bezierTangentLength: 0.4
offset: 0.2
factor: 0.1
--- !u!114 &4799508192264281601
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9098724353270996650}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1a72dabd280fe71488a78596bd852afc, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Reset.Units.UnitPathfinding
ShowTopMostFoldoutHeaderGroup: 1
pathfindingEnabled: 0
seeker: {fileID: 0}
nextWaypointDistance: 3
reachedEndOfPath: 0
--- !u!114 &-3090026840404744490
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9098724353270996650}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f1528d25d3d94df59161993cb28bcb17, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Reset.Units.EnemyCombat
ShowTopMostFoldoutHeaderGroup: 1
target: {fileID: 0}
--- !u!1001 &8807019661255186479
PrefabInstance:
m_ObjectHideFlags: 0
@@ -226,7 +531,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 64c95eab532c57d4eb98569c66e7455a, type: 3}
propertyPath: m_LocalPosition.x
value: 0.6125603
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 64c95eab532c57d4eb98569c66e7455a, type: 3}
propertyPath: m_LocalPosition.y
@@ -234,7 +539,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 64c95eab532c57d4eb98569c66e7455a, type: 3}
propertyPath: m_LocalPosition.z
value: 0.57115173
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 64c95eab532c57d4eb98569c66e7455a, type: 3}
propertyPath: m_LocalRotation.w
@@ -443,8 +748,38 @@ PrefabInstance:
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 64c95eab532c57d4eb98569c66e7455a, type: 3}
insertIndex: -1
addedObject: {fileID: 8332864352631384059}
m_SourcePrefab: {fileID: 100100000, guid: 64c95eab532c57d4eb98569c66e7455a, type: 3}
--- !u!1 &8573086128984434046 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 64c95eab532c57d4eb98569c66e7455a, type: 3}
m_PrefabInstance: {fileID: 8807019661255186479}
m_PrefabAsset: {fileID: 0}
--- !u!95 &8332864352631384059
Animator:
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8573086128984434046}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: 4b4d74abfd4433841a36537d7aa224db, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!4 &9057416996320346052 stripped
Transform:
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 64c95eab532c57d4eb98569c66e7455a, type: 3}

View File

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

Binary file not shown.

View File

@@ -0,0 +1,110 @@
fileFormatVersion: 2
guid: 5e444bf9ff5307044a15887a9378ff9e
ModelImporter:
serializedVersion: 24200
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importPhysicalCameras: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
generateMeshLods: 0
meshLodGenerationFlags: 0
maximumMeshLod: -1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
strictVertexDataChecks: 0
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
importBlendShapeDeformPercent: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@@ -15,13 +15,13 @@ MonoBehaviour:
_serializedGraph: '{"type":"NodeCanvas.BehaviourTrees.BehaviourTree","nodes":[{"_action":{"actions":[{"facingDirection":{"label":"Facing
Direction","value":{"_value":{"$content":3,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{"_value":1}},"rotationSpeed":{"label":"Rotation
Speed","changeValue":{"_value":1},"value":{"_value":0.1},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"moveSpeed":{"label":"Move
Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{"_value":1},"_smoothing":{"_value":25.0},"_changeEasing":{},"_easing":{}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"},{"parameter":{"_value":"GoHardActivate"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"7496ae67-b0a2-4894-a203-35e011767a3a"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"},{"waitTime":{"_value":0.4},"$type":"NodeCanvas.Tasks.Actions.Wait"},{"boolVariable":{"_name":"inGoHard","_targetVariableID":"dc9f60c8-856e-4970-bf11-25745eff1201"},"$type":"NodeCanvas.Tasks.Actions.SetBoolean"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":496.973,"y":474.9865},"$type":"NodeCanvas.BehaviourTrees.ActionNode"}],"connections":[],"canvasGroups":[],"localBlackboard":{"_variables":{}},"derivedData":{"repeat":true,"$type":"NodeCanvas.BehaviourTrees.BehaviourTree+DerivedSerializationData"}}'
Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{"_value":1},"_smoothing":{"_value":25.0},"_changeEasing":{},"_easing":{}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"},{"parameter":{"_value":"GoHardActivate"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"7496ae67-b0a2-4894-a203-35e011767a3a"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"},{"waitTime":{"_value":0.4},"$type":"NodeCanvas.Tasks.Actions.Wait"},{"boolVariable":{"_name":"inGoHard","_targetVariableID":"dc9f60c8-856e-4970-bf11-25745eff1201"},"$type":"NodeCanvas.Tasks.Actions.SetBoolean"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":435.1477,"y":491.203},"$type":"NodeCanvas.BehaviourTrees.ActionNode"}],"connections":[],"canvasGroups":[],"localBlackboard":{"_variables":{}},"derivedData":{"repeat":true,"$type":"NodeCanvas.BehaviourTrees.BehaviourTree+DerivedSerializationData"}}'
_objectReferences: []
_graphSource:
_version: 3.31
_category:
_comments:
_translation: {x: 33, y: 238}
_translation: {x: 268, y: 110}
_zoomFactor: 0.9866518
_haltSerialization: 0
_externalSerializationFile: {fileID: 0}

File diff suppressed because one or more lines are too long

View File

@@ -18,7 +18,7 @@ MonoBehaviour:
_version: 3.31
_category:
_comments:
_translation: {x: 296, y: -43}
_translation: {x: 429, y: 47}
_zoomFactor: 1
_haltSerialization: 0
_externalSerializationFile: {fileID: 0}

View File

@@ -26,7 +26,7 @@ MonoBehaviour:
Speed","changeValue":{"_value":2},"value":{},"_changeSmoothing":{"_value":2},"_smoothing":{},"_changeEasing":{"_value":2},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"directionChangingSoftness":{"label":"Direction
Changing Softness","changeValue":{"_value":2},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"directionSpinningHardness":{"label":"Direction
Spinning Hardness","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"directionSpinningSpeed":{"label":"Direction
Spinning Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeDirectionSettings"}]},"_onUpdateList":{"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"foldExit":true,"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Grounded","_position":{"x":458.5251,"y":383.7869},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"0"},{"_position":{"x":369.3697,"y":186.864},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"1"},{"_actionList":{"actions":[{"valueA":{"_name":"newAirMoveSmoothing"},"valueB":{"_value":1.0},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"eventName":{"_value":"Air
Spinning Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeDirectionSettings"}]},"_onUpdateList":{"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"foldExit":true,"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Grounded","_position":{"x":458.525,"y":373.7852},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"0"},{"_position":{"x":338.3644,"y":164.8602},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"1"},{"_actionList":{"actions":[{"valueA":{"_name":"newAirMoveSmoothing"},"valueB":{"_value":1.0},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"eventName":{"_value":"Air
Reset Received"},"delay":{},"$type":"NodeCanvas.Tasks.Actions.SendEvent"},{"airDirectionDecay":{"label":"Air
Direction Decay","changeValue":{"_value":2},"value":{},"_changeSmoothing":{"_value":2},"_smoothing":{},"_changeEasing":{"_value":2},"_easing":{}},"gravityMax":{"label":"Gravity
Max","changeValue":{"_value":2},"value":{},"_changeSmoothing":{"_value":2},"_smoothing":{},"_changeEasing":{"_value":2},"_easing":{}},"gravityAcceleration":{"label":"Gravity
@@ -97,7 +97,7 @@ MonoBehaviour:
Direction","value":{"_value":{"$content":1,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{"_value":1}},"rotationSpeed":{"label":"Rotation
Speed","changeValue":{"_value":1},"value":{"_value":6.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"moveSpeed":{"label":"Move
Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"acceleration":{"label":"Acceleration","changeValue":{"_value":1},"value":{"_value":1.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{"_value":1},"value":{"_value":1.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[{"newGravity":{"_value":2.0},"absolute":{},"relativity":{"_value":0.86},"deltaTime":{"_value":true},"decayRate":{"_value":0.3},"$type":"Reset.Units.SetNewGravity"}]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"Operation":2,"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetInt"}]},"foldEnter":true,"foldUpdate":true,"foldExit":true,"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Standard
Jump","_position":{"x":697.7955,"y":220.1157},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"21"},{"_actionList":{"actions":[{"valueA":{"_name":"newAirMoveSmoothing"},"valueB":{"_value":1.0},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"eventName":{"_value":"Air
Jump","_position":{"x":704.7966,"y":246.1201},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"21"},{"_actionList":{"actions":[{"valueA":{"_name":"newAirMoveSmoothing"},"valueB":{"_value":1.0},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"eventName":{"_value":"Air
Reset Received"},"delay":{},"$type":"NodeCanvas.Tasks.Actions.SendEvent"}]},"_color":{"r":0.3647059,"g":0.3215686,"b":1.0,"a":1.0},"_name":"Airborne
Standard Movement","_position":{"x":227.1761,"y":27.24033},"$type":"NodeCanvas.StateMachines.ActionState","$id":"22"},{"_name":"INTERACT
OPTIONS","_position":{"x":967.8022,"y":970.8088},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"23"},{"_actionList":{"executionMode":1,"actions":[{"raycastHit":{"_name":"_hit"},"transform":{},"collider":{},"gameObject":{"_name":"pickupTarget","_targetVariableID":"45e90651-1912-40ef-b4fc-6c27d00d0ef0"},"distance":{},"normal":{},"point":{},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":1979.639,"y":835.3054},"$type":"NodeCanvas.StateMachines.ActionState","$id":"24"},{"_name":"Check
@@ -142,16 +142,16 @@ MonoBehaviour:
Direction","value":{"_value":{"$content":1,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{"_value":1}},"rotationSpeed":{"label":"Rotation
Speed","changeValue":{"_value":1},"value":{"_value":6.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"moveSpeed":{"label":"Move
Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"acceleration":{"label":"Acceleration","changeValue":{"_value":1},"value":{"_value":1.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{"_value":1},"value":{"_value":1.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"},{"newDirection":{"_value":{"y":1.0}},"absolute":{},"relativity":{},"setRawAsWell":{},"relativeTo":{},"$type":"Reset.Units.SetNewDirection"},{"newSpeed":{"_value":22.0},"absolute":{},"relativity":{},"$type":"Reset.Units.SetNewSpeed"}]},"_onUpdateList":{"executionMode":1,"actions":[{"newGravity":{"_value":2.0},"absolute":{},"relativity":{"_value":0.86},"deltaTime":{"_value":true},"decayRate":{"_value":0.3},"$type":"Reset.Units.SetNewGravity"}]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"Operation":2,"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetInt"}]},"foldEnter":true,"foldUpdate":true,"foldExit":true,"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Run
Jump","_position":{"x":1043.577,"y":32.57642},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"33"},{"_nestedBT":{"_value":1},"executionMode":0,"_variablesMap":[{"_targetSubGraphVariableID":"9de2ef67-d7a9-49dc-936e-63ede27a131b","_canWrite":true,"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"7496ae67-b0a2-4894-a203-35e011767a3a"}],"_position":{"x":6.297241,"y":862.5489},"$type":"NodeCanvas.StateMachines.NestedBTState","$id":"34"},{"_nestedBT":{"_value":2},"executionMode":0,"_position":{"x":171.2884,"y":699.1394},"$type":"NodeCanvas.StateMachines.NestedBTState","$id":"35"},{"_nestedBT":{"_value":3},"executionMode":0,"_position":{"x":265.6401,"y":1002.963},"$type":"NodeCanvas.StateMachines.NestedBTState","$id":"36"},{"_subTree":{"_value":4},"_variablesMap":[{"_targetSubGraphVariableID":"e1cfd0be-7f55-420d-bdd8-e72531fc61ba","_canWrite":true,"_type":"UnityEngine.Transform","_name":"mainCamera"},{"_targetSubGraphVariableID":"c4e68b75-5129-428c-8177-abb7b38986f5","_canWrite":true,"_type":"Reset.Units.PlayerFacingDirection","_value":{"$content":0,"$type":"Reset.Units.PlayerFacingDirection"}}],"_position":{"x":-513.2321,"y":190.793},"$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_subTree":{"_value":5},"_tag":"","_position":{"x":88.88626,"y":312.6888},"_comment":"","$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_conditionList":{"conditions":[]},"_actionList":{"executionMode":1,"actions":[{"resolvedVector2":{"_name":"resolvedMoveVector2","_targetVariableID":"2aee664e-07ba-4e85-9d6a-a1393398789d"},"resolvedVector3":{"_name":"resolvedMoveVector3","_targetVariableID":"5d907161-2896-4b95-bfd2-0ea9426145d7"},"resolvedGravity":{"_name":"resolvedGravity","_targetVariableID":"7c9d4632-c537-44c4-ae35-d92fa64d5303"},"resolvedSpeed":{"_name":"resolvedSpeed","_targetVariableID":"a81cae83-1fb4-4a2c-bc68-ebf1781c2037"},"resolvedRotation":{"_name":"resolvedRotation","_targetVariableID":"f2ba350a-0fea-438e-9ad3-ed77db853d34"},"$type":"Reset.Units.GetResolvedMovementData"}]},"_position":{"x":43.41211,"y":188.3668},"$type":"NodeCanvas.StateMachines.OnFSMUpdate"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Airborne
Jump","_position":{"x":1043.577,"y":32.57642},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"33"},{"_nestedBT":{"_value":1},"executionMode":0,"_variablesMap":[{"_targetSubGraphVariableID":"9de2ef67-d7a9-49dc-936e-63ede27a131b","_canWrite":true,"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"7496ae67-b0a2-4894-a203-35e011767a3a"}],"_position":{"x":20.29724,"y":897.5489},"$type":"NodeCanvas.StateMachines.NestedBTState","$id":"34"},{"_nestedBT":{"_value":2},"executionMode":0,"_position":{"x":185.2884,"y":748.1394},"$type":"NodeCanvas.StateMachines.NestedBTState","$id":"35"},{"_nestedBT":{"_value":3},"executionMode":0,"_position":{"x":265.6401,"y":1002.963},"$type":"NodeCanvas.StateMachines.NestedBTState","$id":"36"},{"_subTree":{"_value":4},"_variablesMap":[{"_targetSubGraphVariableID":"e1cfd0be-7f55-420d-bdd8-e72531fc61ba","_canWrite":true,"_type":"UnityEngine.Transform","_name":"mainCamera"},{"_targetSubGraphVariableID":"c4e68b75-5129-428c-8177-abb7b38986f5","_canWrite":true,"_type":"Reset.Units.PlayerFacingDirection","_value":{"$content":0,"$type":"Reset.Units.PlayerFacingDirection"}}],"_position":{"x":-513.2321,"y":190.793},"$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_subTree":{"_value":5},"_tag":"","_position":{"x":88.88626,"y":312.6888},"_comment":"","$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_conditionList":{"conditions":[]},"_actionList":{"executionMode":1,"actions":[{"resolvedVector2":{"_name":"resolvedMoveVector2","_targetVariableID":"2aee664e-07ba-4e85-9d6a-a1393398789d"},"resolvedVector3":{"_name":"resolvedMoveVector3","_targetVariableID":"5d907161-2896-4b95-bfd2-0ea9426145d7"},"resolvedGravity":{"_name":"resolvedGravity","_targetVariableID":"7c9d4632-c537-44c4-ae35-d92fa64d5303"},"resolvedSpeed":{"_name":"resolvedSpeed","_targetVariableID":"a81cae83-1fb4-4a2c-bc68-ebf1781c2037"},"resolvedRotation":{"_name":"resolvedRotation","_targetVariableID":"f2ba350a-0fea-438e-9ad3-ed77db853d34"},"$type":"Reset.Units.GetResolvedMovementData"}]},"_position":{"x":43.41211,"y":188.3668},"$type":"NodeCanvas.StateMachines.OnFSMUpdate"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Airborne
Standby","_position":{"x":1509.989,"y":-548.8954},"$type":"NodeCanvas.StateMachines.SuperActionState"},{"_subTree":{"_value":6},"_position":{"x":1126.753,"y":-309.6837},"$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_subFSM":{"_value":7},"_position":{"x":-97.23633,"y":603.6638},"$type":"NodeCanvas.StateMachines.ConcurrentSubFSM"},{"_position":{"x":1205.416,"y":1652.661},"$type":"NodeCanvas.StateMachines.AnyState","$id":"43"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move
Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{"_value":1},"_smoothing":{"_value":10.0},"_changeEasing":{"_value":1},"_easing":{"_value":5.0}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"},{"facingDirection":{"label":"Facing
Direction","value":{"_value":{"$content":1,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{"_value":1}},"rotationSpeed":{"label":"Rotation
Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"parameter":{"_value":"Downed"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"7496ae67-b0a2-4894-a203-35e011767a3a"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"},{"trigger":{"_value":"Downed"},"$type":"Reset.Core.SendAnimationTrigger"}]},"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Downed","_position":{"x":1104.305,"y":1898.447},"$type":"NodeCanvas.StateMachines.ActionState","$id":"44"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move
Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{"_value":1},"_smoothing":{"_value":10.0},"_changeEasing":{"_value":1},"_easing":{"_value":5.0}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"},{"facingDirection":{"label":"Facing
Direction","value":{"_value":{"$content":1,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{"_value":1}},"rotationSpeed":{"label":"Rotation
Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"parameter":{"_value":"Downed"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"7496ae67-b0a2-4894-a203-35e011767a3a"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Die","_position":{"x":1341.81,"y":1339.448},"$type":"NodeCanvas.StateMachines.ActionState","$id":"45"},{"_actionList":{"executionMode":1,"actions":[{"position":{},"$type":"Reset.Units.MoveUnit"},{"trigger":{"_value":"PickUp"},"$type":"Reset.Core.SendAnimationTrigger"},{"parameter":{"_value":"PickUp"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"7496ae67-b0a2-4894-a203-35e011767a3a"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"}]},"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Respawn","_position":{"x":1013.765,"y":1441.579},"$type":"NodeCanvas.StateMachines.ActionState","$id":"46"},{"_actionList":{"executionMode":1,"actions":[{"$type":"NodeCanvas.Tasks.Actions.DrawReviveBar"}]},"_repeatStateActions":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Getting
Picked Up","_position":{"x":922.8077,"y":1766.312},"$type":"NodeCanvas.StateMachines.ActionState","$id":"47"},{"_actionList":{"executionMode":1,"actions":[{"trigger":{"_value":"PickUp"},"$type":"Reset.Core.SendAnimationTrigger"},{"parameter":{"_value":"PickUp"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"7496ae67-b0a2-4894-a203-35e011767a3a"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"}]},"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Picked
Up","_position":{"x":675.3742,"y":1598.958},"$type":"NodeCanvas.StateMachines.ActionState","$id":"48"},{"_position":{"x":66.05099,"y":1392.763},"$type":"NodeCanvas.StateMachines.AnyState","$id":"49"},{"_actionList":{"executionMode":1,"actions":[{"control":1,"$type":"NodeCanvas.Tasks.Actions.GraphOwnerControl"}]},"_color":{"r":0.2358491,"g":0.2358491,"b":0.2358491,"a":1.0},"_name":"Not
Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"parameter":{"_value":"Downed"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"7496ae67-b0a2-4894-a203-35e011767a3a"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Die","_position":{"x":1291.808,"y":1341.489},"$type":"NodeCanvas.StateMachines.ActionState","$id":"45"},{"_actionList":{"executionMode":1,"actions":[{"position":{},"$type":"Reset.Units.MoveUnit"},{"trigger":{"_value":"PickUp"},"$type":"Reset.Core.SendAnimationTrigger"},{"parameter":{"_value":"PickUp"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"7496ae67-b0a2-4894-a203-35e011767a3a"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"}]},"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Respawn","_position":{"x":979.0699,"y":1436.477},"$type":"NodeCanvas.StateMachines.ActionState","$id":"46"},{"_actionList":{"executionMode":1,"actions":[{"$type":"NodeCanvas.Tasks.Actions.DrawReviveBar"}]},"_repeatStateActions":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Getting
Picked Up","_position":{"x":951.3801,"y":1772.435},"$type":"NodeCanvas.StateMachines.ActionState","$id":"47"},{"_actionList":{"executionMode":1,"actions":[{"trigger":{"_value":"PickUp"},"$type":"Reset.Core.SendAnimationTrigger"},{"parameter":{"_value":"PickUp"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"7496ae67-b0a2-4894-a203-35e011767a3a"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"}]},"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Picked
Up","_position":{"x":770.2754,"y":1594.876},"$type":"NodeCanvas.StateMachines.ActionState","$id":"48"},{"_position":{"x":66.05099,"y":1392.763},"$type":"NodeCanvas.StateMachines.AnyState","$id":"49"},{"_actionList":{"executionMode":1,"actions":[{"control":1,"$type":"NodeCanvas.Tasks.Actions.GraphOwnerControl"}]},"_color":{"r":0.2358491,"g":0.2358491,"b":0.2358491,"a":1.0},"_name":"Not
Owned","_position":{"x":30.03195,"y":1494.638},"$type":"NodeCanvas.StateMachines.ActionState","$id":"50"}],"connections":[{"_condition":{"valueA":{"_name":"isGroundedOld","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Interact"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"23"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":4},"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"observerLabel":{"_value":"itemdrop"},"outputHitTo":{},"deactivateOnFinish":false,"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"21"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple
Launch"},"saveEventValue":{"_name":"_grappleLaunchDir"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent`1[[UnityEngine.Vector3,
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"7"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple
@@ -169,7 +169,7 @@ MonoBehaviour:
Pull"},"saveEventValue":{"_name":"_grappleLaunchDir"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent`1[[UnityEngine.Vector3,
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"6"},"_targetNode":{"$ref":"11"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"7"},"_targetNode":{"$ref":"8"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"timeout":{"_value":0.2},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"8"},"_targetNode":{"$ref":"9"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"8"},"_targetNode":{"$ref":"10"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"9"},"_targetNode":{"$ref":"10"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"10"},"_targetNode":{"$ref":"3"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"11"},"_targetNode":{"$ref":"8"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"12"},"_targetNode":{"$ref":"13"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"12"},"_targetNode":{"$ref":"15"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"13"},"_targetNode":{"$ref":"14"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"14"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkMode":1,"conditions":[{"timeout":{"_value":2.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},{"valueA":{"_name":"isGroundedOld","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{"_value":true},"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"15"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"16"},"_targetNode":{"$ref":"15"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"16"},"_targetNode":{"$ref":"17"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"17"},"_targetNode":{"$ref":"14"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"18"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkAgainst":2,"checkAgainstValue":{"_name":"_wallJumpHitNormal"},"desiredValue":{"_value":1.0},"tolerance":{"_value":0.5},"considerCameraRotation":{"_value":true},"negate":{},"$type":"NodeCanvas.Tasks.Conditions.GetMovementInputDotProduct"},"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"20"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"20"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkMode":1,"conditions":[{"actionName":{"_value":"Jump"},"actionPhase":{"_value":4},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"valueA":{"_name":"resolvedGravity","_targetVariableID":"7c9d4632-c537-44c4-ae35-d92fa64d5303"},"checkType":2,"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckFloat"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"21"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"22"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"player"},"outputHitTo":{"_name":"_hit"},"deactivateOnFinish":false,"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"valueA":{"_name":"pickupTarget","_targetVariableID":"45e90651-1912-40ef-b4fc-6c27d00d0ef0"},"valueB":{},"_invert":true,"_isDisabled":true,"$type":"NodeCanvas.Tasks.Conditions.CheckVariable`1[[UnityEngine.GameObject,
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},{"valueA":{"_name":"pickupTarget","_targetVariableID":"45e90651-1912-40ef-b4fc-6c27d00d0ef0"},"valueB":{},"_invert":true,"_isDisabled":true,"$type":"NodeCanvas.Tasks.Conditions.CheckVariable`1[[Reset.Units.Player,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"24"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"24"},"_targetNode":{"$ref":"25"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"target":{"_name":"pickupTarget","_targetVariableID":"45e90651-1912-40ef-b4fc-6c27d00d0ef0"},"$type":"Reset.Core.IsInteractable"},"_sourceNode":{"$ref":"25"},"_targetNode":{"$ref":"26"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"25"},"_targetNode":{"$ref":"28"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Interact"},"actionPhase":{"_value":4},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"26"},"_targetNode":{"$ref":"27"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":5.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"26"},"_targetNode":{"$ref":"30"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"27"},"_targetNode":{"$ref":"28"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"28"},"_targetNode":{"$ref":"29"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"29"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"30"},"_targetNode":{"$ref":"28"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":0.1},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"31"},"_targetNode":{"$ref":"32"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"32"},"_targetNode":{"$ref":"33"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Sprint"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"32"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"isGroundedOld","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"32"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"33"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"34"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"35"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"36"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Downed"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"43"},"_targetNode":{"$ref":"44"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Killed"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"43"},"_targetNode":{"$ref":"45"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":4.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"44"},"_targetNode":{"$ref":"45"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Pick
Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"24"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"24"},"_targetNode":{"$ref":"25"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"target":{"_name":"pickupTarget","_targetVariableID":"45e90651-1912-40ef-b4fc-6c27d00d0ef0"},"$type":"Reset.Core.IsInteractable"},"_sourceNode":{"$ref":"25"},"_targetNode":{"$ref":"26"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"25"},"_targetNode":{"$ref":"28"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Interact"},"actionPhase":{"_value":4},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"26"},"_targetNode":{"$ref":"27"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":5.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"26"},"_targetNode":{"$ref":"30"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"27"},"_targetNode":{"$ref":"28"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"28"},"_targetNode":{"$ref":"29"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"29"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"30"},"_targetNode":{"$ref":"28"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":0.1},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"31"},"_targetNode":{"$ref":"32"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"32"},"_targetNode":{"$ref":"33"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Sprint"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"32"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"isGroundedOld","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"32"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkMode":1,"conditions":[{"actionName":{"_value":"Jump"},"actionPhase":{"_value":4},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"valueA":{"_name":"resolvedGravity","_targetVariableID":"7c9d4632-c537-44c4-ae35-d92fa64d5303"},"checkType":2,"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckFloat"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"33"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"34"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"35"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"36"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Downed"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"43"},"_targetNode":{"$ref":"44"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Killed"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"43"},"_targetNode":{"$ref":"45"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":4.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"44"},"_targetNode":{"$ref":"45"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Pick
Up Start"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"44"},"_targetNode":{"$ref":"47"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":4.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"45"},"_targetNode":{"$ref":"46"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"46"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Pick
Up Success"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"47"},"_targetNode":{"$ref":"48"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Pick
Up Failed"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"47"},"_targetNode":{"$ref":"44"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"48"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"method":{"_baseInfo":"Reset.Units.Player|UnitIsLocal|System.Boolean","_paramsInfo":""},"parameters":[],"checkValue":{"_type":"System.Boolean","_value":{"$content":false,"$type":"System.Boolean"}},"$type":"NodeCanvas.Tasks.Conditions.CheckFunction_Multiplatform"},"_sourceNode":{"$ref":"49"},"_targetNode":{"$ref":"50"},"$type":"NodeCanvas.StateMachines.FSMConnection"}],"canvasGroups":[],"localBlackboard":{"_variables":{"isGroundedOld":{"_propertyPath":"UnityEngine.CharacterController.isGrounded","_name":"isGroundedOld","_id":"619300a4-be8b-4ad4-ba2a-978468094ba2","_debugBoundValue":true,"$type":"NodeCanvas.Framework.Variable`1[[System.Boolean,
@@ -188,7 +188,7 @@ MonoBehaviour:
_version: 3.31
_category:
_comments:
_translation: {x: -587, y: -941}
_zoomFactor: 0.9994002
_translation: {x: -178, y: 592}
_zoomFactor: 1
_haltSerialization: 0
_externalSerializationFile: {fileID: 0}

View File

@@ -21,7 +21,7 @@ MonoBehaviour:
_version: 3.31
_category:
_comments:
_translation: {x: 76, y: 96}
_translation: {x: 143, y: 75}
_zoomFactor: 1
_haltSerialization: 0
_externalSerializationFile: {fileID: 0}

View File

@@ -26,7 +26,7 @@ MonoBehaviour:
_version: 3.31
_category:
_comments:
_translation: {x: 308.22415, y: 98.45053}
_translation: {x: 112, y: 31}
_zoomFactor: 0.7500701
_haltSerialization: 0
_externalSerializationFile: {fileID: 0}

View File

@@ -0,0 +1,138 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-1940867295656350642
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
version: 10
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PlayerBodyMat
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _SPECULARHIGHLIGHTS_OFF
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
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}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 0
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _XRMotionVectorsPass: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 0.33107865, g: 0.43404967, b: 0.754717, a: 1}
- _Color: {r: 0.33107862, g: 0.43404964, b: 0.75471693, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f13959d7f99a3084797d0db9a2b2382c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,110 @@
fileFormatVersion: 2
guid: af57850141d47244a8c7c021d10baeed
ModelImporter:
serializedVersion: 24200
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importPhysicalCameras: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
generateMeshLods: 0
meshLodGenerationFlags: 0
maximumMeshLod: -1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 0
strictVertexDataChecks: 0
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
importBlendShapeDeformPercent: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,152 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1107 &-7831893988088785558
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: -5807180696605908168}
m_Position: {x: 380, y: 140, z: 0}
- serializedVersion: 1
m_State: {fileID: -7809713459722507909}
m_Position: {x: 250, y: 330, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -5807180696605908168}
--- !u!1102 &-7809713459722507909
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PlayerRig|AttackSword1
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 3744110812559639861, guid: af57850141d47244a8c7c021d10baeed, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-5807180696605908168
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Idle / Run
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7068036982611019673}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PlayerTestAnimator
serializedVersion: 5
m_AnimatorParameters:
- m_Name: Move Direction X
m_Type: 1
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
- m_Name: Move Direction Y
m_Type: 1
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: -7831893988088785558}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!206 &7068036982611019673
BlendTree:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Blend Tree
m_Childs:
- serializedVersion: 2
m_Motion: {fileID: 4292510674569227458, guid: af57850141d47244a8c7c021d10baeed, type: 3}
m_Threshold: 0
m_Position: {x: 0, y: 0}
m_TimeScale: 1
m_CycleOffset: 0
m_DirectBlendParameter: Move Direction X
m_Mirror: 0
- serializedVersion: 2
m_Motion: {fileID: 6412491473531025813, guid: af57850141d47244a8c7c021d10baeed, type: 3}
m_Threshold: 0.031128412
m_Position: {x: 0, y: 0}
m_TimeScale: 1
m_CycleOffset: 0
m_DirectBlendParameter: Move Direction X
m_Mirror: 0
- serializedVersion: 2
m_Motion: {fileID: 6412491473531025813, guid: af57850141d47244a8c7c021d10baeed, type: 3}
m_Threshold: 1
m_Position: {x: 0, y: 0}
m_TimeScale: 1.3
m_CycleOffset: 0
m_DirectBlendParameter: Move Direction X
m_Mirror: 0
m_BlendParameter: Move Direction X
m_BlendParameterY: Move Direction X
m_MinThreshold: 0
m_MaxThreshold: 1
m_UseAutomaticThresholds: 0
m_NormalizedBlendValues: 0
m_BlendType: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0bc31e0717cb9b04aa98f63222c2fa17
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -27,7 +27,7 @@ GameObject:
- component: {fileID: 4227131494895359615}
- component: {fileID: 4020293503545581060}
- component: {fileID: 2832127593411522816}
m_Layer: 7
m_Layer: 8
m_Name: Player
m_TagString: Untagged
m_Icon: {fileID: 0}
@@ -637,6 +637,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 092c74123418b7a4482fc45aa5870077, type: 3}
m_Name:
m_EditorClassIdentifier:
ShowTopMostFoldoutHeaderGroup: 1
lockOnRange: 40
lockOnMaxAngle: 70
mainTargetWeight: 0.15
@@ -830,7 +831,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Core::UnitCombat
ShowTopMostFoldoutHeaderGroup: 1
draggedUnits: []
--- !u!114 &4227131494895359615
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -957,6 +957,11 @@ MonoBehaviour:
m_EditorClassIdentifier: Core::Reset.Units.UnitAnimation
ShowTopMostFoldoutHeaderGroup: 1
modelAnimator: {fileID: 8505492416078151957}
headBone: {fileID: 0}
neckBone: {fileID: 0}
headRotOffset: {x: 0, y: 0, z: 0}
neckRotOffset: {x: 0, y: 0, z: 0}
rotationLimit: {x: 0, y: 0, z: 0}
--- !u!1001 &4276760010964545458
PrefabInstance:
m_ObjectHideFlags: 0

File diff suppressed because it is too large Load Diff

View File

@@ -21,7 +21,7 @@ namespace Reset {
public BBParameter<float> length;
public BBParameter<Vector3> direction;
public BBParameter<Vector3> offset;
public BBParameter<LayerMask> ignoreLayers;
public BBParameter<LayerMask> layerMask;
public BBParameter<float> width;
@@ -44,7 +44,7 @@ namespace Reset {
BBParameterEditor.ParameterField("Length", length);
BBParameterEditor.ParameterField("Direction", direction);
BBParameterEditor.ParameterField("Offset", offset);
BBParameterEditor.ParameterField("Ignore Layers", ignoreLayers);
BBParameterEditor.ParameterField("Ignore Layers", layerMask);
if (castType.value == EnvironmentObserver.CastType.SphereCast || castType.value == EnvironmentObserver.CastType.SphereOverlap) {
BBParameterEditor.ParameterField("Width", width);
@@ -88,7 +88,7 @@ namespace Reset {
length = length.value,
direction = direction.value,
offset = offset.value,
ignoreLayers = ignoreLayers.value,
ignoreLayers = layerMask.value,
width = width.value,

View File

@@ -0,0 +1,51 @@
using System.Collections.Generic;
using NodeCanvas.Framework;
using ParadoxNotion.Design;
using UnityEngine;
namespace Reset.Units {
[Category("Reset/Units/Combat")]
[Description("Drag a collection of units along with the attackers movement or actions")]
public class DragUnits : ActionTask<UnitCombat>{
public BBParameter<List<Collider>> unitsToDrag;
public BBParameter<float> dragTime;
//Use for initialization. This is called only once in the lifetime of the task.
//Return null if init was successfull. Return an error string otherwise
protected override string OnInit() {
return null;
}
//This is called once each time the task is enabled.
//Call EndAction() to mark the action as finished, either in success or failure.
//EndAction can be called from anywhere.
protected override void OnExecute() {
foreach (Collider col in unitsToDrag.value) {
if (dragTime.value == 0f) {
agent.AddDragCollider(col);
} else {
agent.AddDragCollider(col, dragTime.value);
}
}
EndAction(true);
}
//Called once per frame while the action is active.
protected override void OnUpdate() {
}
//Called when the task is disabled.
protected override void OnStop() {
}
//Called when the task is paused.
protected override void OnPause() {
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a15fb8c5108ca6a47a12fcf6278579fd

View File

@@ -8,7 +8,7 @@ namespace Reset.Units {
[Category("Reset/Movement")]
public class ChangeRotationSettings : ActionTask<UnitMovementHandler> {
[SerializeField] public EnumValueGroup facingDirection = new EnumValueGroup("Facing Direction", PlayerFacingDirection.TowardsTarget);
[SerializeField] public EnumValueGroup facingDirection = new EnumValueGroup("Facing Direction", UnitFacingDirection.TowardsTarget);
[SerializeField] public FloatValueGroup rotationSpeed = new (newLabel: "Rotation Speed");
//Use for initialization. This is called only once in the lifetime of the task.

View File

@@ -0,0 +1,7 @@
using UnityEngine;
namespace Reset.Units{
public interface IUnitTargetProvider{
public GameObject UnitTarget{ get; }
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f0c49825086c41e0990e5fa5d3f0041c
timeCreated: 1761269267

View File

@@ -15,7 +15,7 @@ using Vector2 = UnityEngine.Vector2;
using Vector3 = UnityEngine.Vector3;
namespace Reset.Units{
public class LockOnManager : MonoBehaviour{
public class LockOnManager : UnitComponent, IUnitTargetProvider {
public class ActiveLockOnTarget{
public GameObject gameObject;
public float targetWeight;
@@ -25,6 +25,9 @@ namespace Reset.Units{
public static LockOnManager Instance;
// IUnitTargetProvider
public GameObject UnitTarget => mainTarget.gameObject;
// Lock On settings
[Space(5)] public float lockOnRange = 40f;
public float lockOnMaxAngle = 70f;
@@ -47,13 +50,13 @@ namespace Reset.Units{
private VisualElement elementRoot;
private void Awake(){
// // Register as singleton
// if (Instance == null) {
// Instance = this;
// } else {
// this.enabled = false;
// return;
// }
// Register as singleton
if (Instance == null && Unit.UnitIsLocal()) {
Instance = this;
} else {
enabled = false;
return;
}
// References from camera
targetGroup = PlayerManager.Camera.transform.Find("Target Group").GetComponent<CinemachineTargetGroup>();
@@ -310,5 +313,4 @@ namespace Reset.Units{
}
}
}
}

View File

@@ -7,7 +7,8 @@ using UnityEngine;
using Random = UnityEngine.Random;
public class UnitCombat : UnitComponent {
public List<Collider> draggedUnits = new List<Collider>();
// public List<Collider> draggedUnits = new List<Collider>();
public Dictionary<Collider, float> draggedColliders = new Dictionary<Collider, float>();
private UnitMovementHandler movement;
@@ -19,8 +20,14 @@ public class UnitCombat : UnitComponent {
private float sinAmplitude;
private float sinOffset;
private List<Collider> activelyDraggedColliders;
private List<Collider> expiredColliders;
void Awake(){
movement = GetComponent<UnitMovementHandler>();
activelyDraggedColliders = new List<Collider>();
expiredColliders = new List<Collider>();
}
void Start(){
@@ -31,7 +38,48 @@ public class UnitCombat : UnitComponent {
// Update is called once per frame
void Update(){
// Calculate movement for dragged units
DragAttackedUnits();
// Check timers to make sure an object doesn't stay dragged
CheckUnitTimers();
}
// dragTime is set as a maximum. If no time is provided then it defaults to two seconds.
public void AddDragCollider(Collider newCollider, float dragTime = 2f){
if (draggedColliders.ContainsKey(newCollider)) {
draggedColliders[newCollider] = dragTime;
} else {
draggedColliders.Add(newCollider, dragTime);
activelyDraggedColliders.Add(newCollider);
}
}
public void RemoveDragCollider(Collider colliderToRemove){
draggedColliders.Remove(colliderToRemove);
activelyDraggedColliders.Remove(colliderToRemove);
}
void CheckUnitTimers(){
// Decrease the timer of the dragged colliders
foreach (Collider thisCollider in activelyDraggedColliders) {
draggedColliders[thisCollider] -= 1f * Time.deltaTime;
// Pend them for removal when ready
if (draggedColliders[thisCollider] < 0f) {
expiredColliders.Add(thisCollider);
}
}
// Remove expired colliders
for (int i = 0; i < expiredColliders.Count; i++) {
RemoveDragCollider(expiredColliders[i]);
}
// Clear list if not empty
if (expiredColliders.Count > 0f) {
expiredColliders.Clear();
}
}
void DragAttackedUnits(){
@@ -58,13 +106,16 @@ public class UnitCombat : UnitComponent {
lastPosition = transform.position;
// Apply the speed, direction, and rotation to each unit
foreach (Collider draggedUnit in draggedUnits) {
foreach (Collider draggedUnit in activelyDraggedColliders) {
UnitMovementHandler draggedUnitMovement = draggedUnit.GetComponent<UnitMovementHandler>();
if (!draggedUnitMovement) {
Debug.LogError($"No available UnitMovement on {draggedUnit.name}. Aborting drag on this unit.");
continue;
}
// Prevent units from entering a runaway situation where they constantly pull each other at high speeds across the map
speedDelta = Mathf.Min(speedDelta, draggedUnitMovement.data.moveSpeed.Value);
draggedUnitMovement.SetNewRotation(-transform.position.DirectionTo(draggedUnit.transform.position), 1f, true);
draggedUnitMovement.SetNewDirection(positionDelta.ToVector2(), 1f, true);
draggedUnitMovement.SetNewSpeed(speedDelta, 1f, true);

View File

@@ -5,15 +5,9 @@ namespace Reset.Units{
private bool enabledAsHost = true;
private Unit _unit;
internal Unit Unit{
get {
if (_unit != null) {
return _unit;
}
_unit = GetComponent<Unit>();
if (_unit == null) { _unit = GetComponent<Unit>(); }
return _unit;
}
}

View File

@@ -5,7 +5,10 @@ using Unity.Netcode;
using UnityEngine;
namespace Reset.Units{
public class Enemy : Unit, ILockOnTarget, IKillable {
public class Enemy : Unit, ILockOnTarget, IKillable{
// Spawn Info
public EnemySpawn relatedSpawner;
// Lock-On
public float lockonTargetRadius{ get; set; } = 10f;
[ShowInInspector]

View File

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

View File

@@ -0,0 +1,20 @@
using Sirenix.OdinInspector;
using UnityEngine;
namespace Reset.Units{
public class EnemyCombat : UnitCombat, IUnitTargetProvider{
public GameObject target;
public GameObject UnitTarget => target;
[Button]
public void SetNewTarget(GameObject newTarget){
Unit.Graph.SendEvent("New Target Detected");
target = newTarget;
}
public void DropTarget(){
target = null;
Unit.Graph.SendEvent("Drop Target");
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f1528d25d3d94df59161993cb28bcb17
timeCreated: 1761269778

View File

@@ -0,0 +1,223 @@
using System;
using System.Collections.Generic;
using Drawing;
using Pathfinding;
using Sirenix.OdinInspector;
using UnityEngine;
using Random = UnityEngine.Random;
namespace Reset.Units{
public class EnemySpawn : MonoBehaviour{
enum SpawnerState{
Idle = 0,
TargetAcquired,
TargetDropped,
InCombatUnlocked,
InCombatLocked,
Cooldown,
}
public float radius = 30f;
public int minimumEnemies = 1;
public int maximumEnemies = 5;
public Vector2 enemyCount;
// TODO: Replace this with an Enemy selector based on difficulty, random chance, etc?
public GameObject enemy;
public List<GameObject> enemies;
public GridGraph relatedGraph;
private SpawnerState spawnerState;
private float timeInState;
void Start(){
CreateAstarGraph();
SpawnEnemies();
}
void CreateAstarGraph(){
relatedGraph = AstarPath.active.data.AddGraph(typeof(GridGraph)) as GridGraph;
relatedGraph.SetDimensions(Mathf.FloorToInt(radius) * 2, Mathf.FloorToInt(radius) * 2, 1f);
relatedGraph.collision.diameter = 3f;
AstarPath.active.Scan(relatedGraph);
GetComponent<ProceduralGraphMover>().graph = relatedGraph;
}
void SpawnEnemies(){
int count = Random.Range(minimumEnemies, maximumEnemies + 1);
for (int i = 0; i < count; i++) {
Vector3 newPosition = transform.position;
float randomX = Random.Range(-(radius / 2f), radius / 2f);
float randomZ = Random.Range(-(radius / 2f), radius / 2f);
newPosition += new Vector3(randomX, transform.position.y, randomZ);
float randomRot = Random.Range(0f, 360f);
GameObject newEnemy = Instantiate(enemy, newPosition, Quaternion.AngleAxis(randomRot, Vector3.up));
newEnemy.GetComponent<Enemy>().relatedSpawner = this;
enemies.Add(newEnemy);
}
}
void Update(){
ProcessStateUpdate();
DrawSpawnStateGizmos();
}
// Set the new state of the spawner and also reset the timer for state management
void ChangeState(SpawnerState newState){
spawnerState = newState;
ProcessStateStart();
timeInState = 0f;
}
// Does initial actions on state switch
void ProcessStateStart(){
switch (spawnerState) {
case SpawnerState.TargetDropped:
foreach (GameObject thisEnemy in enemies) {
thisEnemy.GetComponent<EnemyCombat>().DropTarget();
}
break;
case SpawnerState.InCombatUnlocked:
foreach (GameObject thisEnemy in enemies) {
thisEnemy.GetComponent<Enemy>().Graph.SendEvent("Enter Combat");
}
break;
}
}
// Actively processes the state of the spawner and its assocaited enemies
void ProcessStateUpdate(){
switch (spawnerState) {
// Check if player is in range of this spawner. If so, set them as the new target
case SpawnerState.Idle:
if (PlayerIsInRange(radius, radius / 2f)) {
foreach (GameObject thisEnemy in enemies) {
thisEnemy.GetComponent<EnemyCombat>().SetNewTarget(PlayerManager.Player);
}
ChangeState(SpawnerState.TargetAcquired);
}
break;
// After grabbing a player in range, make sure they stay in range. If they aren't in range after 5 seconds, disengage. If they are or get too close, engage.
case SpawnerState.TargetAcquired:
if (PlayerIsInRange(8f, 8f) && timeInState > 1f) {
ChangeState(SpawnerState.InCombatUnlocked);
return;
}
if (timeInState > 5f) {
if (PlayerIsInRange(radius + 2f, radius * .6f)) {
ChangeState(SpawnerState.InCombatUnlocked);
return;
}
ChangeState(SpawnerState.TargetDropped);
return;
}
break;
// Wait a few seconds after dropping the target before doing anything else
case SpawnerState.TargetDropped:
if (timeInState > 3f) {
ChangeState(SpawnerState.Idle);
return;
}
break;
// Set all units to combat. Drop combat if the target gets too far
case SpawnerState.InCombatUnlocked:
if (!PlayerIsInRange(radius * 1.5f, radius * 1.5f) && timeInState > 5f) {
ChangeState(SpawnerState.TargetDropped);
return;
}
break;
// Lock the player to the spawn. Currently unused.
case SpawnerState.InCombatLocked:
break;
// Long cooldown for after all units have been killed. Currently unused.
case SpawnerState.Cooldown:
break;
}
// Increment state timer
timeInState += 1f * Time.deltaTime;
}
GameObject PlayerIsInRange(float spawnerRange, float enemyRange){
// TODO: Make compatible with all players
if (!PlayerManager.Player) {
return null;
}
Vector3 playerPos = PlayerManager.Player.transform.position;
// Skip checking and return null/false if the player is nowhere near the input range
if (Vector3.Distance(playerPos, transform.position) > spawnerRange * 2f) {
return null;
}
// If they are in range, check if the player is close enough to either an enemy or the input range
if (Vector3.Distance(playerPos, transform.position) < spawnerRange) {
return PlayerManager.Player;
}
foreach (GameObject thisEnemy in enemies) {
if (Vector3.Distance(playerPos, thisEnemy.transform.position) < enemyRange) {
return PlayerManager.Player;
}
}
return null;
}
private void DrawSpawnStateGizmos(){
Color cylinderColor = Color.blue;
switch (spawnerState) {
case SpawnerState.Idle:
break;
case SpawnerState.TargetAcquired:
cylinderColor = Color.coral;
break;
case SpawnerState.TargetDropped:
cylinderColor = Color.khaki;
break;
case SpawnerState.InCombatUnlocked:
cylinderColor = Color.red;
break;
case SpawnerState.InCombatLocked:
cylinderColor = Color.violetRed;
break;
case SpawnerState.Cooldown:
cylinderColor = Color.gray;
break;
}
Draw.WireCylinder(transform.position, transform.position + Vector3.up * 7f, radius, cylinderColor);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: dd8d1c9c0ddc5c14497e74371d4b0350

View File

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

View File

@@ -0,0 +1,35 @@
using NodeCanvas.Framework;
using ParadoxNotion.Design;
using UnityEngine;
namespace Reset.Units {
[Category("Reset/Units")]
[Description("Returns true if this unit is in the same spawn group as the provided value.")]
public class CheckIfSpawnmate : ConditionTask<Enemy>{
protected override string info{ get => $"{target} is spawnmate"; }
public BBParameter<GameObject> target;
//Use for initialization. This is called only once in the lifetime of the task.
//Return null if init was successfull. Return an error string otherwise
protected override string OnInit(){
return null;
}
//Called whenever the condition gets enabled.
protected override void OnEnable() {
}
//Called whenever the condition gets disabled.
protected override void OnDisable() {
}
//Called once per frame while the condition is active.
//Return whether the condition is success or failure.
protected override bool OnCheck(){
return agent.relatedSpawner.enemies.Contains(target.value);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 847ff34f59879c844b597a39884f5fe8

View File

@@ -0,0 +1,164 @@
using System;
using NodeCanvas.Framework;
using ParadoxNotion.Design;
using Sirenix.Utilities;
using UnityEngine;
using Random = UnityEngine.Random;
namespace Reset.Units {
[Category("Reset/Units")]
[Description("Gives the unit a new direction that causes them to circle the target.")]
public class CircleTarget : ActionTask<UnitMovementHandler>{
enum StrafeDirection{
Forward = 0, Backwards, Left, Right
}
// References
private IUnitTargetProvider targetProvider;
// Pause settings
[Description("How long will this unit wait to stop moving and pause")]
public BBParameter<Vector2> pauseIntervalRange;
[Description("How long this unit will within paused movement")]
public BBParameter<Vector2> unpauseIntervalRange;
// Speed settings
public BBParameter<Vector2> speedRange;
[Description("How long this unit will wait before switching movement speed")]
public BBParameter<Vector2> speedChangeIntervalRange;
[SliderField(0, 1)]
public BBParameter<float> speedSmoothing;
// Strafe direction settings
[Description("How long this unit will wait before switching strafe direction")]
public BBParameter<Vector2> strafeDirectionChangeInterval;
[SliderField(0, 1)]
public BBParameter<float> directionSmoothing;
// Pause state management
private bool strafePaused;
private float lastPauseEnterTime;
private float lastPauseExitTime;
private float pauseChangeTimeElapsed;
private float nextPauseChangeTime;
// Direct state management
private float lastDirectionChangeTime;
private float directionChangeTimeElapsed;
private StrafeDirection currentStrafeDirection;
private float nextDirectionChangeTime;
// Speed state management
private float lastSpeedChangeTime;
private float speedChangeTimeElapsed;
private float currentSpeed;
private float nextSpeedChangeTime;
//Use for initialization. This is called only once in the lifetime of the task.
//Return null if init was successfull. Return an error string otherwise
protected override string OnInit() {
if (pauseIntervalRange.value == Vector2.zero){ Debug.LogError($"Please set a setting for pause intervals on {agent.name}", agent.gameObject);}
if (unpauseIntervalRange.value == Vector2.zero){ Debug.LogError($"Please set a setting for unpause intervals on {agent.name}", agent.gameObject);}
if (speedRange.value == Vector2.zero){ Debug.LogError($"Please set a setting for speed range on {agent.name}", agent.gameObject);}
if (speedChangeIntervalRange.value == Vector2.zero){ Debug.LogError($"Please set a setting for speed change intervals on {agent.name}", agent.gameObject);}
if (strafeDirectionChangeInterval.value == Vector2.zero){ Debug.LogError($"Please set a setting for strafe direction change intervals on {agent.name}", agent.gameObject);}
// Get reference to target provider
targetProvider = agent.gameObject.GetComponent<IUnitTargetProvider>();
return null;
}
//This is called once each time the task is enabled.
//Call EndAction() to mark the action as finished, either in success or failure.
//EndAction can be called from anywhere.
protected override void OnExecute(){
// Reset timers
lastPauseEnterTime = 0f;
lastPauseExitTime = 0f;
pauseChangeTimeElapsed = 0f;
lastDirectionChangeTime = 0f;
directionChangeTimeElapsed = 0f;
// Initialize with direction
currentStrafeDirection = (StrafeDirection)Random.Range(0, 3);
}
//Called once per frame while the action is active.
protected override void OnUpdate() {
// Set a new direction
agent.SetNewDirection(GetVector3Direction().ToVector2(), directionSmoothing.value, true);
// Set paused or set new speed if unpaused
if (strafePaused) {
agent.SetNewSpeed(0f, speedSmoothing.value, true);
} else {
agent.SetNewSpeed(currentSpeed, speedSmoothing.value, true);
}
// Check the timers
CheckForChange();
}
// Method to quickly transform a strafe direction into a Vector3
Vector3 GetVector3Direction(){
switch (currentStrafeDirection) {
case StrafeDirection.Forward:
return agent.transform.position.DirectionTo(targetProvider.UnitTarget.transform.position);
case StrafeDirection.Backwards:
return -agent.transform.position.DirectionTo(targetProvider.UnitTarget.transform.position);
case StrafeDirection.Left:
return Quaternion.AngleAxis(-90f, Vector3.up) * agent.transform.position.DirectionTo(targetProvider.UnitTarget.transform.position);
case StrafeDirection.Right:
return Quaternion.AngleAxis(90f, Vector3.up) * agent.transform.position.DirectionTo(targetProvider.UnitTarget.transform.position);
default:
return Vector3.zero;
}
}
void SetNewPauseChangeTime(){
if (strafePaused) {
nextPauseChangeTime = elapsedTime + Random.Range(unpauseIntervalRange.value.x, unpauseIntervalRange.value.y);
} else {
nextPauseChangeTime = elapsedTime + Random.Range(pauseIntervalRange.value.x, pauseIntervalRange.value.y);
}
}
void SetNewSpeedChangeTime(){
nextSpeedChangeTime = elapsedTime + Random.Range(speedChangeIntervalRange.value.x, speedChangeIntervalRange.value.y);
}
void SetNewDirectionChangeTime(){
nextDirectionChangeTime = elapsedTime + Random.Range(strafeDirectionChangeInterval.value.x, strafeDirectionChangeInterval.value.y);
}
void CheckForChange(){
if (nextPauseChangeTime > elapsedTime) {
strafePaused = !strafePaused;
SetNewPauseChangeTime();
}
if (nextSpeedChangeTime > elapsedTime) {
currentSpeed = Random.Range(speedRange.value.x, speedRange.value.y);
SetNewSpeedChangeTime();
}
if (nextDirectionChangeTime > elapsedTime) {
currentStrafeDirection = (StrafeDirection)Random.Range(0, 3);
SetNewDirectionChangeTime();
}
}
//Called when the task is disabled.
protected override void OnStop() {
}
//Called when the task is paused.
protected override void OnPause() {
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 9f9afac70b34c5e44b747e86f7491aa3

View File

@@ -0,0 +1,65 @@
using NodeCanvas.Framework;
using ParadoxNotion.Design;
using Pathfinding;
using UnityEngine;
namespace Reset.Units {
[Category("Reset/Units")]
[Description("Set a new path towards a provided target")]
public class SetNewPathfindingPath : ActionTask<UnitPathfinding>{
public BBParameter<GameObject> target;
public bool useTimer;
public BBParameter<float> timeToRepath;
//Use for initialization. This is called only once in the lifetime of the task.
//Return null if init was successfull. Return an error string otherwise
protected override string OnInit() {
if (target.isNoneOrNull) {
Debug.Log($"There is no target set for {agent.name} to pathfind to.", agent.gameObject);
return $"There is no target set for {agent.name} to pathfind to.";
}
return null;
}
//This is called once each time the task is enabled.
//Call EndAction() to mark the action as finished, either in success or failure.
//EndAction can be called from anywhere.
protected override void OnExecute() {
agent.seeker.StartPath(agent.transform.position, target.value.transform.position, OnPathComplete);
if (useTimer) {
return;
}
EndAction(true);
}
public void OnPathComplete(Path p){
if (!p.error) {
agent.AssignNewPath(p);
}
}
//Called once per frame while the action is active.
protected override void OnUpdate() {
if (useTimer && elapsedTime > timeToRepath.value) {
agent.seeker.StartPath(agent.transform.position, target.value.transform.position, OnPathComplete);
EndAction();
}
}
//Called when the task is disabled.
protected override void OnStop() {
}
//Called when the task is paused.
protected override void OnPause() {
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 71ce4953752dde3449673b8931aefc00

View File

@@ -0,0 +1,64 @@
using NodeCanvas.Framework;
using ParadoxNotion.Design;
using Pathfinding;
using UnityEngine;
namespace Reset.Units {
[Category("Reset/Pathfinding")]
[Description("Set the agent's current path to a wandering path.")]
public class SetWanderingPath : ActionTask<UnitPathfinding> {
//Use for initialization. This is called only once in the lifetime of the task.
//Return null if init was successfull. Return an error string otherwise
protected override string OnInit() {
return null;
}
//This is called once each time the task is enabled.
//Call EndAction() to mark the action as finished, either in success or failure.
//EndAction can be called from anywhere.
protected override void OnExecute(){
Enemy thisEnemy = agent.Unit as Enemy;
Vector3 pathTargetPos = agent.transform.position;
if (thisEnemy.relatedSpawner) {
pathTargetPos = thisEnemy.relatedSpawner.transform.position;
}
Vector3 randomizedDestination = new Vector3(
Random.Range(-thisEnemy.relatedSpawner.radius, thisEnemy.relatedSpawner.radius),
0f,
Random.Range(-thisEnemy.relatedSpawner.radius, thisEnemy.relatedSpawner.radius)
);
pathTargetPos += randomizedDestination;
agent.seeker.StartPath(agent.transform.position, pathTargetPos, OnPathComplete);
EndAction(true);
}
public void OnPathComplete(Path p){
if (!p.error) {
agent.AssignNewPath(p);
}
}
//Called once per frame while the action is active.
protected override void OnUpdate() {
}
//Called when the task is disabled.
protected override void OnStop() {
}
//Called when the task is paused.
protected override void OnPause() {
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a8b7661016b47ae4e9137833e7111460

View File

@@ -0,0 +1,41 @@
using NodeCanvas.Framework;
using ParadoxNotion.Design;
namespace Reset.Units {
[Category("Reset/Units")]
[Description("Set whether this unit can use pathfinding or not.")]
public class TogglePathfinding : ActionTask<UnitPathfinding>{
public BBParameter<bool> value;
//Use for initialization. This is called only once in the lifetime of the task.
//Return null if init was successfull. Return an error string otherwise
protected override string OnInit() {
return null;
}
//This is called once each time the task is enabled.
//Call EndAction() to mark the action as finished, either in success or failure.
//EndAction can be called from anywhere.
protected override void OnExecute(){
agent.pathfindingEnabled = value.value;
EndAction(true);
}
//Called once per frame while the action is active.
protected override void OnUpdate() {
}
//Called when the task is disabled.
protected override void OnStop() {
}
//Called when the task is paused.
protected override void OnPause() {
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: e7bebfffaed94604db733c72cde6be7d

View File

@@ -0,0 +1,7 @@
using UnityEngine;
namespace Reset.Units{
public interface IUnitDirectionProvider{
public Vector2 Direction{ get; }
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: ba6af7dc2e654035a720449447af3fa8
timeCreated: 1761268431

View File

@@ -8,6 +8,7 @@ using Unity.Netcode;
namespace Reset.Units{
public class Player : Unit, IKillable, IInteractable{
// IKillable
[ShowInInspector]
public float maxHealth{ get; set; }
public float currentHealth{ get; set; }
@@ -32,7 +33,7 @@ namespace Reset.Units{
public float lastKnownReviveTime;
void Awake(){
maxHealth = 20f;
}
void AttachToGame(){
@@ -83,20 +84,27 @@ namespace Reset.Units{
// Tell every unit to set the new health value
if (UnitIsNetworked()) {
SetHealthRpc(newHealth);
} else {
SetHealth(newHealth);
}
}
[Rpc(SendTo.Everyone)]
public void SetHealthRpc(float health){
// Set health to new value, clamped to 0
health = Mathf.Max(health, 0f);
currentHealth = health;
SetHealth(health);
// For local players, run things based on health value.
// This Rpc is global but only the owner checks health
CheckHealth();
}
private void SetHealth(float health){
health = Mathf.Max(health, 0f);
currentHealth = health;
}
void CheckHealth(){
if (UnitIsLocal()){
if (currentHealth <= 0f) {

View File

@@ -13,7 +13,7 @@ using Sirenix.OdinInspector;
using Unity.Cinemachine;
using Object = UnityEngine.Object;
public class PlayerControls : MonoBehaviour{
public class PlayerControls : MonoBehaviour, IUnitDirectionProvider{
// References
private Player thisPlayer;
@@ -21,6 +21,9 @@ public class PlayerControls : MonoBehaviour{
private SignalDefinition inputSignal;
private SignalDefinition blockSignal;
// IUnitDirectionProvider
public Vector2 Direction => rawMoveInput;
// TODO: Turn these into accessors
public Vector2 rawMoveInput;
public Vector2 rawLookInput;

View File

@@ -22,8 +22,16 @@ public class SettingValue<T> : IResettableSettingValue{
public T Value{
get => currentValue;
set => targetValue = value;
set{
if (IsSmoothable()) {
targetValue = value;
} else {
currentValue = value;
targetValue = value;
}
}
}
[HorizontalGroup("Settings"), VerticalGroup("Settings/Smoothing"), BoxGroup("Settings/Smoothing/Smoothing"), LabelText("Current"), ShowIf("@IsSmoothable()")]
public float currentSmoothing;
[HorizontalGroup("Settings"), VerticalGroup("Settings/Value"), BoxGroup("Settings/Value/Value"), LabelText("Default")]

View File

@@ -24,6 +24,14 @@ namespace Reset.Units{
get{ if (!_graph) { _graph = GetComponent<GraphOwner>(); } return _graph; }
}
private UnitCombat _combat;
internal UnitCombat Combat{
get {
if (_combat == null) { _combat = GetComponent<UnitCombat>(); }
return _combat;
}
}
// Debug and Gizmos
public NetworkVariable<FixedString64Bytes> graphStateAsString;
@@ -94,13 +102,18 @@ namespace Reset.Units{
private void DrawStateGizmo(){
// Get state from FSM
if (UnitIsLocal()) {
string stateString = "";
if (UnitIsNetworked() && UnitIsLocal()) {
graphStateAsString.Value = FSM.currentRootStateName;
stateString = graphStateAsString.Value.ToString();
} else {
stateString = FSM.currentRootStateName;
}
// Draw state gizmo, regardless of if local or not
try {
Draw.ingame.Label2D(transform.position + Vector3.up * 2.7f, graphStateAsString.Value.ToString(),
Draw.ingame.Label2D(transform.position + Vector3.up * 2.7f, stateString,
Color.red);
} catch (Exception e) {
Debug.LogError(e.Message);

View File

@@ -5,6 +5,14 @@ namespace Reset.Units{
public class UnitAnimation : UnitComponent{
public Animator modelAnimator;
public Transform headBone;
public Transform neckBone;
public Vector3 headRotOffset;
public Vector3 neckRotOffset;
public Vector3 rotationLimit;
// Temporary
private float inputMagnitude;
@@ -18,8 +26,47 @@ namespace Reset.Units{
} catch (Exception e) {
Debug.LogError($"Failed in setting X and Y move direction floats: {e.Message}");
}
}
}
private void LateUpdate(){
// TurnHead();
}
void TurnHead(){
var targetObject = (Unit.Combat as EnemyCombat).UnitTarget;
if (targetObject) {
Vector3 headDirToTarget = headBone.position.DirectionTo(targetObject.transform.position);
Vector3 neckDirToTarget = neckBone.position.DirectionTo(targetObject.transform.position);
Quaternion newHeadRot = Quaternion.LookRotation(headDirToTarget);
Quaternion newNeckRot = Quaternion.LookRotation(neckDirToTarget);
Quaternion offsetHeadRot = Quaternion.Euler(headRotOffset);
Quaternion offsetNeckRot = Quaternion.Euler(neckRotOffset);
Debug.Log(offsetNeckRot.eulerAngles);
Vector3 clampedHeadRot = new Vector3(
Mathf.Clamp(newHeadRot.eulerAngles.x, -rotationLimit.x, rotationLimit.x),
Mathf.Clamp(newHeadRot.eulerAngles.y, -rotationLimit.y, rotationLimit.y),
Mathf.Clamp(newHeadRot.eulerAngles.z, -rotationLimit.z, rotationLimit.z)
);
Vector3 clampedNeckRot = new Vector3(
Mathf.Clamp(newNeckRot.eulerAngles.x, -rotationLimit.x, rotationLimit.x),
Mathf.Clamp(newNeckRot.eulerAngles.y, -rotationLimit.y, rotationLimit.y),
Mathf.Clamp(newNeckRot.eulerAngles.z, -rotationLimit.z, rotationLimit.z)
);
Quaternion outputHeadRot = Quaternion.Lerp(headBone.transform.rotation, Quaternion.Euler(clampedHeadRot), .8f);
Quaternion outputNeckRot = Quaternion.Lerp(neckBone.transform.rotation, Quaternion.Euler(clampedNeckRot), .2f);
headBone.transform.rotation = offsetHeadRot * headBone.transform.rotation * outputHeadRot;
neckBone.transform.rotation = (offsetNeckRot * neckBone.transform.rotation * outputNeckRot);
}
}
}
}

View File

@@ -1,4 +1,13 @@
namespace Reset.Units{
public enum UnitFacingDirection{
TowardsTarget = 0,
MatchInput,
MatchCamera,
Static,
Momentum,
SpecifiedDirection
}
public enum PlayerFacingDirection{
TowardsTarget = 0,
MatchInput,

View File

@@ -31,7 +31,7 @@ namespace Reset.Units{
[Title("Gravity Scale"), HideLabel, InlineProperty] public SettingValue<float> gravityScale = new SettingValue<float>(1f);
// Rotation
[Title("Rotate Facing"), HideLabel, InlineProperty] public SettingValue<PlayerFacingDirection> facingDirection = new SettingValue<PlayerFacingDirection>(initValue: PlayerFacingDirection.Momentum);
[Title("Rotate Facing"), HideLabel, InlineProperty] public SettingValue<UnitFacingDirection> facingDirection = new SettingValue<UnitFacingDirection>(initValue: UnitFacingDirection.Momentum);
[Title("Rotation Speed"), HideLabel, InlineProperty] public SettingValue<float> rotationSpeed = new SettingValue<float>(5f);

View File

@@ -5,7 +5,7 @@ using Sirenix.OdinInspector;
using Unity.Netcode;
namespace Reset.Units{
public class UnitMovementHandler : UnitComponent{
public class UnitMovementHandler : UnitComponent {
[ShowInInspector, InlineProperty, HideLabel, FoldoutGroup("Resolved Movement", expanded: true)]
public ResolvedMovement resolvedMovement;
@@ -19,8 +19,8 @@ namespace Reset.Units{
// References
private CharacterController controller;
private PlayerControls controls;
private LockOnManager lockOnManager;
private IUnitDirectionProvider directionProvider;
private IUnitTargetProvider targetProvider;
// Movement Data
[ShowInInspector, PropertyOrder(2), FoldoutGroup("Movement Data", expanded: true), InlineProperty, HideLabel] public UnitMovementData data = new();
@@ -30,8 +30,8 @@ namespace Reset.Units{
void Awake(){
controller = GetComponent<CharacterController>();
controls = GetComponent<PlayerControls>();
lockOnManager = GetComponent<LockOnManager>();
directionProvider = GetComponent<IUnitDirectionProvider>();
targetProvider = GetComponent<IUnitTargetProvider>();
InitAllSettings();
}
@@ -59,10 +59,12 @@ namespace Reset.Units{
// Update the direction, called every frame
private void UpdateCurrentDirection(){
// Get input value
Vector2 targetDirection = new Vector2(controls.rawMoveInput.x, controls.rawMoveInput.y);
Vector2 targetDirection = new Vector2(directionProvider.Direction.x, directionProvider.Direction.y);
// Rotate input by camera rotation (instead of rotating the output direction by camera rotation)
if (GetComponent<Player>()) {
targetDirection = (Camera.main.transform.rotation * targetDirection.ToVector3()).ToVector2();
}
// Deadzone
if (targetDirection.magnitude < .1f) {
@@ -97,7 +99,7 @@ namespace Reset.Units{
newDirection = Vector2.SmoothDamp(currentDirection, targetDirection, ref refVelocityDirectionChangingHardness, data.directionChangingSoftness.Value * data.airDirectionDecay.Value * Time.deltaTime);
}
newDirection = Vector3.Slerp(resolvedMovement.moveDirection.World, newDirection, controls.rawMoveInput.magnitude);
newDirection = Vector3.Slerp(resolvedMovement.moveDirection.World, newDirection, directionProvider.Direction.magnitude);
// Commit the new direction
resolvedMovement.moveDirection.World = newDirection;
@@ -108,7 +110,7 @@ namespace Reset.Units{
// ""Smooth"" the speed
float smoothedSpeed;
if (resolvedMovement.moveDirection.Local.magnitude < controls.rawMoveInput.magnitude) {
if (resolvedMovement.moveDirection.Local.magnitude < directionProvider.Direction.magnitude) {
smoothedSpeed = Mathf.MoveTowards(resolvedMovement.moveSpeed, data.moveSpeed.Value, data.acceleration.Value * Time.deltaTime);
} else {
smoothedSpeed = Mathf.MoveTowards(resolvedMovement.moveSpeed, 0f, data.deacceleration.Value * Time.deltaTime);
@@ -135,42 +137,42 @@ namespace Reset.Units{
// Update the rotation, called every frame
private void UpdateCurrentRotation(){
// Get input value
Vector3 inputMovement = new Vector3(controls.rawMoveInput.x, 0f, controls.rawMoveInput.y);
Vector3 inputMovement = new Vector3(directionProvider.Direction.x, 0f, directionProvider.Direction.y);
Quaternion targetRotation = Quaternion.identity;
// Switch the desired rotation based on current movement setting
switch (data.facingDirection.Value) {
// Just look at target
case PlayerFacingDirection.TowardsTarget:
case UnitFacingDirection.TowardsTarget:
// Look directly at the target
if (lockOnManager.mainTarget == null) {
if (targetProvider.UnitTarget == null) {
Debug.LogError("Trying to rotate towards a target but there is no target. Forcing rotation to Static and continuing");
data.facingDirection.Value = PlayerFacingDirection.Static;
data.facingDirection.currentValue = PlayerFacingDirection.Static;
data.facingDirection.Value = UnitFacingDirection.Static;
data.facingDirection.currentValue = UnitFacingDirection.Static;
targetRotation = transform.rotation;
break;
}
targetRotation = Quaternion.LookRotation(transform.position.DirectionTo(lockOnManager.mainTarget.gameObject.transform.position));
targetRotation = Quaternion.LookRotation(transform.position.DirectionTo(targetProvider.UnitTarget.transform.position));
break;
case PlayerFacingDirection.Momentum:
case UnitFacingDirection.Momentum:
// Look towards the current direction the agent is moving
if (inputMovement.magnitude > .05f){
targetRotation = Quaternion.LookRotation(resolvedMovement.moveDirection.RawWorld.ToVector3(), Vector3.up);
}
break;
case PlayerFacingDirection.MatchInput:
case UnitFacingDirection.MatchInput:
// Look towards the input direction- similar to Momentum but snappier
if (controls.rawMoveInput.magnitude < 0.05f) { break; }
if (directionProvider.Direction.magnitude < 0.05f) { break; }
targetRotation = Camera.main.transform.rotation * Quaternion.LookRotation(inputMovement);
break;
case PlayerFacingDirection.MatchCamera:
case UnitFacingDirection.MatchCamera:
// Look the same direction as the camera
targetRotation = Quaternion.Euler(Camera.main.transform.rotation.eulerAngles.Flatten(0, null, 0));
break;
case PlayerFacingDirection.Static:
case UnitFacingDirection.Static:
// Don't change
targetRotation = resolvedMovement.rotation;
break;
@@ -179,9 +181,9 @@ namespace Reset.Units{
DebugOverlayDrawer.ChangeValue("Rotation", "Target Rotation", targetRotation.eulerAngles);
// Add the current input into the created rotation
if (data.facingDirection.Value == PlayerFacingDirection.MatchCamera || data.facingDirection.Value == PlayerFacingDirection.TowardsTarget) {
if (data.facingDirection.Value == UnitFacingDirection.MatchCamera || data.facingDirection.Value == UnitFacingDirection.TowardsTarget) {
resolvedMovement.rotation = targetRotation;
} else if (controls.rawMoveInput.sqrMagnitude > .1){
} else if (directionProvider.Direction.sqrMagnitude > .1){
resolvedMovement.rotation = targetRotation;
}
@@ -391,6 +393,7 @@ namespace Reset.Units{
public void OverwriteDirectionFromInput(Vector2 value, float priority, float speed = Mathf.Infinity){ // Old
Debug.LogError("Using an old movement command! Switch to one of the new alternatives!");
}
}
}

View File

@@ -0,0 +1,93 @@
using System.Collections;
using System.Collections.Generic;
using System.Numerics;
using Pathfinding;
using Pathfinding.Drawing;
using UnityEngine;
using Vector2 = UnityEngine.Vector2;
using Vector3 = UnityEngine.Vector3;
namespace Reset.Units{
[RequireComponent(typeof(Seeker))]
public class UnitPathfinding : UnitComponent, IUnitDirectionProvider{
public Vector2 Direction{ get; set; }
public bool pathfindingEnabled;
public Seeker seeker;
public float nextWaypointDistance = 3;
private int currentWaypoint;
public Path path;
public bool reachedEndOfPath;
public void Start(){
seeker = GetComponent<Seeker>();
Enemy thisEnemy = (Unit as Enemy);
if (thisEnemy.relatedSpawner){
seeker.graphMask = GraphMask.FromGraph(thisEnemy.relatedSpawner.relatedGraph);
} else {
Debug.LogWarning("Creating a graph for a singular enemy is not yet implemented. Graph mask not set on this unit.", transform);
}
}
public void AssignNewPath(Path p){
if (!p.error) {
path = p;
// Reset the waypoint counter so that we start to move towards the first point in the path
currentWaypoint = 0;
}
}
public void Update(){
FollowCurrentPath();
}
private void FollowCurrentPath(){
if (path == null) {
// We have no path to follow yet, so don't do anything
return;
}
reachedEndOfPath = false;
// The distance to the next waypoint in the path
float distanceToWaypoint;
while (true) {
// If you want maximum performance you can check the squared distance instead to get rid of a
// square root calculation. But that is outside the scope of this tutorial.
distanceToWaypoint = Vector3.Distance(transform.position, path.vectorPath[currentWaypoint]);
if (distanceToWaypoint < nextWaypointDistance) {
// Check if there is another waypoint or if we have reached the end of the path
if (currentWaypoint + 1 < path.vectorPath.Count) {
currentWaypoint++;
} else {
// Set a status variable to indicate that the agent has reached the end of the path.
// You can use this to trigger some special code if your game requires that.
reachedEndOfPath = true;
break;
}
} else {
break;
}
}
// Pass the direction to the direction handler interface
if (currentWaypoint + 1 == path.vectorPath.Count) {
Direction = (path.vectorPath[currentWaypoint] - transform.position).ToVector2();
Direction = Vector3.ClampMagnitude(Direction, 1f);
} else {
Direction = (path.vectorPath[currentWaypoint] - transform.position).normalized.ToVector2();
}
// Draw an indicator for the path
Draw.ingame.SolidCircle(path.vectorPath[currentWaypoint] + Vector3.up * .02f, Vector3.up, .3f);
Draw.ingame.Arrow(transform.position, transform.position + Direction.ToVector3(), Vector3.up, .3f);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 1a72dabd280fe71488a78596bd852afc

View File

@@ -14,7 +14,9 @@
"GUID:f2d49d9fa7e7eb3418e39723a7d3b92f",
"GUID:5540e30183c82e84b954c033c388e06c",
"GUID:fe25561d224ed4743af4c60938a59d0b",
"GUID:37e17ffe38d86ae48bc3207e83ffef88"
"GUID:37e17ffe38d86ae48bc3207e83ffef88",
"GUID:efa45043feb7e4147a305b73b5cea642",
"GUID:f4059aaf6c60a4a58a177a2609feb769"
],
"includePlatforms": [],
"excludePlatforms": [],

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a4ea9f82528f3024da71454257341643
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@


View File

@@ -0,0 +1 @@


View File

@@ -0,0 +1 @@


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