13 Commits

Author SHA1 Message Date
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
ba23cf7489 maint: installed astar pathfinding assset 2025-10-23 20:49:27 -04:00
26 changed files with 873 additions and 299 deletions

View File

@@ -1,5 +1,31 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !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: []
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 --- !u!1107 &-6638317236673258601
AnimatorStateMachine: AnimatorStateMachine:
serializedVersion: 6 serializedVersion: 6
@@ -12,6 +38,9 @@ AnimatorStateMachine:
- serializedVersion: 1 - serializedVersion: 1
m_State: {fileID: 6611013841474026752} m_State: {fileID: 6611013841474026752}
m_Position: {x: 520, y: 120, z: 0} m_Position: {x: 520, y: 120, z: 0}
- serializedVersion: 1
m_State: {fileID: -7846314796881791032}
m_Position: {x: 280, y: 40, z: 0}
m_ChildStateMachines: [] m_ChildStateMachines: []
m_AnyStateTransitions: [] m_AnyStateTransitions: []
m_EntryTransitions: [] m_EntryTransitions: []
@@ -21,7 +50,7 @@ AnimatorStateMachine:
m_EntryPosition: {x: 50, y: 120, z: 0} m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0} m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 6611013841474026752} m_DefaultState: {fileID: -7846314796881791032}
--- !u!91 &9100000 --- !u!91 &9100000
AnimatorController: AnimatorController:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -12,6 +12,13 @@ GameObject:
- component: {fileID: 2562293259993124465} - component: {fileID: 2562293259993124465}
- component: {fileID: 8206397622550667234} - component: {fileID: 8206397622550667234}
- component: {fileID: 5956987736849929195} - component: {fileID: 5956987736849929195}
- component: {fileID: 4447190118606394553}
- component: {fileID: 3375213058463339329}
- component: {fileID: 6881462958115636691}
- component: {fileID: 5075083518210584453}
- component: {fileID: 1077794308846883818}
- component: {fileID: 6620953456884791151}
- component: {fileID: 6778397863327314458}
m_Layer: 7 m_Layer: 7
m_Name: TestMonster m_Name: TestMonster
m_TagString: Untagged m_TagString: Untagged
@@ -47,7 +54,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3} m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 972023326 GlobalObjectIdHash: 1434729210
InScenePlacedSourceGlobalObjectIdHash: 0 InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0 DeferredDespawnTick: 0
Ownership: 1 Ownership: 1
@@ -73,6 +80,77 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: Core::Reset.Units.Enemy m_EditorClassIdentifier: Core::Reset.Units.Enemy
ShowTopMostFoldoutHeaderGroup: 1 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: 0}
--- !u!114 &5956987736849929195 --- !u!114 &5956987736849929195
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -85,6 +163,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: b3b4e13d59527d1429a62dde97c6a001, type: 3} m_Script: {fileID: 11500000, guid: b3b4e13d59527d1429a62dde97c6a001, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: Core::Reset.Units.UnitMovementHandler m_EditorClassIdentifier: Core::Reset.Units.UnitMovementHandler
ShowTopMostFoldoutHeaderGroup: 1
data: data:
directionChangingSoftness: directionChangingSoftness:
targetValue: 1 targetValue: 1
@@ -123,30 +202,30 @@ MonoBehaviour:
defaultSmoothing: 1 defaultSmoothing: 1
defaultEasing: 2 defaultEasing: 2
acceleration: acceleration:
targetValue: 5 targetValue: 20
currentValue: 5 currentValue: 20
targetSmoothing: 1 targetSmoothing: 1
targetEasing: 2 targetEasing: 2
currentSmoothing: 1 currentSmoothing: 1
defaultValue: 5 defaultValue: 20
defaultSmoothing: 1 defaultSmoothing: 1
defaultEasing: 2 defaultEasing: 2
deacceleration: deacceleration:
targetValue: 5 targetValue: 10
currentValue: 5 currentValue: 10
targetSmoothing: 1 targetSmoothing: 1
targetEasing: 2 targetEasing: 2
currentSmoothing: 1 currentSmoothing: 1
defaultValue: 5 defaultValue: 10
defaultSmoothing: 1 defaultSmoothing: 1
defaultEasing: 2 defaultEasing: 2
moveSpeed: moveSpeed:
targetValue: 15 targetValue: 5
currentValue: 15 currentValue: 5
targetSmoothing: 10 targetSmoothing: 10
targetEasing: 2 targetEasing: 2
currentSmoothing: 10 currentSmoothing: 10
defaultValue: 15 defaultValue: 5
defaultSmoothing: 10 defaultSmoothing: 10
defaultEasing: 2 defaultEasing: 2
gravityPower: gravityPower:
@@ -204,6 +283,196 @@ MonoBehaviour:
defaultSmoothing: 1 defaultSmoothing: 1
defaultEasing: 2 defaultEasing: 2
specifiedRotation: {x: 0, y: 0, z: 0} 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: 0}
--- !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":{}}'
_objectReferences: []
_serializedVariables: []
--- !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!114 &1077794308846883818
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: 1a67969fa2454c8f8b5c84c31c95d890, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Reset.Units.EnemyPathfinding
ShowTopMostFoldoutHeaderGroup: 1
nextWaypointDistance: 3
reachedEndOfPath: 0
--- !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!1001 &8807019661255186479 --- !u!1001 &8807019661255186479
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -1444,6 +1444,126 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Padding: {x: -8, y: -5, z: -8, w: -5} m_Padding: {x: -8, y: -5, z: -8, w: -5}
m_Softness: {x: 0, y: 0} m_Softness: {x: 0, y: 0}
--- !u!1 &332821854
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 332821856}
- component: {fileID: 332821855}
m_Layer: 0
m_Name: AstarManager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &332821855
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 332821854}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 78396926cbbfc4ac3b48fc5fc34a87d1, type: 3}
m_Name:
m_EditorClassIdentifier: AstarPathfindingProject::AstarPath
version: 1073741824
data:
dataString: UEsDBBQAAAgIAACYn+uPWR/UpwIAAOoFAAALACQAZ3JhcGgwLmpzb24KACAAAAAAAAEAGAAAgD7V3rGdAQCAPtXesZ0BAIA+1d6xnQGFVE1vGjEQ/SvI56ZaaNqE3logpIckqKTKoZvDxJ5lLYy98keARPz3jr0GFiq1EtIub77evJnZdya1a5B7Y6dWijsjkH3tsfjOPvSOxlvcwMLouXzDvc+TFL6OTpB8foKXhvB+DHNmhd5K/k0vVHQuCAxaVsauJmKBI+O8I7gC5ZBM1vgYrQl677FNDtjm51t89nb0xlF7tP/zCporWDUoItujc3/v3W/dNPWRPSJnbpSSLpNgftukJkfQuEAtkIOQQE2l8tG/RrmoPf0ZdIMfqsqhz5QsbMfSkjZtVvbdtIKtwC1bXq+gAh6Itynv/rJe9JO5smZ1u6/aL2IFX0u+/AlbDs539OzC41PaQa9BLeFF4VON+t5MrQlakNHbEEODw8G4k+rQ2ahGvjz6tVzPwND8cza71Ptm7rE59FF8vDyivxy6uTJJ+pwyWjIyjKnQ0th+UD9pYVwuQGjkSPGPsOhuVjbcSOs8mbIIGY2+M5oPCtQcs+4X0UFHei8m2JiLTRLXKEbwI2M1JjgTbFCD8tsZZfTnC3Bm6/A6s9xAPLLMLtv2t3MWkuCjf1GcmWZmfRi2pdV1aZ/3b7+f4xBcbdZ36OqH4JXUHbWj4Z4EHhmt273tirkPmwdbAe+Eedz4YHEMHlI1okMLJrqhpGWK0EGpuMupgcSIGoi/56hvDVRXJZjdG53u7uSZ6C+CFKcXwl6gf9X/VMDVkF8jH365uB4Ul9Vg+BmQV6KCiqUTkprkBjVr9cpTou3Sx140ncv+E9ibWmjSyQoL66l8W5nO5KWuzJxbRP3QZjg0i5aK0KdFTISkNufovdRpL9l7yZThSxTlIVGZhJ1svIXymKVkjXw1PiIlG6UPX8kifLhIWt1XietY/CQZKhodikepcAVNNBU7tvsDUEsDBBQAAAgIAACYn+sYgko/bAAAAHcAAAAJACQAbWV0YS5qc29uCgAgAAAAAAABABgAAIA+1d6xnQEAgD7V3rGdAQCAPtXesZ0Bq1YqSy0qzszPU7JSMNUz0TPRUVBKL0osyCgGChiCOKWZKSB2tFJSoqG5obFBorllskVqsqWZroWRgUmakaVpYmpyWkpaYppSLFB9SWVBql9ibipET0BiSUZaZl5KZl66nntRZoo7yGil2FoAUEsBAi0AFAAACAgAAJif649ZH9SnAgAA6gUAAAsAJAAAAAAAAAAAAAAAAAAAAGdyYXBoMC5qc29uCgAgAAAAAAABABgAAIA+1d6xnQEAgD7V3rGdAQCAPtXesZ0BUEsBAi0AFAAACAgAAJif6xiCSj9sAAAAdwAAAAkAJAAAAAAAAAAAAAAA9AIAAG1ldGEuanNvbgoAIAAAAAAAAQAYAACAPtXesZ0BAIA+1d6xnQEAgD7V3rGdAVBLBQYAAAAAAgACALgAAACrAwAAAAA=
file_cachedStartup: {fileID: 0}
cacheStartup: 0
showNavGraphs: 1
showUnwalkableNodes: 1
debugMode: 0
graphUpdateDebugMode: 0
debugFloor: 0
debugRoof: 1
manualDebugFloorRoof: 0
showSearchTree: 0
unwalkableNodeDebugSize: 0.3
logPathResults: 1
maxNearestNodeDistance: 100
scanOnStartup: 1
fullGetNearestSearch: 0
prioritizeGraphs: 0
prioritizeGraphsLimit: 1
colorSettings:
_SolidColor: {r: 0.11764706, g: 0.4, b: 0.7882353, a: 0.9}
_UnwalkableNode: {r: 1, g: 0, b: 0, a: 0.5}
_BoundsHandles: {r: 0.29, g: 0.454, b: 0.741, a: 0.9}
_ConnectionLowLerp: {r: 0, g: 1, b: 0, a: 0.5}
_ConnectionHighLerp: {r: 1, g: 0, b: 0, a: 0.5}
_MeshEdgeColor: {r: 0, g: 0, b: 0, a: 0.5}
_AreaColors: []
tagNames:
- Basic Ground
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
heuristic: 2
heuristicScale: 1
threadCount: 1
maxFrameTime: 1
batchGraphUpdates: 0
graphUpdateBatchingInterval: 0.2
navmeshUpdates:
updateInterval: 0
euclideanEmbedding:
mode: 0
seed: 0
pivotPointRoot: {fileID: 0}
spreadOutCount: 10
showGraphs: 1
showGraphsInStandalonePlayer: 0
--- !u!4 &332821856
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 332821854}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: -0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &358889608 --- !u!1001 &358889608
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -2326,6 +2446,10 @@ PrefabInstance:
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
objectReference: {fileID: 1814906103} objectReference: {fileID: 1814906103}
- target: {fileID: 1750107573202608168, guid: 441325715ff6aa647af490a592c0f659, type: 3}
propertyPath: m_VersionIndex
value: 744
objectReference: {fileID: 0}
- target: {fileID: 4267764818278467938, guid: 441325715ff6aa647af490a592c0f659, type: 3} - target: {fileID: 4267764818278467938, guid: 441325715ff6aa647af490a592c0f659, type: 3}
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
@@ -2386,6 +2510,10 @@ PrefabInstance:
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
objectReference: {fileID: 1101427058} objectReference: {fileID: 1101427058}
- target: {fileID: 7698775267226572509, guid: 441325715ff6aa647af490a592c0f659, type: 3}
propertyPath: m_VersionIndex
value: 547
objectReference: {fileID: 0}
- target: {fileID: 7858299310152251701, guid: 441325715ff6aa647af490a592c0f659, type: 3} - target: {fileID: 7858299310152251701, guid: 441325715ff6aa647af490a592c0f659, type: 3}
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
@@ -2398,6 +2526,10 @@ PrefabInstance:
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
objectReference: {fileID: 2089547447} objectReference: {fileID: 2089547447}
- target: {fileID: 8730273893382106019, guid: 441325715ff6aa647af490a592c0f659, type: 3}
propertyPath: m_VersionIndex
value: 1700
objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []
m_AddedGameObjects: [] m_AddedGameObjects: []
@@ -2576,6 +2708,10 @@ PrefabInstance:
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
objectReference: {fileID: 55045520} objectReference: {fileID: 55045520}
- target: {fileID: 1750107573202608168, guid: 441325715ff6aa647af490a592c0f659, type: 3}
propertyPath: m_VersionIndex
value: 744
objectReference: {fileID: 0}
- target: {fileID: 4267764818278467938, guid: 441325715ff6aa647af490a592c0f659, type: 3} - target: {fileID: 4267764818278467938, guid: 441325715ff6aa647af490a592c0f659, type: 3}
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
@@ -2636,6 +2772,10 @@ PrefabInstance:
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
objectReference: {fileID: 1718680066} objectReference: {fileID: 1718680066}
- target: {fileID: 7698775267226572509, guid: 441325715ff6aa647af490a592c0f659, type: 3}
propertyPath: m_VersionIndex
value: 547
objectReference: {fileID: 0}
- target: {fileID: 7858299310152251701, guid: 441325715ff6aa647af490a592c0f659, type: 3} - target: {fileID: 7858299310152251701, guid: 441325715ff6aa647af490a592c0f659, type: 3}
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
@@ -2648,6 +2788,10 @@ PrefabInstance:
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
objectReference: {fileID: 1139271064} objectReference: {fileID: 1139271064}
- target: {fileID: 8730273893382106019, guid: 441325715ff6aa647af490a592c0f659, type: 3}
propertyPath: m_VersionIndex
value: 1700
objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []
m_AddedGameObjects: [] m_AddedGameObjects: []
@@ -2669,6 +2813,10 @@ PrefabInstance:
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
objectReference: {fileID: 1567360890} objectReference: {fileID: 1567360890}
- target: {fileID: 986332541933419534, guid: 64aa98352a8043b489346bd369d455e9, type: 3}
propertyPath: m_VersionIndex
value: 687
objectReference: {fileID: 0}
- target: {fileID: 1340212685143914910, guid: 64aa98352a8043b489346bd369d455e9, type: 3} - target: {fileID: 1340212685143914910, guid: 64aa98352a8043b489346bd369d455e9, type: 3}
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
@@ -2681,6 +2829,10 @@ PrefabInstance:
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
objectReference: {fileID: 2121365581} objectReference: {fileID: 2121365581}
- target: {fileID: 2421113883819843321, guid: 64aa98352a8043b489346bd369d455e9, type: 3}
propertyPath: m_VersionIndex
value: 801
objectReference: {fileID: 0}
- target: {fileID: 2758870566962939460, guid: 64aa98352a8043b489346bd369d455e9, type: 3} - target: {fileID: 2758870566962939460, guid: 64aa98352a8043b489346bd369d455e9, type: 3}
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
@@ -2705,10 +2857,18 @@ PrefabInstance:
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
objectReference: {fileID: 178405908} objectReference: {fileID: 178405908}
- target: {fileID: 6299536975461695514, guid: 64aa98352a8043b489346bd369d455e9, type: 3}
propertyPath: m_VersionIndex
value: 1261
objectReference: {fileID: 0}
- target: {fileID: 6743514157665315753, guid: 64aa98352a8043b489346bd369d455e9, type: 3} - target: {fileID: 6743514157665315753, guid: 64aa98352a8043b489346bd369d455e9, type: 3}
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
objectReference: {fileID: 212772171} objectReference: {fileID: 212772171}
- target: {fileID: 6743514157665315753, guid: 64aa98352a8043b489346bd369d455e9, type: 3}
propertyPath: m_VersionIndex
value: 706
objectReference: {fileID: 0}
- target: {fileID: 6809092558047272506, guid: 64aa98352a8043b489346bd369d455e9, type: 3} - target: {fileID: 6809092558047272506, guid: 64aa98352a8043b489346bd369d455e9, type: 3}
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
@@ -2765,6 +2925,10 @@ PrefabInstance:
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
objectReference: {fileID: 1162239009} objectReference: {fileID: 1162239009}
- target: {fileID: 9062635394175851895, guid: 64aa98352a8043b489346bd369d455e9, type: 3}
propertyPath: m_VersionIndex
value: 676
objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []
m_AddedGameObjects: [] m_AddedGameObjects: []
@@ -3182,6 +3346,7 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 797489998} - component: {fileID: 797489998}
- component: {fileID: 797489997} - component: {fileID: 797489997}
- component: {fileID: 797489999}
m_Layer: 0 m_Layer: 0
m_Name: EnemySpawn m_Name: EnemySpawn
m_TagString: Untagged m_TagString: Untagged
@@ -3222,6 +3387,22 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &797489999
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 797489996}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6a634230476dc478b88eceac73b1c8a4, type: 3}
m_Name:
m_EditorClassIdentifier: AstarPathfindingProject::Pathfinding.ProceduralGraphMover
version: 1073741824
updateDistance: 10
target: {fileID: 797489998}
graphIndex: 0
--- !u!1 &804831197 --- !u!1 &804831197
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -4559,6 +4740,10 @@ PrefabInstance:
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
objectReference: {fileID: 1232968165} objectReference: {fileID: 1232968165}
- target: {fileID: 1086363638099167441, guid: 5b583673431733f4294eb175d9929f97, type: 3}
propertyPath: m_VersionIndex
value: 147
objectReference: {fileID: 0}
- target: {fileID: 1207694693265953541, guid: 5b583673431733f4294eb175d9929f97, type: 3} - target: {fileID: 1207694693265953541, guid: 5b583673431733f4294eb175d9929f97, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: -43 value: -43
@@ -4603,6 +4788,10 @@ PrefabInstance:
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
objectReference: {fileID: 1010515263} objectReference: {fileID: 1010515263}
- target: {fileID: 2742140022625329115, guid: 5b583673431733f4294eb175d9929f97, type: 3}
propertyPath: m_VersionIndex
value: 171
objectReference: {fileID: 0}
- target: {fileID: 3126855805493845587, guid: 5b583673431733f4294eb175d9929f97, type: 3} - target: {fileID: 3126855805493845587, guid: 5b583673431733f4294eb175d9929f97, type: 3}
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
@@ -4623,6 +4812,10 @@ PrefabInstance:
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
objectReference: {fileID: 1947664487} objectReference: {fileID: 1947664487}
- target: {fileID: 6692872533044386436, guid: 5b583673431733f4294eb175d9929f97, type: 3}
propertyPath: m_VersionIndex
value: 113
objectReference: {fileID: 0}
- target: {fileID: 6873792292218326133, guid: 5b583673431733f4294eb175d9929f97, type: 3} - target: {fileID: 6873792292218326133, guid: 5b583673431733f4294eb175d9929f97, type: 3}
propertyPath: m_Mesh propertyPath: m_Mesh
value: value:
@@ -6344,6 +6537,10 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z propertyPath: m_LocalEulerAnglesHint.z
value: -55.30239 value: -55.30239
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3375213058463339329, guid: 7dca717b905799e4cb7f64180d31be25, type: 3}
propertyPath: _blackboard
value:
objectReference: {fileID: 1668865131}
- target: {fileID: 3428415627849171540, guid: 7dca717b905799e4cb7f64180d31be25, type: 3} - target: {fileID: 3428415627849171540, guid: 7dca717b905799e4cb7f64180d31be25, type: 3}
propertyPath: m_LocalEulerAnglesHint.x propertyPath: m_LocalEulerAnglesHint.x
value: 28.353235 value: 28.353235
@@ -6410,7 +6607,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4118401780831850168, guid: 7dca717b905799e4cb7f64180d31be25, type: 3} - target: {fileID: 4118401780831850168, guid: 7dca717b905799e4cb7f64180d31be25, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: -0.0000009536743 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4118401780831850168, guid: 7dca717b905799e4cb7f64180d31be25, type: 3} - target: {fileID: 4118401780831850168, guid: 7dca717b905799e4cb7f64180d31be25, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
@@ -6688,58 +6885,23 @@ PrefabInstance:
propertyPath: m_Name propertyPath: m_Name
value: TestMonster (1) value: TestMonster (1)
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 9098724353270996650, guid: 7dca717b905799e4cb7f64180d31be25, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []
m_AddedGameObjects: [] m_AddedGameObjects: []
m_AddedComponents: m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 9098724353270996650, guid: 7dca717b905799e4cb7f64180d31be25, type: 3}
insertIndex: -1
addedObject: {fileID: 1668865125}
- targetCorrespondingSourceObject: {fileID: 9098724353270996650, guid: 7dca717b905799e4cb7f64180d31be25, type: 3}
insertIndex: -1
addedObject: {fileID: 1668865132}
- targetCorrespondingSourceObject: {fileID: 9098724353270996650, guid: 7dca717b905799e4cb7f64180d31be25, type: 3}
insertIndex: -1
addedObject: {fileID: 1668865131}
- targetCorrespondingSourceObject: {fileID: 9098724353270996650, guid: 7dca717b905799e4cb7f64180d31be25, type: 3}
insertIndex: -1
addedObject: {fileID: 1668865133}
- targetCorrespondingSourceObject: {fileID: 8573086128984434046, guid: 7dca717b905799e4cb7f64180d31be25, type: 3} - targetCorrespondingSourceObject: {fileID: 8573086128984434046, guid: 7dca717b905799e4cb7f64180d31be25, type: 3}
insertIndex: -1 insertIndex: -1
addedObject: {fileID: 1668865126} addedObject: {fileID: 1668865126}
m_SourcePrefab: {fileID: 100100000, guid: 7dca717b905799e4cb7f64180d31be25, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 7dca717b905799e4cb7f64180d31be25, type: 3}
--- !u!1 &1668865123 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 9098724353270996650, guid: 7dca717b905799e4cb7f64180d31be25, type: 3}
m_PrefabInstance: {fileID: 1668865122}
m_PrefabAsset: {fileID: 0}
--- !u!1 &1668865124 stripped --- !u!1 &1668865124 stripped
GameObject: GameObject:
m_CorrespondingSourceObject: {fileID: 8573086128984434046, guid: 7dca717b905799e4cb7f64180d31be25, type: 3} m_CorrespondingSourceObject: {fileID: 8573086128984434046, guid: 7dca717b905799e4cb7f64180d31be25, type: 3}
m_PrefabInstance: {fileID: 1668865122} m_PrefabInstance: {fileID: 1668865122}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!95 &1668865125
Animator:
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1668865123}
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!95 &1668865126 --- !u!95 &1668865126
Animator: Animator:
serializedVersion: 7 serializedVersion: 7
@@ -6762,183 +6924,17 @@ Animator:
m_AllowConstantClipSamplingOptimization: 1 m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0 m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0 m_WriteDefaultValuesOnDisable: 0
--- !u!114 &1668865131 --- !u!114 &1668865131 stripped
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 6881462958115636691, guid: 7dca717b905799e4cb7f64180d31be25, type: 3}
m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 1668865122}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1668865123} m_GameObject: {fileID: 0}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b98a6db0b653f764eac834f85857a9dd, type: 3} m_Script: {fileID: 11500000, guid: b98a6db0b653f764eac834f85857a9dd, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: ParadoxNotion::NodeCanvas.Framework.Blackboard m_EditorClassIdentifier: ParadoxNotion::NodeCanvas.Framework.Blackboard
_parentBlackboard: {fileID: 0}
_serializedBlackboard: '{"_variables":{}}'
_objectReferences: []
_serializedVariables: []
--- !u!114 &1668865132
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1668865123}
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: 1668865131}
--- !u!114 &1668865133
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1668865123}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b3b4e13d59527d1429a62dde97c6a001, type: 3}
m_Name:
m_EditorClassIdentifier: Core::Reset.Units.UnitMovementHandler
ShowTopMostFoldoutHeaderGroup: 1
data:
directionChangingSoftness:
targetValue: 1
currentValue: 1
targetSmoothing: 1
targetEasing: 2
currentSmoothing: 1
defaultValue: 1
defaultSmoothing: 1
defaultEasing: 2
directionSpinningHardness:
targetValue: 3
currentValue: 3
targetSmoothing: 1
targetEasing: 2
currentSmoothing: 1
defaultValue: 3
defaultSmoothing: 1
defaultEasing: 2
directionSpinningSpeed:
targetValue: 3
currentValue: 3
targetSmoothing: 1
targetEasing: 2
currentSmoothing: 1
defaultValue: 3
defaultSmoothing: 1
defaultEasing: 2
airDirectionDecay:
targetValue: 1
currentValue: 1
targetSmoothing: 1
targetEasing: 2
currentSmoothing: 1
defaultValue: 1
defaultSmoothing: 1
defaultEasing: 2
acceleration:
targetValue: 5
currentValue: 5
targetSmoothing: 1
targetEasing: 2
currentSmoothing: 1
defaultValue: 5
defaultSmoothing: 1
defaultEasing: 2
deacceleration:
targetValue: 5
currentValue: 5
targetSmoothing: 1
targetEasing: 2
currentSmoothing: 1
defaultValue: 5
defaultSmoothing: 1
defaultEasing: 2
moveSpeed:
targetValue: 15
currentValue: 15
targetSmoothing: 10
targetEasing: 2
currentSmoothing: 10
defaultValue: 15
defaultSmoothing: 10
defaultEasing: 2
gravityPower:
targetValue: 1
currentValue: 1
targetSmoothing: 1
targetEasing: 2
currentSmoothing: 1
defaultValue: 1
defaultSmoothing: 1
defaultEasing: 2
gravityMax:
targetValue: 8
currentValue: 8
targetSmoothing: 1
targetEasing: 2
currentSmoothing: 1
defaultValue: 8
defaultSmoothing: 1
defaultEasing: 2
gravityAcceleration:
targetValue: 1
currentValue: 1
targetSmoothing: 1
targetEasing: 2
currentSmoothing: 1
defaultValue: 1
defaultSmoothing: 1
defaultEasing: 2
gravityScale:
targetValue: 1
currentValue: 1
targetSmoothing: 1
targetEasing: 2
currentSmoothing: 1
defaultValue: 1
defaultSmoothing: 1
defaultEasing: 2
facingDirection:
targetValue: 4
currentValue: 4
targetSmoothing: 1
targetEasing: 2
currentSmoothing: 1
defaultValue: 4
defaultSmoothing: 1
defaultEasing: 2
rotationSpeed:
targetValue: 5
currentValue: 5
targetSmoothing: 1
targetEasing: 2
currentSmoothing: 1
defaultValue: 5
defaultSmoothing: 1
defaultEasing: 2
specifiedRotation: {x: 0, y: 0, z: 0}
--- !u!1 &1698015116 --- !u!1 &1698015116
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -9467,3 +9463,4 @@ SceneRoots:
- {fileID: 1291419217} - {fileID: 1291419217}
- {fileID: 797489998} - {fileID: 797489998}
- {fileID: 1668865122} - {fileID: 1668865122}
- {fileID: 332821856}

View File

@@ -8,7 +8,7 @@ namespace Reset.Units {
[Category("Reset/Movement")] [Category("Reset/Movement")]
public class ChangeRotationSettings : ActionTask<UnitMovementHandler> { 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"); [SerializeField] public FloatValueGroup rotationSpeed = new (newLabel: "Rotation Speed");
//Use for initialization. This is called only once in the lifetime of the task. //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; using Vector3 = UnityEngine.Vector3;
namespace Reset.Units{ namespace Reset.Units{
public class LockOnManager : MonoBehaviour{ public class LockOnManager : UnitComponent, IUnitTargetProvider {
public class ActiveLockOnTarget{ public class ActiveLockOnTarget{
public GameObject gameObject; public GameObject gameObject;
public float targetWeight; public float targetWeight;
@@ -24,6 +24,9 @@ namespace Reset.Units{
} }
public static LockOnManager Instance; public static LockOnManager Instance;
// IUnitTargetProvider
public GameObject UnitTarget => mainTarget.gameObject;
// Lock On settings // Lock On settings
[Space(5)] public float lockOnRange = 40f; [Space(5)] public float lockOnRange = 40f;
@@ -47,13 +50,13 @@ namespace Reset.Units{
private VisualElement elementRoot; private VisualElement elementRoot;
private void Awake(){ private void Awake(){
// // Register as singleton // Register as singleton
// if (Instance == null) { if (Instance == null && Unit.UnitIsLocal()) {
// Instance = this; Instance = this;
// } else { } else {
// this.enabled = false; enabled = false;
// return; return;
// } }
// References from camera // References from camera
targetGroup = PlayerManager.Camera.transform.Find("Target Group").GetComponent<CinemachineTargetGroup>(); targetGroup = PlayerManager.Camera.transform.Find("Target Group").GetComponent<CinemachineTargetGroup>();
@@ -310,5 +313,4 @@ namespace Reset.Units{
} }
} }
} }
} }

View File

@@ -5,18 +5,20 @@ namespace Reset.Units{
private bool enabledAsHost = true; private bool enabledAsHost = true;
private Unit _unit; private Unit _unit;
internal Unit Unit{ internal Unit Unit{
get { get {
if (_unit != null) { if (_unit == null) { _unit = GetComponent<Unit>(); }
return _unit;
}
_unit = GetComponent<Unit>();
return _unit; return _unit;
} }
} }
private UnitMovementHandler _movement;
internal UnitMovementHandler Movement{
get {
if (_movement == null) { _movement = GetComponent<UnitMovementHandler>(); }
return _movement;
}
}
void DisableComponent(){ void DisableComponent(){
enabledAsHost = false; enabledAsHost = false;

View File

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

View File

@@ -0,0 +1,8 @@
using UnityEngine;
namespace Reset.Units{
public class EnemyCombat : UnitCombat, IUnitTargetProvider{
public GameObject target;
public GameObject UnitTarget => target;
}
}

View File

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

View File

@@ -0,0 +1,121 @@
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 EnemyPathfinding : UnitComponent, IUnitDirectionProvider{
public Vector2 Direction{ get; set; }
private Seeker seeker;
public float nextWaypointDistance = 3;
private int currentWaypoint;
public Path path;
public bool reachedEndOfPath;
private Coroutine wanderPathCoroutine;
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);
}
StartCoroutine(WaitForWanderPath());
}
IEnumerator WaitForWanderPath(){
yield return new WaitForSeconds(Random.Range(1f, 7f));
StartWanderPath();
wanderPathCoroutine = null;
}
void StartWanderPath(){
Enemy thisEnemy = (Unit as Enemy);
Vector3 pathTargetPos = 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;
seeker.StartPath(transform.position, pathTargetPos, OnPathComplete);
}
public void OnPathComplete(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(){
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;
if (wanderPathCoroutine == null) {
wanderPathCoroutine = StartCoroutine(WaitForWanderPath());
}
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,3 @@
fileFormatVersion: 2
guid: 1a67969fa2454c8f8b5c84c31c95d890
timeCreated: 1761268522

View File

@@ -1,47 +1,65 @@
using System.Collections.Generic; using System.Collections.Generic;
using Drawing; using Drawing;
using Pathfinding;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using UnityEngine; using UnityEngine;
public class EnemySpawn : MonoBehaviour{ namespace Reset.Units{
public float radius = 30f; public class EnemySpawn : MonoBehaviour{
public float radius = 30f;
public int minimumEnemies = 1; public int minimumEnemies = 1;
public int maximumEnemies = 5; public int maximumEnemies = 5;
public Vector2 enemyCount;
// TODO: Replace this with an Enemy selector based on difficulty, random chance, etc? public Vector2 enemyCount;
public GameObject enemy;
public List<GameObject> enemies; // TODO: Replace this with an Enemy selector based on difficulty, random chance, etc?
public GameObject enemy;
void Start(){
SpawnEnemies();
}
void SpawnEnemies(){ public List<GameObject> enemies;
int count = Random.Range(minimumEnemies, maximumEnemies + 1);
for (int i = 0; i < count; i++) { public GridGraph relatedGraph;
Vector3 newPosition = transform.position;
float randomX = Random.Range(-(radius / 2f), radius / 2f); void Start(){
float randomZ = Random.Range(-(radius / 2f), radius / 2f); CreateAstarGraph();
SpawnEnemies();
}
newPosition += new Vector3(randomX, transform.position.y, randomZ); void CreateAstarGraph(){
relatedGraph = AstarPath.active.data.AddGraph(typeof(GridGraph)) as GridGraph;
float randomRot = Random.Range(0f, 360f); relatedGraph.SetDimensions(Mathf.FloorToInt(radius) * 2, Mathf.FloorToInt(radius) * 2, 1f);
relatedGraph.collision.diameter = 3f;
GameObject newEnemy = Instantiate(enemy, newPosition, Quaternion.AngleAxis(randomRot, Vector3.up)); AstarPath.active.Scan(relatedGraph);
enemies.Add(newEnemy); 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);
}
}
// Update is called once per frame
void Update(){
Draw.WireCylinder(transform.position, transform.position + Vector3.up * 7f, radius);
} }
} }
// Update is called once per frame }
void Update()
{
Draw.WireCylinder(transform.position, transform.position + Vector3.up * 7f, radius);
}
}

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

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

View File

@@ -1,5 +1,5 @@
namespace Reset.Units{ namespace Reset.Units{
public enum PlayerFacingDirection{ public enum UnitFacingDirection{
TowardsTarget = 0, TowardsTarget = 0,
MatchInput, MatchInput,
MatchCamera, MatchCamera,

View File

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

View File

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

View File

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

View File

@@ -14,6 +14,29 @@
"com.unity.ugui": "1.0.0" "com.unity.ugui": "1.0.0"
} }
}, },
"com.arongranberg.astar": {
"version": "file:com.arongranberg.astar",
"depth": 0,
"source": "embedded",
"dependencies": {
"com.unity.burst": "1.8.7",
"com.unity.collections": "1.5.1",
"com.unity.mathematics": "1.2.6",
"com.unity.modules.animation": "1.0.0",
"com.unity.modules.assetbundle": "1.0.0",
"com.unity.modules.audio": "1.0.0",
"com.unity.modules.imgui": "1.0.0",
"com.unity.modules.particlesystem": "1.0.0",
"com.unity.modules.physics": "1.0.0",
"com.unity.modules.physics2d": "1.0.0",
"com.unity.modules.terrain": "1.0.0",
"com.unity.modules.terrainphysics": "1.0.0",
"com.unity.modules.tilemap": "1.0.0",
"com.unity.modules.ui": "1.0.0",
"com.unity.modules.uielements": "1.0.0",
"com.unity.ugui": "1.0.0"
}
},
"com.singularitygroup.hotreload": { "com.singularitygroup.hotreload": {
"version": "file:com.singularitygroup.hotreload", "version": "file:com.singularitygroup.hotreload",
"depth": 0, "depth": 0,

View File

@@ -21,6 +21,11 @@
"key": "editor.materialPalettePath", "key": "editor.materialPalettePath",
"value": "{\"m_Value\":\"Assets/ProBuilder Data/Default Material Palette.asset\"}" "value": "{\"m_Value\":\"Assets/ProBuilder Data/Default Material Palette.asset\"}"
}, },
{
"type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
"key": "VertexColorPalette.previousColorPalette",
"value": "{\"m_Value\":\"Assets/Map/Materials/BuildingsColor.asset\"}"
},
{ {
"type": "UnityEngine.ProBuilder.SemVer, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "type": "UnityEngine.ProBuilder.SemVer, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "about.identifier", "key": "about.identifier",
@@ -129,13 +134,23 @@
{ {
"type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "ShapeBuilder.LastSize.Cube", "key": "ShapeBuilder.LastSize.Cube",
"value": "{\"m_Value\":{\"x\":20.036033630371095,\"y\":1.0208016633987427,\"z\":-17.9393310546875}}" "value": "{\"m_Value\":{\"x\":1.0,\"y\":15.0,\"z\":1.0}}"
}, },
{ {
"type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "ShapeBuilder.LastSize.Stairs", "key": "ShapeBuilder.LastSize.Stairs",
"value": "{\"m_Value\":{\"x\":-7.032182693481445,\"y\":2.840894937515259,\"z\":-7.309409141540527}}" "value": "{\"m_Value\":{\"x\":-7.032182693481445,\"y\":2.840894937515259,\"z\":-7.309409141540527}}"
}, },
{
"type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "ShapeBuilder.LastSize.Prism",
"value": "{\"m_Value\":{\"x\":-17.4999942779541,\"y\":9.000001907348633,\"z\":9.0}}"
},
{
"type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "ShapeBuilder.LastSize.Plane",
"value": "{\"m_Value\":{\"x\":-1.0,\"y\":0.0,\"z\":7.0}}"
},
{ {
"type": "UnityEngine.Quaternion, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "type": "UnityEngine.Quaternion, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "ShapeBuilder.LastRotation.Cube", "key": "ShapeBuilder.LastRotation.Cube",
@@ -146,6 +161,16 @@
"key": "ShapeBuilder.LastRotation.Stairs", "key": "ShapeBuilder.LastRotation.Stairs",
"value": "{\"m_Value\":{\"x\":0.0,\"y\":0.0,\"z\":0.0,\"w\":1.0}}" "value": "{\"m_Value\":{\"x\":0.0,\"y\":0.0,\"z\":0.0,\"w\":1.0}}"
}, },
{
"type": "UnityEngine.Quaternion, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "ShapeBuilder.LastRotation.Prism",
"value": "{\"m_Value\":{\"x\":0.0,\"y\":0.0,\"z\":-0.7071067690849304,\"w\":0.7071067690849304}}"
},
{
"type": "UnityEngine.Quaternion, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "ShapeBuilder.LastRotation.Plane",
"value": "{\"m_Value\":{\"x\":0.0,\"y\":0.0,\"z\":0.0,\"w\":1.0}}"
},
{ {
"type": "UnityEngine.ProBuilder.PivotLocation, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "type": "UnityEngine.ProBuilder.PivotLocation, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "ShapeBuilder.PivotLocation.Cube", "key": "ShapeBuilder.PivotLocation.Cube",
@@ -156,6 +181,16 @@
"key": "ShapeBuilder.PivotLocation.Stairs", "key": "ShapeBuilder.PivotLocation.Stairs",
"value": "{\"m_Value\":0}" "value": "{\"m_Value\":0}"
}, },
{
"type": "UnityEngine.ProBuilder.PivotLocation, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "ShapeBuilder.PivotLocation.Prism",
"value": "{\"m_Value\":0}"
},
{
"type": "UnityEngine.ProBuilder.PivotLocation, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "ShapeBuilder.PivotLocation.Plane",
"value": "{\"m_Value\":0}"
},
{ {
"type": "UnityEngine.ProBuilder.Shapes.Shape, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "type": "UnityEngine.ProBuilder.Shapes.Shape, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "ShapeBuilder.Cube", "key": "ShapeBuilder.Cube",
@@ -166,10 +201,20 @@
"key": "ShapeBuilder.Stairs", "key": "ShapeBuilder.Stairs",
"value": "{}" "value": "{}"
}, },
{
"type": "UnityEngine.ProBuilder.Shapes.Shape, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "ShapeBuilder.Prism",
"value": "{}"
},
{
"type": "UnityEngine.ProBuilder.Shapes.Shape, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "ShapeBuilder.Plane",
"value": "{}"
},
{ {
"type": "UnityEngine.ProBuilder.SelectMode, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "type": "UnityEngine.ProBuilder.SelectMode, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "s_SelectMode", "key": "s_SelectMode",
"value": "{\"m_Value\":1}" "value": "{\"m_Value\":2}"
}, },
{ {
"type": "UnityEngine.ProBuilder.RectSelectMode, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "type": "UnityEngine.ProBuilder.RectSelectMode, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
@@ -185,6 +230,16 @@
"type": "System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "type": "System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
"key": "uv.uvEditorGridSnapIncrement", "key": "uv.uvEditorGridSnapIncrement",
"value": "{\"m_Value\":0.125}" "value": "{\"m_Value\":0.125}"
},
{
"type": "System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
"key": "ExtrudeFaces.distance",
"value": "{\"m_Value\":0.5}"
},
{
"type": "UnityEngine.ProBuilder.ExtrudeMethod, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": "editor.extrudeMethod",
"value": "{\"m_Value\":2}"
} }
] ]
} }

View File

@@ -0,0 +1,15 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &1
MonoBehaviour:
m_ObjectHideFlags: 53
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: 21f007d651ef4ab42b597f1da9ad75cf, type: 3}
m_Name:
m_EditorClassIdentifier: AstarPathfindingProjectEditor::Pathfinding.PathfindingEditorSettings
hasShownWelcomeScreen: 1