From d99b2197e50bfd872c6f86009cf37d98d223f68e Mon Sep 17 00:00:00 2001 From: "SDQHOME\\caleb" Date: Fri, 12 Jun 2026 13:58:02 +0100 Subject: [PATCH] Started working on building, next to add in spawn location for buildings for units, transporting materials from TownHall/Storage to building site, building naimation continues while building, houses spawn the correct amount of units (not just 1) --- Assets/Prefabs/Buildings/House.prefab | 2 +- Assets/Prefabs/NPC.prefab | 217 +++++++++++++++++- Assets/Scenes/SampleScene.unity | 91 ++++++++ .../Scenes/SampleScene/NavMesh-Ground.asset | Bin 16616 -> 20320 bytes Assets/Scripts/Building.cs | 2 + Assets/Scripts/JobManager.cs | 13 +- Assets/Scripts/NPC.cs | 85 ++++++- Assets/Scripts/UnitManagement.cs | 35 +++ Assets/Scripts/UnitManagement.cs.meta | 2 + .../Configs/NPC_PropBoneBindingConfig.asset | 24 ++ .../NPC_PropBoneBindingConfig.asset.meta | 8 + 11 files changed, 469 insertions(+), 10 deletions(-) create mode 100644 Assets/Scripts/UnitManagement.cs create mode 100644 Assets/Scripts/UnitManagement.cs.meta create mode 100644 Assets/Synty/Tools/SyntyPropBoneTool/Configs/NPC_PropBoneBindingConfig.asset create mode 100644 Assets/Synty/Tools/SyntyPropBoneTool/Configs/NPC_PropBoneBindingConfig.asset.meta diff --git a/Assets/Prefabs/Buildings/House.prefab b/Assets/Prefabs/Buildings/House.prefab index e9f4a632..2fc6ef7e 100644 --- a/Assets/Prefabs/Buildings/House.prefab +++ b/Assets/Prefabs/Buildings/House.prefab @@ -3803,7 +3803,7 @@ MonoBehaviour: m_EditorClassIdentifier: Assembly-CSharp::Building constructionTime: 30 constructionResources: - constructionCost: 6400000064000000 + constructionCost: 3200000032000000 buildingType: 0 unbuiltModel: {fileID: 6653159622886587193} constructingModel: {fileID: 4914126936048077074} diff --git a/Assets/Prefabs/NPC.prefab b/Assets/Prefabs/NPC.prefab index 7771235a..26e657ca 100644 --- a/Assets/Prefabs/NPC.prefab +++ b/Assets/Prefabs/NPC.prefab @@ -784,6 +784,119 @@ Transform: m_Children: [] m_Father: {fileID: 5090559939260843181} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1877628890848750148 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1880890567730925888} + - component: {fileID: 1908658883244227494} + - component: {fileID: 1898581353130709488} + - component: {fileID: 1938949062149814322} + m_Layer: 0 + m_Name: SM_Wep_Axe_09 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1880890567730925888 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1877628890848750148} + serializedVersion: 2 + m_LocalRotation: {x: -0.38268566, y: 0.0000010132788, z: 0.9238786, w: 0.000000014901159} + m_LocalPosition: {x: 0.0059671043, y: 0.00000002712477, z: 0.0015260844} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2216271485333287045} + m_LocalEulerAnglesHint: {x: 0, y: -45, z: 180} +--- !u!33 &1908658883244227494 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1877628890848750148} + m_Mesh: {fileID: 4300000, guid: aad74abaa9c929241842b49ddeee73bc, type: 3} +--- !u!23 &1898581353130709488 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1877628890848750148} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 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: 2100000, guid: 71e41e43b459a244abaf5acca76b89ee, 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_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &1938949062149814322 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1877628890848750148} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 43188902427133874, guid: 140c2933e48fd2b44af4fe01cfa50095, type: 2} --- !u!1 &2045665840315404223 GameObject: m_ObjectHideFlags: 0 @@ -847,6 +960,82 @@ Transform: m_Children: [] m_Father: {fileID: 5020240601765521152} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2554390962781056119 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5793375072013135131} + - component: {fileID: 5373371927819234237} + - component: {fileID: 7683141406849393373} + m_Layer: 3 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5793375072013135131 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2554390962781056119} + 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: + - {fileID: 4736914753969933335} + m_Father: {fileID: 9027451830861437583} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0.25, y: 0.25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5373371927819234237 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2554390962781056119} + m_CullTransparentMesh: 1 +--- !u!114 &7683141406849393373 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2554390962781056119} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0.8867924, g: 0.6398171, b: 0.08784264, 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_Sprite: {fileID: 21300000, guid: 21145fab1b19bab47a4f21391101f9aa, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &2649705847934579506 GameObject: m_ObjectHideFlags: 0 @@ -911,7 +1100,7 @@ RectTransform: m_LocalScale: {x: 1.0000001, y: 1.0000001, z: 1.0000001} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 4736914753969933335} + - {fileID: 5793375072013135131} m_Father: {fileID: 5301051924229665120} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -2714,12 +2903,12 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7849837966100312770} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 9027451830861437583} + m_Father: {fileID: 5793375072013135131} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -2963,6 +3152,7 @@ GameObject: - component: {fileID: 8714646823312657490} - component: {fileID: 75681181018508881} - component: {fileID: 7777674606204040171} + - component: {fileID: 3695866308145665832} m_Layer: 3 m_Name: NPC m_TagString: Untagged @@ -3086,6 +3276,24 @@ CharacterController: m_SkinWidth: 0.02 m_MinMoveDistance: 0.001 m_Center: {x: 0, y: 0.93, z: 0} +--- !u!114 &3695866308145665832 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8322859804011707589} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6fab5212c04fb442799fa9f3f33247ef, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Synty.Tools.SyntyPropBoneTool.PropBoneBinder + animator: {fileID: 75681181018508881} + propBoneConfig: {fileID: 11400000, guid: c23cf315e98f6074c81974a4d837b205, type: 2} + updateType: 2 + updateInEditMode: 1 + rebindOnAwake: 0 + _propBoneBindings: [] --- !u!1 &8408235103800595200 GameObject: m_ObjectHideFlags: 0 @@ -3370,7 +3578,8 @@ Transform: m_LocalPosition: {x: 0.07455006, y: 0.025735673, z: 0.00072323484} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 1880890567730925888} m_Father: {fileID: 2885384352365181324} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &9110552758642604593 diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index c981a0bb..da962d76 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -1118,6 +1118,50 @@ MonoBehaviour: m_MinRegionArea: 2 m_NavMeshData: {fileID: 23800000, guid: b2102742fa1fe07469925ad32dc6a253, type: 2} m_BuildHeightMesh: 0 +--- !u!1 &783418143 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 783418145} + - component: {fileID: 783418144} + m_Layer: 0 + m_Name: _JobManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &783418144 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 783418143} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4bd36540681fbaa4eb9be52d4b051ace, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::JobManager +--- !u!4 &783418145 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 783418143} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -7.08934, y: 0, z: -0.03749} + 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!1 &832575517 GameObject: m_ObjectHideFlags: 0 @@ -1773,6 +1817,51 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1677812918} m_CullTransparentMesh: 1 +--- !u!1 &1696539608 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1696539610} + - component: {fileID: 1696539609} + m_Layer: 0 + m_Name: _UnitManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1696539609 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1696539608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e15f1b8b2e6ff654db7a1fb788173296, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::UnitManagement + npcPrefab: {fileID: 8322859804011707589, guid: f97a75ea176e29648bedd5f9d0da92c4, type: 3} +--- !u!4 &1696539610 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1696539608} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -7.08934, y: 0, z: -0.03749} + 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!1 &1805096263 GameObject: m_ObjectHideFlags: 0 @@ -2365,6 +2454,8 @@ SceneRoots: m_ObjectHideFlags: 0 m_Roots: - {fileID: 392525274} + - {fileID: 783418145} + - {fileID: 1696539610} - {fileID: 330585546} - {fileID: 410087041} - {fileID: 832575519} diff --git a/Assets/Scenes/SampleScene/NavMesh-Ground.asset b/Assets/Scenes/SampleScene/NavMesh-Ground.asset index eba4467904ef3e53447bc8f6a75420d714785ee3..6ee7f97b0405e02bb02343728632a8e1cfd8f0f8 100644 GIT binary patch delta 4676 zcmZWtdvKIj6+gSlZo=}~5H?vt9-DUp30V?oNF7cTErT z<(_lT`<(k)E9JV!dJl1HvoG|g(Zlb)qPi2G$xB+iX=ph4 z@hccE4OBXqa9m0;!J=tbj(%}k9UlWzWS?Y489-4{OcwNGHkPF`Wi>? z&%0NfO?+thyP73sY!Bl@!=qd%To9D8{pbAKL1S~K@2OEYUJ+mF6TjqPeGv-WR>(tiG})QG{EnxXrLhno)35)@pD<3;64#URz}h zH0wc39QuxC&;XUi5F$kJae)!6gN?{<8}`dhn8V?&IxIN(+zacaT{DTLCQc3L!F|Q-z&GE23fGpvH`ZE0zJ~J z0%ozBhC9|k9~RNAp8ndb9W604tVe?aUKhC;7hzKpto{I&X_wB3ZZ@VsumSYR?Py}Z znZ(}`R21Ok80bO`wy3}wWXHY|tb;qjZNZ6n2j<9I=LJJP=^fzOGms;1dx8yM2e?*e z9p+a{enP~3KDyFDZG1{sqzQBK&3BO@}#>%h87&!Lblc;K;`gUkDrnYKN4O<*C7?<8y!5Uh5vH4s`@o zi*2J9?jLiqP(GkB_+f+dw5~qge&}v*Ur}u1G*KA4=i7^Ex79?$oy+K`U!XCVEND9j znsEgs;I6Kz)(Rz8<-0p?$#-IKbP_)oyf=!E^dA<`@8-~WQuzMk(P?>yr=IV9kDm8v zvzbDY2A6!Z4Y?P@NBVlkUL**CacOcV8&}~_jL4XG=!E1FHV=i(=|<&lVQ|+n$|cIr z8l(IK-c1C`8@>&W1)@Ek10no7qx^9_(3gT9chtdEp+QcZ$Hf^#4z*BF0gq3ES^BJA ztfbR07?Z2o1JY+?O6h-i@+sAy6DB~urL8|Ftq$k#>@W_Ez_?h4Da0B>wRp^C4UFsC zVL1%GiPug{<}`sUeO9k^(q}zB?PcjpdZ(62#6bqkcupT8WjPrzV$vyGr7^jp4q82$ z?c?Kw{0UrE+#XP-@}MVpXVTgYB4X;G(frr{EHd>v>MFPZ|Rl8fZx)9r}Y+L z+S3}a_-q|7W23{D?nUy`kZ>aMzB=T@JSIr{;m`;$fO&P8OY=>&Q4REhe-$5Jl_6Bk zIA8*X=H^f9GnW~Y&&|xf7Kh`gsI&(gCRu%RzQ|AIc} zSpg$Is{!ZIynC;Me?jfd;e*oD}1Kb&A8Uv^`()*Kc&~ee|D06PNaV^`VjNb$jx|J$oyr4?Ohw`vxDFcXaK`!arHwP1i$e&_tox#ygF-}02UHla;+ zdPde>8IKd5U{-ud42tDM*a{{e`FbYuIYKHJA9QxcowN+`t>e0wG>&%V zz2h?@^Y#$zzaLy3%QMVmdvWWR^(@t>MKyTfWh+Tgd^WlYO$tDxojnK8fiw)q+CY0) z>g@N?YCr%%_@#|M0eDQ_YyK!=h@+KFfZ0f&-SHhrQSoW%rcXaDRZuN~pVD&}3m?dx zv#_6;VKI?O7n;$6{d7@K5?8Z{6>l$cS<8>47HLT-E$ zox2asD%j*r)#Oxpi&D2!in^%u^)d})D7`D@UVn&OUTRQH(t`%mXL7520Nea@Aahs( zA~Vz?jDcLiBQZA!x=EIx{3>1XIm6DW!>NOZSsSO~tM-&#-I%f`B~#^5BUF033Q+fz zQY3MALh*iU-NQ0-`O>ans1Z#ei3e$$;o z+jjAi#OjVi*mnG0aicd?fJV1Q5<(Rv$>YJ4+;djIdF$8$=iQ09tyPzAaWaWXqdHe4 zpZyBIrpFGf5iX&Oc!3D~DA@2(25f>Gt7BUhP{#{0A>%p8Uy!#~cH`&dzruJy`fbUt zy_%cW9t@s+dU?9| z!a6c|C#H}7Id=Qp%kf