diff --git a/Assembly-CSharp-Editor.csproj b/Assembly-CSharp-Editor.csproj
index 28ddb8b..0b04632 100644
--- a/Assembly-CSharp-Editor.csproj
+++ b/Assembly-CSharp-Editor.csproj
@@ -62,6 +62,7 @@
+
diff --git a/Assembly-CSharp.csproj b/Assembly-CSharp.csproj
index de4d5c1..8a7d6b3 100644
--- a/Assembly-CSharp.csproj
+++ b/Assembly-CSharp.csproj
@@ -67,7 +67,7 @@
-
+
@@ -78,6 +78,7 @@
+
@@ -86,10 +87,12 @@
+
+
diff --git a/Assets/Data/ScriptableObjects/Creep.meta b/Assets/Data/ScriptableObjects/Creep.meta
new file mode 100644
index 0000000..010de85
--- /dev/null
+++ b/Assets/Data/ScriptableObjects/Creep.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a5c1da0f3a91f2e40b5dff67f0be3705
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Data/ScriptableObjects/Creep/Creep1.asset b/Assets/Data/ScriptableObjects/Creep/Creep1.asset
new file mode 100644
index 0000000..a252603
--- /dev/null
+++ b/Assets/Data/ScriptableObjects/Creep/Creep1.asset
@@ -0,0 +1,25 @@
+%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: f7bb664a82feb0e43b3c5f459ca775f7, type: 3}
+ m_Name: Creep1
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.CreepData
+ id: 1
+ memo: "\uAE30\uBCF81"
+ moveSpeed: 5
+ maxHp: 100
+ atkRange: 3
+ atkDamage: 20
+ atkIntervalSec: 1.5
+ cost: 1
+ weight: 1
+ modelPath: Assets/Models/PlantWarrior.fbx
+ animationControllerPath: Assets/Animations/MonsterAnimationController.controller
diff --git a/Assets/Data/ScriptableObjects/Creep/Creep1.asset.meta b/Assets/Data/ScriptableObjects/Creep/Creep1.asset.meta
new file mode 100644
index 0000000..60d9b18
--- /dev/null
+++ b/Assets/Data/ScriptableObjects/Creep/Creep1.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3d9df9cc2ed8c9e4394fa77bc21c47c6
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Data/ScriptableObjects/Tower/Tower1.asset b/Assets/Data/ScriptableObjects/Tower/Tower1.asset
index 17661e0..5e3d8cb 100644
--- a/Assets/Data/ScriptableObjects/Tower/Tower1.asset
+++ b/Assets/Data/ScriptableObjects/Tower/Tower1.asset
@@ -12,24 +12,32 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8c40fef5ebc37b743a3f225c1ca57c32, type: 3}
m_Name: Tower1
m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.TowerData
- buildingName: "\uD0C0\uC6CC"
- prefab: {fileID: 8512676738329978770, guid: 3f7838db2c2fc424d9bd9a0d243b43be, type: 3}
- icon: {fileID: 0}
id: 1
memo: "\uD0C0\uC6CC"
+ buildingName:
mana: 25
+ manpower: 10
sizeX: 4
sizeY: 10
sizeZ: 4
- placementOffset: {x: 0, y: 0, z: 0}
- allowRotation: 1
- manpower: 10
maxHp: 50
- isIndestructible: 0
- autoRegenerate: 0
- regenPerSecond: 1
atkRange: 10
- providesVision: 1
atkDamage: 5
atkIntervalSec: 2
modelPath: Assets/Models/building_tower_B_blue.fbx
+ prefab: {fileID: 8512676738329978770, guid: 3f7838db2c2fc424d9bd9a0d243b43be, type: 3}
+ icon: {fileID: 0}
+ placementOffset: {x: 0, y: 0, z: 0}
+ allowRotation: 1
+ isIndestructible: 0
+ autoRegenerate: 0
+ regenPerSecond: 1
+ providesVision: 1
+ constructionEquipment:
+ socketName: RightHand
+ equipmentPrefab: {fileID: 0}
+ attachOnStart: 1
+ detachOnEnd: 1
+ keepEquipped: 0
+ attachDelay: 0
+ detachDelay: 0
diff --git a/Assets/Data/ScriptableObjects/Tower/Tower2.asset b/Assets/Data/ScriptableObjects/Tower/Tower2.asset
index 4a5f553..8a19857 100644
--- a/Assets/Data/ScriptableObjects/Tower/Tower2.asset
+++ b/Assets/Data/ScriptableObjects/Tower/Tower2.asset
@@ -12,24 +12,32 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8c40fef5ebc37b743a3f225c1ca57c32, type: 3}
m_Name: Tower2
m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.TowerData
- buildingName: "\uBCBD"
- prefab: {fileID: 3671057791414486316, guid: ae9a9b515e1792a45887f0d967b943d6, type: 3}
- icon: {fileID: 0}
id: 2
memo: "\uBCBD"
+ buildingName:
mana: 5
+ manpower: 5
sizeX: 8
sizeY: 4
sizeZ: 3
- placementOffset: {x: 0, y: 0, z: 0}
- allowRotation: 1
- manpower: 5
maxHp: 30
- isIndestructible: 0
- autoRegenerate: 0
- regenPerSecond: 1
atkRange: 0
- providesVision: 1
atkDamage: 0
atkIntervalSec: 0
modelPath: Assets/Models/wall_straight.fbx
+ prefab: {fileID: 3671057791414486316, guid: ae9a9b515e1792a45887f0d967b943d6, type: 3}
+ icon: {fileID: 0}
+ placementOffset: {x: 0, y: 0, z: 0}
+ allowRotation: 1
+ isIndestructible: 0
+ autoRegenerate: 0
+ regenPerSecond: 1
+ providesVision: 1
+ constructionEquipment:
+ socketName: RightHand
+ equipmentPrefab: {fileID: 0}
+ attachOnStart: 1
+ detachOnEnd: 1
+ keepEquipped: 0
+ attachDelay: 0
+ detachDelay: 0
diff --git a/Assets/Data/Scripts/DataClasses/CreepData.cs b/Assets/Data/Scripts/DataClasses/CreepData.cs
new file mode 100644
index 0000000..6a608a0
--- /dev/null
+++ b/Assets/Data/Scripts/DataClasses/CreepData.cs
@@ -0,0 +1,37 @@
+// 이 파일은 자동 생성되었습니다. 직접 수정하지 마세요!
+// 생성 스크립트: DataTools/generate_csharp_classes.py
+
+using UnityEngine;
+using System.Collections.Generic; // 리스트 지원을 위해 추가
+
+namespace Northbound.Data
+{
+ [CreateAssetMenu(fileName = "CreepData", menuName = "Northbound/Creep Data")]
+ public partial class CreepData : ScriptableObject
+ {
+ [Header("기본 정보")]
+ /// 고유 ID
+ public int id;
+ /// 기획 메모
+ public string memo;
+ /// 이동 속도
+ public float moveSpeed;
+ /// 체력
+ public int maxHp;
+ /// 사정 거리
+ public int atkRange;
+ /// 데미지
+ public int atkDamage;
+ /// 공격 주기
+ public float atkIntervalSec;
+ /// 몬스터 난이도 점수
+ public int cost;
+ /// 등장 가중치
+ public float weight;
+ /// 사용할 모델의 경로
+ public string modelPath;
+ /// 사용할 애니메이션 컨트롤러의 경로
+ public string animationControllerPath;
+
+ }
+}
\ No newline at end of file
diff --git a/Assets/Data/Scripts/DataClasses/CreepData.cs.meta b/Assets/Data/Scripts/DataClasses/CreepData.cs.meta
new file mode 100644
index 0000000..7c77899
--- /dev/null
+++ b/Assets/Data/Scripts/DataClasses/CreepData.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: f7bb664a82feb0e43b3c5f459ca775f7
\ No newline at end of file
diff --git a/Assets/Data/Scripts/DataClasses/DefaultSettingsData.cs b/Assets/Data/Scripts/DataClasses/DefaultSettingsData.cs
index 1d2fbff..fb90d1d 100644
--- a/Assets/Data/Scripts/DataClasses/DefaultSettingsData.cs
+++ b/Assets/Data/Scripts/DataClasses/DefaultSettingsData.cs
@@ -7,7 +7,7 @@ using System.Collections.Generic; // 리스트 지원을 위해 추가
namespace Northbound.Data
{
[CreateAssetMenu(fileName = "DefaultSettingsData", menuName = "Northbound/DefaultSettings Data")]
- public class DefaultSettingsData : ScriptableObject
+ public partial class DefaultSettingsData : ScriptableObject
{
[Header("기본 정보")]
/// 고유 ID
diff --git a/Assets/Data/Scripts/DataClasses/MonsterData.cs b/Assets/Data/Scripts/DataClasses/MonsterData.cs
index 8262c97..de8dec6 100644
--- a/Assets/Data/Scripts/DataClasses/MonsterData.cs
+++ b/Assets/Data/Scripts/DataClasses/MonsterData.cs
@@ -7,7 +7,7 @@ using System.Collections.Generic; // 리스트 지원을 위해 추가
namespace Northbound.Data
{
[CreateAssetMenu(fileName = "MonsterData", menuName = "Northbound/Monster Data")]
- public class MonsterData : ScriptableObject
+ public partial class MonsterData : ScriptableObject
{
[Header("기본 정보")]
/// 고유 ID
diff --git a/Assets/Data/Scripts/DataClasses/PlayerData.cs b/Assets/Data/Scripts/DataClasses/PlayerData.cs
index 6bcbb8e..1c0cff1 100644
--- a/Assets/Data/Scripts/DataClasses/PlayerData.cs
+++ b/Assets/Data/Scripts/DataClasses/PlayerData.cs
@@ -7,7 +7,7 @@ using System.Collections.Generic; // 리스트 지원을 위해 추가
namespace Northbound.Data
{
[CreateAssetMenu(fileName = "PlayerData", menuName = "Northbound/Player Data")]
- public class PlayerData : ScriptableObject
+ public partial class PlayerData : ScriptableObject
{
[Header("기본 정보")]
/// 고유 ID
diff --git a/Assets/Data/Scripts/DataClasses/TowerData.cs b/Assets/Data/Scripts/DataClasses/TowerData.cs
index 46f8863..7a4e69f 100644
--- a/Assets/Data/Scripts/DataClasses/TowerData.cs
+++ b/Assets/Data/Scripts/DataClasses/TowerData.cs
@@ -1,83 +1,41 @@
+// 이 파일은 자동 생성되었습니다. 직접 수정하지 마세요!
+// 생성 스크립트: DataTools/generate_csharp_classes.py
+
using UnityEngine;
+using System.Collections.Generic; // 리스트 지원을 위해 추가
namespace Northbound.Data
{
[CreateAssetMenu(fileName = "TowerData", menuName = "Northbound/Tower Data")]
- public class TowerData : ScriptableObject
+ public partial class TowerData : ScriptableObject
{
- [Header("Building Info")]
- public string buildingName;
- public GameObject prefab;
- [Tooltip("UI에 표시될 건물 아이콘")]
- public Sprite icon;
-
- [Header("Basic Info")]
- [Tooltip("고유 ID")]
+ [Header("기본 정보")]
+ /// 고유 ID
public int id;
- [Tooltip("기획 메모")]
+ /// 기획 메모
public string memo;
- [Tooltip("건설 비용")]
+ /// 건물 이름
+ public string buildingName;
+ /// 건설 비용 (mana=20) (mana=50; iron=10)
public int mana;
-
- [Header("Grid Size")]
- [Tooltip("X 그리드 차지 공간")]
- public int sizeX = 1;
- [Tooltip("Y 그리드 차지 공간")]
- public int sizeY = 1;
- [Tooltip("Z 차지 공간")]
- public int sizeZ = 2;
-
- [Header("Placement Settings")]
- [Tooltip("Offset from grid position")]
- public Vector3 placementOffset = Vector3.zero;
- [Tooltip("Can rotate this building?")]
- public bool allowRotation = true;
-
- [Header("Construction Settings")]
- [Tooltip("건설 완료에 필요한 총 작업량")]
- public float manpower = 100f;
-
- [Header("Health Settings")]
- [Tooltip("체력")]
- public int maxHp = 100;
- [Tooltip("Can this building be damaged?")]
- public bool isIndestructible = false;
- [Tooltip("Auto-regenerate health over time")]
- public bool autoRegenerate = false;
- [Tooltip("Health regeneration per second")]
- public int regenPerSecond = 1;
-
- [Header("Vision Settings")]
- [Tooltip("사정거리")]
- public int atkRange = 15;
- [Tooltip("Does this building provide vision?")]
- public bool providesVision = true;
-
- [Header("Attack Settings")]
- [Tooltip("데미지")]
- public int atkDamage = 10;
- [Tooltip("공격 주기")]
- public float atkIntervalSec = 1f;
-
- [Header("Model Settings")]
- [Tooltip("모델 경로")]
+ /// 건설 노동량
+ public float manpower;
+ /// X 그리드 차지 공간
+ public int sizeX;
+ /// Y 그리드 차지 공간
+ public int sizeY;
+ /// Z 차지 공간
+ public int sizeZ;
+ /// 체력
+ public int maxHp;
+ /// 사정거리
+ public int atkRange;
+ /// 데미지
+ public int atkDamage;
+ /// 공격 주기
+ public float atkIntervalSec;
+ /// 모델 경로
public string modelPath;
- [Header("Properties for convenience")]
- public int width => sizeX;
- public int length => sizeY;
- public float height => sizeY;
- public int maxHealth => maxHp;
- public float visionRange => atkRange;
- public float requiredWorkAmount => manpower;
-
- public Vector3 GetSize(int rotation)
- {
- // Rotation 0,180 = normal, 90,270 = swap width/length
- bool isRotated = (rotation == 1 || rotation == 3);
- float w = isRotated ? length : width;
- float l = isRotated ? width : length;
- return new Vector3(w, sizeY, l);
- }
}
-}
+}
\ No newline at end of file
diff --git a/Assets/Data/Scripts/DataClasses/TowerDataExtensions.cs b/Assets/Data/Scripts/DataClasses/TowerDataExtensions.cs
new file mode 100644
index 0000000..a188c6a
--- /dev/null
+++ b/Assets/Data/Scripts/DataClasses/TowerDataExtensions.cs
@@ -0,0 +1,52 @@
+using UnityEngine;
+using Northbound;
+
+namespace Northbound.Data
+{
+ public partial class TowerData
+ {
+ [Header("Runtime References")]
+ [Tooltip("Prefab reference - set by data pipeline")]
+ public GameObject prefab;
+ [Tooltip("UI icon")]
+ public Sprite icon;
+
+ [Header("Placement Settings")]
+ [Tooltip("Offset from grid position")]
+ public Vector3 placementOffset = Vector3.zero;
+ [Tooltip("Can rotate this building?")]
+ public bool allowRotation = true;
+
+ [Header("Health Settings")]
+ [Tooltip("Can this building be damaged?")]
+ public bool isIndestructible = false;
+ [Tooltip("Auto-regenerate health over time")]
+ public bool autoRegenerate = false;
+ [Tooltip("Health regeneration per second")]
+ public int regenPerSecond = 1;
+
+ [Header("Vision Settings")]
+ [Tooltip("Does this building provide vision?")]
+ public bool providesVision = true;
+
+ [Header("Construction Settings")]
+ [Tooltip("건설 시 사용할 도구")]
+ public EquipmentData constructionEquipment;
+
+ [Header("Properties for convenience")]
+ public int width => sizeX;
+ public int length => sizeY;
+ public float height => sizeY;
+ public int maxHealth => maxHp;
+ public float visionRange => atkRange;
+ public float requiredWorkAmount => manpower;
+
+ public Vector3 GetSize(int rotation)
+ {
+ bool isRotated = (rotation == 1 || rotation == 3);
+ float w = isRotated ? length : width;
+ float l = isRotated ? width : length;
+ return new Vector3(w, sizeY, l);
+ }
+ }
+}
diff --git a/Assets/Data/Scripts/DataClasses/TowerDataExtensions.cs.meta b/Assets/Data/Scripts/DataClasses/TowerDataExtensions.cs.meta
new file mode 100644
index 0000000..0ea9acb
--- /dev/null
+++ b/Assets/Data/Scripts/DataClasses/TowerDataExtensions.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: fc31df76646aef242938ae1ab8547e0d
\ No newline at end of file
diff --git a/Assets/Data/Templates/CreepTemplate.prefab b/Assets/Data/Templates/CreepTemplate.prefab
new file mode 100644
index 0000000..8c35bd8
--- /dev/null
+++ b/Assets/Data/Templates/CreepTemplate.prefab
@@ -0,0 +1,212 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3810918154428190126
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 244366501961263783}
+ - component: {fileID: 6694091345637567571}
+ - component: {fileID: 876002834352819743}
+ - component: {fileID: 3376121002006894933}
+ - component: {fileID: 4485945348237935463}
+ - component: {fileID: 3318886927439461238}
+ - component: {fileID: 6023907831447366429}
+ - component: {fileID: 8728041163683826261}
+ - component: {fileID: 3928237758911375249}
+ m_Layer: 11
+ m_Name: CreepTemplate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &244366501961263783
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3810918154428190126}
+ 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!136 &6694091345637567571
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3810918154428190126}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Height: 2
+ m_Direction: 1
+ m_Center: {x: 0, y: 1, z: 0}
+--- !u!114 &876002834352819743
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3810918154428190126}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
+ GlobalObjectIdHash: 437508337
+ InScenePlacedSourceGlobalObjectIdHash: 0
+ DeferredDespawnTick: 0
+ Ownership: 1
+ AlwaysReplicateAsRoot: 0
+ SynchronizeTransform: 1
+ ActiveSceneSynchronization: 0
+ SceneMigrationSynchronization: 0
+ SpawnWithObservers: 1
+ DontDestroyWithOwner: 0
+ AutoObjectParentSync: 1
+ SyncOwnerTransformWhenParented: 1
+ AllowOwnerToParent: 0
+--- !u!114 &3376121002006894933
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3810918154428190126}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 345fc6e7d4f06314f8b548129700eccb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.EnemyUnit
+ ShowTopMostFoldoutHeaderGroup: 1
+ enemyTeam: 2
+ maxHealth: 100
+ damageEffectPrefab: {fileID: 0}
+ destroyEffectPrefab: {fileID: 0}
+--- !u!195 &4485945348237935463
+NavMeshAgent:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3810918154428190126}
+ m_Enabled: 1
+ m_AgentTypeID: 0
+ m_Radius: 0.5
+ m_Speed: 3.5
+ m_Acceleration: 8
+ avoidancePriority: 50
+ m_AngularSpeed: 120
+ m_StoppingDistance: 0
+ m_AutoTraverseOffMeshLink: 1
+ m_AutoBraking: 1
+ m_AutoRepath: 1
+ m_Height: 2
+ m_BaseOffset: 0
+ m_WalkableMask: 4294967295
+ m_ObstacleAvoidanceType: 4
+--- !u!114 &3318886927439461238
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3810918154428190126}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 453e726e48d16214f84c6d5737edd7df, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.EnemyAIController
+ ShowTopMostFoldoutHeaderGroup: 1
+ aiType: 2
+ detectionRange: 15
+ detectionAngle: 120
+ playerLayer:
+ serializedVersion: 2
+ m_Bits: 640
+ obstacleLayer:
+ serializedVersion: 2
+ m_Bits: 1152
+ maxChaseDistance: 30
+ chaseGiveUpDistance: 25
+ attackRange: 2
+ attackInterval: 1.5
+ attackDamage: 10
+ moveSpeed: 3.5
+ chaseSpeedMultiplier: 1.5
+ showDebugInfo: 1
+--- !u!95 &6023907831447366429
+Animator:
+ serializedVersion: 7
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3810918154428190126}
+ m_Enabled: 1
+ m_Avatar: {fileID: 0}
+ m_Controller: {fileID: 9100000, guid: 0a6254dd97e2e8a47ab5cd5c1a629717, 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 &8728041163683826261
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3810918154428190126}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2b2a547d86f65d64a93a7a3c415d1ce2, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.MonsterAnimationController
+ ShowTopMostFoldoutHeaderGroup: 1
+ speedParam: Speed
+ attackTriggerParam: Attack
+ isMovingParam: IsMoving
+ autoLoadFromMonsterData: 1
+ debugLogging: 0
+--- !u!114 &3928237758911375249
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3810918154428190126}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 85e4c68e85ef1704b83cecb71de7d67a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.CreepDataComponent
+ creepData: {fileID: 0}
+ autoApplyOnAwake: 1
diff --git a/Assets/Data/Templates/CreepTemplate.prefab.meta b/Assets/Data/Templates/CreepTemplate.prefab.meta
new file mode 100644
index 0000000..ef84c3b
--- /dev/null
+++ b/Assets/Data/Templates/CreepTemplate.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: ed91faf6ce548f94b80fff463c6c42e2
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/DefaultNetworkPrefabs.asset b/Assets/DefaultNetworkPrefabs.asset
index 5388f8c..6a746f9 100644
--- a/Assets/DefaultNetworkPrefabs.asset
+++ b/Assets/DefaultNetworkPrefabs.asset
@@ -139,3 +139,18 @@ MonoBehaviour:
SourcePrefabToOverride: {fileID: 0}
SourceHashToOverride: 0
OverridingTargetPrefab: {fileID: 0}
+ - Override: 0
+ Prefab: {fileID: 3810918154428190126, guid: ed91faf6ce548f94b80fff463c6c42e2, type: 3}
+ SourcePrefabToOverride: {fileID: 0}
+ SourceHashToOverride: 0
+ OverridingTargetPrefab: {fileID: 0}
+ - Override: 0
+ Prefab: {fileID: 4538112939981844081, guid: 79ce9cde6263e34498c5011cdcf36695, type: 3}
+ SourcePrefabToOverride: {fileID: 0}
+ SourceHashToOverride: 0
+ OverridingTargetPrefab: {fileID: 0}
+ - Override: 0
+ Prefab: {fileID: 3360908504529629757, guid: 41d918243a20cbd4d8f1558ac8345e9b, type: 3}
+ SourcePrefabToOverride: {fileID: 0}
+ SourceHashToOverride: 0
+ OverridingTargetPrefab: {fileID: 0}
diff --git a/Assets/External/Kaykit Plant Warrior.meta b/Assets/External/Kaykit Plant Warrior.meta
new file mode 100644
index 0000000..7933bd7
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 54bd923b7725e12459eaed04d33a5c48
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/External/Kaykit Plant Warrior/Animations.meta b/Assets/External/Kaykit Plant Warrior/Animations.meta
new file mode 100644
index 0000000..f818617
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Animations.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 75ee017f5669e634c9ca6c410cc48fc8
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/External/Kaykit Plant Warrior/Animations/Click here for more Free Animations.url b/Assets/External/Kaykit Plant Warrior/Animations/Click here for more Free Animations.url
new file mode 100644
index 0000000..837f77e
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Animations/Click here for more Free Animations.url
@@ -0,0 +1,6 @@
+[{000214A0-0000-0000-C000-000000000046}]
+Prop3=19,11
+[InternetShortcut]
+IDList=
+URL=https://kaylousberg.itch.io/kaykit-character-animations
+HotKey=0
diff --git a/Assets/External/Kaykit Plant Warrior/Animations/Click here for more Free Animations.url.meta b/Assets/External/Kaykit Plant Warrior/Animations/Click here for more Free Animations.url.meta
new file mode 100644
index 0000000..a817a9f
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Animations/Click here for more Free Animations.url.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 8763aa09260d6ac409f2707855fa5443
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/External/Kaykit Plant Warrior/Animations/fbx.meta b/Assets/External/Kaykit Plant Warrior/Animations/fbx.meta
new file mode 100644
index 0000000..efc0ea6
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Animations/fbx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b0874cb7ca57c3d49a29ed6d136ab653
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/External/Kaykit Plant Warrior/Animations/fbx/Rig_Medium.meta b/Assets/External/Kaykit Plant Warrior/Animations/fbx/Rig_Medium.meta
new file mode 100644
index 0000000..15103a8
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Animations/fbx/Rig_Medium.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6b8d81791453f9d458015812a83e2c39
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/External/Kaykit Plant Warrior/Animations/fbx/Rig_Medium/Rig_Medium_General.fbx b/Assets/External/Kaykit Plant Warrior/Animations/fbx/Rig_Medium/Rig_Medium_General.fbx
new file mode 100644
index 0000000..2abcd06
Binary files /dev/null and b/Assets/External/Kaykit Plant Warrior/Animations/fbx/Rig_Medium/Rig_Medium_General.fbx differ
diff --git a/Assets/External/Kaykit Plant Warrior/Animations/fbx/Rig_Medium/Rig_Medium_General.fbx.meta b/Assets/External/Kaykit Plant Warrior/Animations/fbx/Rig_Medium/Rig_Medium_General.fbx.meta
new file mode 100644
index 0000000..4df50b7
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Animations/fbx/Rig_Medium/Rig_Medium_General.fbx.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: 8872ce421a78bdd4eb1f5c8fc78e87c9
+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:
diff --git a/Assets/External/Kaykit Plant Warrior/Animations/fbx/Rig_Medium/Rig_Medium_MovementBasic.fbx b/Assets/External/Kaykit Plant Warrior/Animations/fbx/Rig_Medium/Rig_Medium_MovementBasic.fbx
new file mode 100644
index 0000000..afbc674
Binary files /dev/null and b/Assets/External/Kaykit Plant Warrior/Animations/fbx/Rig_Medium/Rig_Medium_MovementBasic.fbx differ
diff --git a/Assets/External/Kaykit Plant Warrior/Animations/fbx/Rig_Medium/Rig_Medium_MovementBasic.fbx.meta b/Assets/External/Kaykit Plant Warrior/Animations/fbx/Rig_Medium/Rig_Medium_MovementBasic.fbx.meta
new file mode 100644
index 0000000..53242da
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Animations/fbx/Rig_Medium/Rig_Medium_MovementBasic.fbx.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: 596f19e97b943af4f8167f39421d88ed
+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:
diff --git a/Assets/External/Kaykit Plant Warrior/Animations/gltf.meta b/Assets/External/Kaykit Plant Warrior/Animations/gltf.meta
new file mode 100644
index 0000000..52bb593
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Animations/gltf.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5d922eec39a80ae4ba3d599b6825af8b
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/External/Kaykit Plant Warrior/Animations/gltf/Rig_Medium.meta b/Assets/External/Kaykit Plant Warrior/Animations/gltf/Rig_Medium.meta
new file mode 100644
index 0000000..c87140d
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Animations/gltf/Rig_Medium.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c9f6f1074733b2d41b39d4510728a029
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/External/Kaykit Plant Warrior/Animations/gltf/Rig_Medium/Rig_Medium_General.glb b/Assets/External/Kaykit Plant Warrior/Animations/gltf/Rig_Medium/Rig_Medium_General.glb
new file mode 100644
index 0000000..5d16cb6
Binary files /dev/null and b/Assets/External/Kaykit Plant Warrior/Animations/gltf/Rig_Medium/Rig_Medium_General.glb differ
diff --git a/Assets/External/Kaykit Plant Warrior/Animations/gltf/Rig_Medium/Rig_Medium_General.glb.meta b/Assets/External/Kaykit Plant Warrior/Animations/gltf/Rig_Medium/Rig_Medium_General.glb.meta
new file mode 100644
index 0000000..4006736
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Animations/gltf/Rig_Medium/Rig_Medium_General.glb.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: bd4101a0e02dd1b4bbccff629b1fde15
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/External/Kaykit Plant Warrior/Animations/gltf/Rig_Medium/Rig_Medium_MovementBasic.glb b/Assets/External/Kaykit Plant Warrior/Animations/gltf/Rig_Medium/Rig_Medium_MovementBasic.glb
new file mode 100644
index 0000000..98e965e
Binary files /dev/null and b/Assets/External/Kaykit Plant Warrior/Animations/gltf/Rig_Medium/Rig_Medium_MovementBasic.glb differ
diff --git a/Assets/External/Kaykit Plant Warrior/Animations/gltf/Rig_Medium/Rig_Medium_MovementBasic.glb.meta b/Assets/External/Kaykit Plant Warrior/Animations/gltf/Rig_Medium/Rig_Medium_MovementBasic.glb.meta
new file mode 100644
index 0000000..797920a
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Animations/gltf/Rig_Medium/Rig_Medium_MovementBasic.glb.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 779d860784ddc294c9bb39a03ec33862
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/External/Kaykit Plant Warrior/Assets.meta b/Assets/External/Kaykit Plant Warrior/Assets.meta
new file mode 100644
index 0000000..d394142
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Assets.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c54d0285bea0de94b874a9fb29d9fbd3
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Arrow.fbx b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Arrow.fbx
new file mode 100644
index 0000000..2f65947
Binary files /dev/null and b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Arrow.fbx differ
diff --git a/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Arrow.fbx.meta b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Arrow.fbx.meta
new file mode 100644
index 0000000..67a130f
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Arrow.fbx.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: 8c62b3852e53ff14dad446ec1d6d3f39
+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:
diff --git a/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Bow.fbx b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Bow.fbx
new file mode 100644
index 0000000..54d520e
Binary files /dev/null and b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Bow.fbx differ
diff --git a/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Bow.fbx.meta b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Bow.fbx.meta
new file mode 100644
index 0000000..eba6388
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Bow.fbx.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: f12d0aaf9f944044e968c491911ae432
+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:
diff --git a/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Bow_withString.fbx b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Bow_withString.fbx
new file mode 100644
index 0000000..766f942
Binary files /dev/null and b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Bow_withString.fbx differ
diff --git a/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Bow_withString.fbx.meta b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Bow_withString.fbx.meta
new file mode 100644
index 0000000..4af8a9e
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Bow_withString.fbx.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: 0bec7fc8ba62f974cb204103d5086ac6
+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:
diff --git a/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Shield.fbx b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Shield.fbx
new file mode 100644
index 0000000..4a0ce26
Binary files /dev/null and b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Shield.fbx differ
diff --git a/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Shield.fbx.meta b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Shield.fbx.meta
new file mode 100644
index 0000000..b40c740
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Shield.fbx.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: d952e765bc3159946897942a74a81b27
+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:
diff --git a/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Spear.fbx b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Spear.fbx
new file mode 100644
index 0000000..87101f2
Binary files /dev/null and b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Spear.fbx differ
diff --git a/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Spear.fbx.meta b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Spear.fbx.meta
new file mode 100644
index 0000000..8cbd0c8
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Assets/PlantWarrior_Spear.fbx.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: bec7726862777a042919c40fd38fce81
+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:
diff --git a/Assets/External/Kaykit Plant Warrior/Assets/plantcreatures_texture.png b/Assets/External/Kaykit Plant Warrior/Assets/plantcreatures_texture.png
new file mode 100644
index 0000000..ef75cb0
Binary files /dev/null and b/Assets/External/Kaykit Plant Warrior/Assets/plantcreatures_texture.png differ
diff --git a/Assets/External/Kaykit Plant Warrior/Assets/plantcreatures_texture.png.meta b/Assets/External/Kaykit Plant Warrior/Assets/plantcreatures_texture.png.meta
new file mode 100644
index 0000000..b531541
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/Assets/plantcreatures_texture.png.meta
@@ -0,0 +1,143 @@
+fileFormatVersion: 2
+guid: e521081c4e068ff409bd4d6199155ceb
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: 934633628187620750
+ second: plantcreatures_texture_0
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 2
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites:
+ - serializedVersion: 2
+ name: plantcreatures_texture_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1024
+ height: 1024
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: e85f14b355c78fc00800000000000000
+ internalID: 934633628187620750
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ plantcreatures_texture_0: 934633628187620750
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/External/Kaykit Plant Warrior/characters.meta b/Assets/External/Kaykit Plant Warrior/characters.meta
new file mode 100644
index 0000000..f320bf7
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/characters.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d915cfad29386964abec8e1e1dec1598
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/External/Kaykit Plant Warrior/characters/PlantWarrior.fbx b/Assets/External/Kaykit Plant Warrior/characters/PlantWarrior.fbx
new file mode 100644
index 0000000..b1074e8
Binary files /dev/null and b/Assets/External/Kaykit Plant Warrior/characters/PlantWarrior.fbx differ
diff --git a/Assets/External/Kaykit Plant Warrior/characters/PlantWarrior.fbx.meta b/Assets/External/Kaykit Plant Warrior/characters/PlantWarrior.fbx.meta
new file mode 100644
index 0000000..76d70ce
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/characters/PlantWarrior.fbx.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: a7b7bbc10aa9e924e842b5f03bf52e44
+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:
diff --git a/Assets/External/Kaykit Plant Warrior/textures.meta b/Assets/External/Kaykit Plant Warrior/textures.meta
new file mode 100644
index 0000000..a6032bb
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/textures.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0a22594ddd696564c9c15862251e4e47
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/External/Kaykit Plant Warrior/textures/plantcreatures_texture.png b/Assets/External/Kaykit Plant Warrior/textures/plantcreatures_texture.png
new file mode 100644
index 0000000..ef75cb0
Binary files /dev/null and b/Assets/External/Kaykit Plant Warrior/textures/plantcreatures_texture.png differ
diff --git a/Assets/External/Kaykit Plant Warrior/textures/plantcreatures_texture.png.meta b/Assets/External/Kaykit Plant Warrior/textures/plantcreatures_texture.png.meta
new file mode 100644
index 0000000..b7586ee
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/textures/plantcreatures_texture.png.meta
@@ -0,0 +1,143 @@
+fileFormatVersion: 2
+guid: 2e4c485dd1ea2564cb09817675b80365
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: 934633628187620750
+ second: plantcreatures_texture_0
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 2
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites:
+ - serializedVersion: 2
+ name: plantcreatures_texture_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1024
+ height: 1024
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: e85f14b355c78fc00800000000000000
+ internalID: 934633628187620750
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ plantcreatures_texture_0: 934633628187620750
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/External/Kaykit Plant Warrior/textures/plantcreatures_texture_B.png b/Assets/External/Kaykit Plant Warrior/textures/plantcreatures_texture_B.png
new file mode 100644
index 0000000..34dc1a5
Binary files /dev/null and b/Assets/External/Kaykit Plant Warrior/textures/plantcreatures_texture_B.png differ
diff --git a/Assets/External/Kaykit Plant Warrior/textures/plantcreatures_texture_B.png.meta b/Assets/External/Kaykit Plant Warrior/textures/plantcreatures_texture_B.png.meta
new file mode 100644
index 0000000..b11a051
--- /dev/null
+++ b/Assets/External/Kaykit Plant Warrior/textures/plantcreatures_texture_B.png.meta
@@ -0,0 +1,143 @@
+fileFormatVersion: 2
+guid: 810873a624517f34282bfa7bb27e0d85
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: -4786934506563326636
+ second: plantcreatures_texture_B_0
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 2
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites:
+ - serializedVersion: 2
+ name: plantcreatures_texture_B_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1024
+ height: 1024
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 45dab35bd64619db0800000000000000
+ internalID: -4786934506563326636
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ plantcreatures_texture_B_0: -4786934506563326636
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Models/PlantWarrior.fbx b/Assets/Models/PlantWarrior.fbx
new file mode 100644
index 0000000..b1074e8
Binary files /dev/null and b/Assets/Models/PlantWarrior.fbx differ
diff --git a/Assets/Models/PlantWarrior.fbx.meta b/Assets/Models/PlantWarrior.fbx.meta
new file mode 100644
index 0000000..5709fdf
--- /dev/null
+++ b/Assets/Models/PlantWarrior.fbx.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: 1b47a488ece83f249abea22b1b1877fb
+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: root
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 1
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Creep.meta b/Assets/Prefabs/Creep.meta
new file mode 100644
index 0000000..67f5bf0
--- /dev/null
+++ b/Assets/Prefabs/Creep.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d7d14085325223a4d9f0b56c40c0d2b9
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Creep/Creep1.prefab b/Assets/Prefabs/Creep/Creep1.prefab
new file mode 100644
index 0000000..a61c867
--- /dev/null
+++ b/Assets/Prefabs/Creep/Creep1.prefab
@@ -0,0 +1,1910 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &190360703109604688
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3274993898624407610}
+ m_Layer: 0
+ m_Name: toes.r
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3274993898624407610
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 190360703109604688}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0.0000000054509326, y: 0.9203549, z: -0.39108425, w: -0.000000079715036}
+ m_LocalPosition: {x: -0.0000000013123729, y: 0.16565003, z: -0.00000000615794}
+ m_LocalScale: {x: 1, y: 0.9999976, z: 1.0000035}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 663591747991919462}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &326506820427804313
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4224940412511149290}
+ m_Layer: 0
+ m_Name: lowerarm.l
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4224940412511149290
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 326506820427804313}
+ serializedVersion: 2
+ m_LocalRotation: {x: 3.3142294e-10, y: 0.000000062216756, z: 0.05528553, w: 0.9984706}
+ m_LocalPosition: {x: 3.169376e-10, y: 0.24189739, z: -0.00000011563963}
+ m_LocalScale: {x: 1.0000001, y: 0.99999994, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 2740845544782652583}
+ m_Father: {fileID: 1405172510574593241}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &570246259683579619
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5777581867229857299}
+ m_Layer: 0
+ m_Name: hips
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5777581867229857299
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 570246259683579619}
+ serializedVersion: 2
+ m_LocalRotation: {x: -5.3290705e-15, y: 0.00000011920927, z: 1.0663281e-21, w: 1}
+ m_LocalPosition: {x: -6.352747e-22, y: 0.40566343, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 6072440475513436469}
+ - {fileID: 8492516464826570623}
+ - {fileID: 5913234808679439497}
+ m_Father: {fileID: 1557528873174209333}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &760745041941163532
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2856184476308544689}
+ m_Layer: 0
+ m_Name: lowerarm.r
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2856184476308544689
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 760745041941163532}
+ serializedVersion: 2
+ m_LocalRotation: {x: 3.314229e-10, y: -0.00000006221675, z: -0.05528553, w: 0.9984706}
+ m_LocalPosition: {x: -2.1567625e-10, y: 0.24189739, z: -0.00000011685303}
+ m_LocalScale: {x: 1.0000001, y: 0.99999994, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 5788892707127785232}
+ m_Father: {fileID: 9080269579646429203}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &920967548464919842
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 593722527783556422}
+ - component: {fileID: 8656785032653553372}
+ m_Layer: 0
+ m_Name: PlantWarrior_Body
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &593722527783556422
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 920967548464919842}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.000000021855694, 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: 1255131874752196371}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!137 &8656785032653553372
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 920967548464919842}
+ 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: 3
+ 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: -6923508976625904674, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 6697439845133417162, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_Bones:
+ - {fileID: 1557528873174209333}
+ - {fileID: 5777581867229857299}
+ - {fileID: 6072440475513436469}
+ - {fileID: 4295311974523757100}
+ - {fileID: 1405172510574593241}
+ - {fileID: 4224940412511149290}
+ - {fileID: 2740845544782652583}
+ - {fileID: 2452858451824991102}
+ - {fileID: 3941125806132166793}
+ - {fileID: 9080269579646429203}
+ - {fileID: 2856184476308544689}
+ - {fileID: 5788892707127785232}
+ - {fileID: 4062086443240261109}
+ - {fileID: 8423154880772228728}
+ - {fileID: 6649253583463388225}
+ - {fileID: 8492516464826570623}
+ - {fileID: 433343343632923625}
+ - {fileID: 5937274323932404828}
+ - {fileID: 2736205232961304566}
+ - {fileID: 5913234808679439497}
+ - {fileID: 831869074809750824}
+ - {fileID: 663591747991919462}
+ - {fileID: 3274993898624407610}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 1557528873174209333}
+ m_AABB:
+ m_Center: {x: -0.02020368, y: 0.8059407, z: -0.027507156}
+ m_Extent: {x: 0.39004484, y: 0.44566542, z: 0.35767853}
+ m_DirtyAABB: 0
+--- !u!1 &1798985952328552389
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4286957981302156683}
+ - component: {fileID: 4079724886414729434}
+ m_Layer: 0
+ m_Name: PlantWarrior_LegRight
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4286957981302156683
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1798985952328552389}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.000000021855694, 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: 1255131874752196371}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!137 &4079724886414729434
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1798985952328552389}
+ 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: 3
+ 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: -6923508976625904674, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: -6154981922039001261, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_Bones:
+ - {fileID: 1557528873174209333}
+ - {fileID: 5777581867229857299}
+ - {fileID: 6072440475513436469}
+ - {fileID: 4295311974523757100}
+ - {fileID: 1405172510574593241}
+ - {fileID: 4224940412511149290}
+ - {fileID: 2740845544782652583}
+ - {fileID: 2452858451824991102}
+ - {fileID: 3941125806132166793}
+ - {fileID: 9080269579646429203}
+ - {fileID: 2856184476308544689}
+ - {fileID: 5788892707127785232}
+ - {fileID: 4062086443240261109}
+ - {fileID: 8423154880772228728}
+ - {fileID: 6649253583463388225}
+ - {fileID: 8492516464826570623}
+ - {fileID: 433343343632923625}
+ - {fileID: 5937274323932404828}
+ - {fileID: 2736205232961304566}
+ - {fileID: 5913234808679439497}
+ - {fileID: 831869074809750824}
+ - {fileID: 663591747991919462}
+ - {fileID: 3274993898624407610}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 1557528873174209333}
+ m_AABB:
+ m_Center: {x: 0.20242496, y: 0.2556593, z: -0.012588412}
+ m_Extent: {x: 0.130174, y: 0.27607432, z: 0.1900217}
+ m_DirtyAABB: 0
+--- !u!1 &2249014177564105891
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2740845544782652583}
+ m_Layer: 0
+ m_Name: wrist.l
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2740845544782652583
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2249014177564105891}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.0000000012139638, y: 2.7674268e-10, z: -0.026658101, w: 0.99964464}
+ m_LocalPosition: {x: -0.0000000016788704, y: 0.26004383, z: 0.0000000018543524}
+ m_LocalScale: {x: 0.99999994, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 2452858451824991102}
+ m_Father: {fileID: 4224940412511149290}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2307987660138585121
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6072440475513436469}
+ m_Layer: 0
+ m_Name: spine
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6072440475513436469
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2307987660138585121}
+ serializedVersion: 2
+ m_LocalRotation: {x: 5.3290705e-15, y: -1.4210854e-14, z: -5.5151863e-22, w: 1}
+ m_LocalPosition: {x: -5.04871e-29, y: 0.1919775, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 4295311974523757100}
+ m_Father: {fileID: 5777581867229857299}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2624770254723251668
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 663591747991919462}
+ m_Layer: 0
+ m_Name: foot.r
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &663591747991919462
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2624770254723251668}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0.45523942, y: -0.00000018406836, z: 0.00000003220032, w: 0.8903691}
+ m_LocalPosition: {x: -0.000000005432395, y: 0.14943695, z: 8.4266816e-10}
+ m_LocalScale: {x: 1, y: 1.0000005, z: 0.999999}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 3274993898624407610}
+ m_Father: {fileID: 831869074809750824}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &3053722403246699562
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5913234808679439497}
+ m_Layer: 0
+ m_Name: upperleg.r
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5913234808679439497
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3053722403246699562}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.9998491, y: -0.00000007426609, z: 0.00000003172626, w: 0.017373597}
+ m_LocalPosition: {x: 0.17094506, y: 0.11358726, z: 0.000000013923276}
+ m_LocalScale: {x: 1, y: 0.99999976, z: 1.0000011}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 831869074809750824}
+ m_Father: {fileID: 5777581867229857299}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &3064501784522952398
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1405172510574593241}
+ m_Layer: 0
+ m_Name: upperarm.l
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1405172510574593241
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3064501784522952398}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0.514122, y: 0.48546726, z: 0.4854683, w: 0.5141213}
+ m_LocalPosition: {x: -0.21200736, y: 0.13413227, z: 0.00000008487841}
+ m_LocalScale: {x: 0.99999934, y: 0.99999934, z: 0.9999998}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 4224940412511149290}
+ m_Father: {fileID: 4295311974523757100}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &3170440643709779400
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3315749511735144707}
+ - component: {fileID: 6150592738518698652}
+ m_Layer: 0
+ m_Name: PlantWarrior_LegLeft
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3315749511735144707
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3170440643709779400}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.000000021855694, 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: 1255131874752196371}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!137 &6150592738518698652
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3170440643709779400}
+ 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: 3
+ 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: -6923508976625904674, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 8717808006600495725, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_Bones:
+ - {fileID: 1557528873174209333}
+ - {fileID: 5777581867229857299}
+ - {fileID: 6072440475513436469}
+ - {fileID: 4295311974523757100}
+ - {fileID: 1405172510574593241}
+ - {fileID: 4224940412511149290}
+ - {fileID: 2740845544782652583}
+ - {fileID: 2452858451824991102}
+ - {fileID: 3941125806132166793}
+ - {fileID: 9080269579646429203}
+ - {fileID: 2856184476308544689}
+ - {fileID: 5788892707127785232}
+ - {fileID: 4062086443240261109}
+ - {fileID: 8423154880772228728}
+ - {fileID: 6649253583463388225}
+ - {fileID: 8492516464826570623}
+ - {fileID: 433343343632923625}
+ - {fileID: 5937274323932404828}
+ - {fileID: 2736205232961304566}
+ - {fileID: 5913234808679439497}
+ - {fileID: 831869074809750824}
+ - {fileID: 663591747991919462}
+ - {fileID: 3274993898624407610}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 1557528873174209333}
+ m_AABB:
+ m_Center: {x: -0.17309168, y: 0.25565922, z: -0.0003632158}
+ m_Extent: {x: 0.10084072, y: 0.2760744, z: 0.17779666}
+ m_DirtyAABB: 0
+--- !u!1 &3185357251779744645
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6294760295574973299}
+ - component: {fileID: 5335404872662605641}
+ m_Layer: 0
+ m_Name: PlantWarrior_Head
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6294760295574973299
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3185357251779744645}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.000000021855694, y: 0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 1.2158737, z: -0.00000039627776}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1255131874752196371}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!137 &5335404872662605641
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3185357251779744645}
+ 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: 3
+ 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: -6923508976625904674, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 6726205331920572589, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_Bones:
+ - {fileID: 1557528873174209333}
+ - {fileID: 5777581867229857299}
+ - {fileID: 6072440475513436469}
+ - {fileID: 4295311974523757100}
+ - {fileID: 1405172510574593241}
+ - {fileID: 4224940412511149290}
+ - {fileID: 2740845544782652583}
+ - {fileID: 2452858451824991102}
+ - {fileID: 3941125806132166793}
+ - {fileID: 9080269579646429203}
+ - {fileID: 2856184476308544689}
+ - {fileID: 5788892707127785232}
+ - {fileID: 4062086443240261109}
+ - {fileID: 8423154880772228728}
+ - {fileID: 6649253583463388225}
+ - {fileID: 8492516464826570623}
+ - {fileID: 433343343632923625}
+ - {fileID: 5937274323932404828}
+ - {fileID: 2736205232961304566}
+ - {fileID: 5913234808679439497}
+ - {fileID: 831869074809750824}
+ - {fileID: 663591747991919462}
+ - {fileID: 3274993898624407610}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 1557528873174209333}
+ m_AABB:
+ m_Center: {x: -0.022910178, y: 1.8667164, z: 0.013646424}
+ m_Extent: {x: 0.5686588, y: 0.7017436, z: 0.57668257}
+ m_DirtyAABB: 0
+--- !u!1 &3372178453179750745
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 9080269579646429203}
+ m_Layer: 0
+ m_Name: upperarm.r
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &9080269579646429203
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3372178453179750745}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0.5141217, y: -0.48546743, z: -0.48546806, w: 0.5141216}
+ m_LocalPosition: {x: 0.21200736, y: 0.13413227, z: 0.00000008487841}
+ m_LocalScale: {x: 0.99999934, y: 0.99999934, z: 0.9999998}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 2856184476308544689}
+ m_Father: {fileID: 4295311974523757100}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &3432107483015469343
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2736205232961304566}
+ m_Layer: 0
+ m_Name: toes.l
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2736205232961304566
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3432107483015469343}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0.000000045685184, y: 0.9203549, z: -0.39108425, w: -0.00000006261839}
+ m_LocalPosition: {x: 0.000000024138604, y: 0.16565004, z: 0.000000026648877}
+ m_LocalScale: {x: 1, y: 0.9999977, z: 1.0000033}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 5937274323932404828}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &3932114763692414423
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 831869074809750824}
+ m_Layer: 0
+ m_Name: lowerleg.r
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &831869074809750824
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3932114763692414423}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.10622621, y: 0.00000006865227, z: -0.00000007377099, w: 0.994342}
+ m_LocalPosition: {x: 0.000000017036669, y: 0.22707745, z: -0.0000000017018262}
+ m_LocalScale: {x: 1, y: 0.9999999, z: 0.9999997}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 663591747991919462}
+ m_Father: {fileID: 5913234808679439497}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &4155685368439712365
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 433343343632923625}
+ m_Layer: 0
+ m_Name: lowerleg.l
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &433343343632923625
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4155685368439712365}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.10622619, y: -0.00000006865224, z: 0.00000007377099, w: 0.994342}
+ m_LocalPosition: {x: -0.000000017618225, y: 0.22707745, z: -0.0000000026764488}
+ m_LocalScale: {x: 1, y: 0.9999998, z: 0.99999964}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 5937274323932404828}
+ m_Father: {fileID: 8492516464826570623}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &4538112939981844081
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3764584954333487147}
+ - component: {fileID: 7759150479693212258}
+ - component: {fileID: 2549958795894663420}
+ - component: {fileID: 2794704654662246098}
+ - component: {fileID: 2894690479083926678}
+ - component: {fileID: 927856165276174212}
+ - component: {fileID: 7284672060047320725}
+ - component: {fileID: 250122487001659295}
+ - component: {fileID: 286142144341486567}
+ m_Layer: 11
+ m_Name: Creep1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3764584954333487147
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4538112939981844081}
+ 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:
+ - {fileID: 1255131874752196371}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!136 &7759150479693212258
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4538112939981844081}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Height: 2
+ m_Direction: 1
+ m_Center: {x: 0, y: 1, z: 0}
+--- !u!114 &2549958795894663420
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4538112939981844081}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
+ GlobalObjectIdHash: 415512315
+ InScenePlacedSourceGlobalObjectIdHash: 0
+ DeferredDespawnTick: 0
+ Ownership: 1
+ AlwaysReplicateAsRoot: 0
+ SynchronizeTransform: 1
+ ActiveSceneSynchronization: 0
+ SceneMigrationSynchronization: 0
+ SpawnWithObservers: 1
+ DontDestroyWithOwner: 0
+ AutoObjectParentSync: 1
+ SyncOwnerTransformWhenParented: 1
+ AllowOwnerToParent: 0
+--- !u!114 &2794704654662246098
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4538112939981844081}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 345fc6e7d4f06314f8b548129700eccb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.EnemyUnit
+ ShowTopMostFoldoutHeaderGroup: 1
+ enemyTeam: 2
+ maxHealth: 100
+ damageEffectPrefab: {fileID: 0}
+ destroyEffectPrefab: {fileID: 0}
+--- !u!195 &2894690479083926678
+NavMeshAgent:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4538112939981844081}
+ m_Enabled: 1
+ m_AgentTypeID: 0
+ m_Radius: 0.5
+ m_Speed: 5
+ m_Acceleration: 8
+ avoidancePriority: 50
+ m_AngularSpeed: 120
+ m_StoppingDistance: 0
+ m_AutoTraverseOffMeshLink: 1
+ m_AutoBraking: 1
+ m_AutoRepath: 1
+ m_Height: 2
+ m_BaseOffset: 0
+ m_WalkableMask: 4294967295
+ m_ObstacleAvoidanceType: 4
+--- !u!114 &927856165276174212
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4538112939981844081}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 453e726e48d16214f84c6d5737edd7df, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.EnemyAIController
+ ShowTopMostFoldoutHeaderGroup: 1
+ aiType: 2
+ detectionRange: 15
+ detectionAngle: 120
+ playerLayer:
+ serializedVersion: 2
+ m_Bits: 640
+ obstacleLayer:
+ serializedVersion: 2
+ m_Bits: 1152
+ maxChaseDistance: 30
+ chaseGiveUpDistance: 25
+ attackRange: 3
+ attackInterval: 1.5
+ attackDamage: 20
+ moveSpeed: 5
+ chaseSpeedMultiplier: 1.5
+ showDebugInfo: 1
+--- !u!95 &7284672060047320725
+Animator:
+ serializedVersion: 7
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4538112939981844081}
+ m_Enabled: 1
+ m_Avatar: {fileID: 9000000, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_Controller: {fileID: 9100000, guid: 0a6254dd97e2e8a47ab5cd5c1a629717, 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 &250122487001659295
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4538112939981844081}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2b2a547d86f65d64a93a7a3c415d1ce2, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.MonsterAnimationController
+ ShowTopMostFoldoutHeaderGroup: 1
+ speedParam: Speed
+ attackTriggerParam: Attack
+ isMovingParam: IsMoving
+ autoLoadFromMonsterData: 1
+ debugLogging: 0
+--- !u!114 &286142144341486567
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4538112939981844081}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 85e4c68e85ef1704b83cecb71de7d67a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.CreepDataComponent
+ creepData: {fileID: 11400000, guid: 3d9df9cc2ed8c9e4394fa77bc21c47c6, type: 2}
+ autoApplyOnAwake: 1
+--- !u!1 &4827787360031545274
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1526288100783744983}
+ - component: {fileID: 6315861272446095316}
+ m_Layer: 0
+ m_Name: PlantWarrior_Cloak
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1526288100783744983
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4827787360031545274}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.000000021855694, 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: 1255131874752196371}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!137 &6315861272446095316
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4827787360031545274}
+ 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: 3
+ 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: -6923508976625904674, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: -6378995912128804763, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_Bones:
+ - {fileID: 1557528873174209333}
+ - {fileID: 5777581867229857299}
+ - {fileID: 6072440475513436469}
+ - {fileID: 4295311974523757100}
+ - {fileID: 1405172510574593241}
+ - {fileID: 4224940412511149290}
+ - {fileID: 2740845544782652583}
+ - {fileID: 2452858451824991102}
+ - {fileID: 3941125806132166793}
+ - {fileID: 9080269579646429203}
+ - {fileID: 2856184476308544689}
+ - {fileID: 5788892707127785232}
+ - {fileID: 4062086443240261109}
+ - {fileID: 8423154880772228728}
+ - {fileID: 6649253583463388225}
+ - {fileID: 8492516464826570623}
+ - {fileID: 433343343632923625}
+ - {fileID: 5937274323932404828}
+ - {fileID: 2736205232961304566}
+ - {fileID: 5913234808679439497}
+ - {fileID: 831869074809750824}
+ - {fileID: 663591747991919462}
+ - {fileID: 3274993898624407610}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 1557528873174209333}
+ m_AABB:
+ m_Center: {x: 0.0000006854534, y: 1.1364065, z: 0.012326479}
+ m_Extent: {x: 0.4017007, y: 0.2070671, z: 0.34576973}
+ m_DirtyAABB: 0
+--- !u!1 &5071855376598738387
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4062086443240261109}
+ m_Layer: 0
+ m_Name: hand.r
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4062086443240261109
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5071855376598738387}
+ serializedVersion: 2
+ m_LocalRotation: {x: 5.954004e-10, y: 0.000000092012904, z: -0.000005455195, w: 1}
+ m_LocalPosition: {x: 1.6058266e-12, y: 0.073825896, z: 0.00000011935722}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 8423154880772228728}
+ m_Father: {fileID: 5788892707127785232}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &5974759880527385034
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8492516464826570623}
+ m_Layer: 0
+ m_Name: upperleg.l
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8492516464826570623
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5974759880527385034}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.9998491, y: 0.00000007132798, z: 0.00000001204276, w: 0.017373597}
+ m_LocalPosition: {x: -0.17094506, y: 0.11358726, z: 0.000000013923269}
+ m_LocalScale: {x: 1, y: 0.99999976, z: 1.0000011}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 433343343632923625}
+ m_Father: {fileID: 5777581867229857299}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &6339582872751840309
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6185442527957571215}
+ - component: {fileID: 1419090518731935417}
+ m_Layer: 0
+ m_Name: PlantWarrior_ArmRight
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6185442527957571215
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6339582872751840309}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.000000021855694, 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: 1255131874752196371}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!137 &1419090518731935417
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6339582872751840309}
+ 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: 3
+ 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: -6923508976625904674, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: -6710724610184440133, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_Bones:
+ - {fileID: 1557528873174209333}
+ - {fileID: 5777581867229857299}
+ - {fileID: 6072440475513436469}
+ - {fileID: 4295311974523757100}
+ - {fileID: 1405172510574593241}
+ - {fileID: 4224940412511149290}
+ - {fileID: 2740845544782652583}
+ - {fileID: 2452858451824991102}
+ - {fileID: 3941125806132166793}
+ - {fileID: 9080269579646429203}
+ - {fileID: 2856184476308544689}
+ - {fileID: 5788892707127785232}
+ - {fileID: 4062086443240261109}
+ - {fileID: 8423154880772228728}
+ - {fileID: 6649253583463388225}
+ - {fileID: 8492516464826570623}
+ - {fileID: 433343343632923625}
+ - {fileID: 5937274323932404828}
+ - {fileID: 2736205232961304566}
+ - {fileID: 5913234808679439497}
+ - {fileID: 831869074809750824}
+ - {fileID: 663591747991919462}
+ - {fileID: 3274993898624407610}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 1557528873174209333}
+ m_AABB:
+ m_Center: {x: 0.5282133, y: 1.0978565, z: -0.0053696334}
+ m_Extent: {x: 0.44385785, y: 0.114856124, z: 0.14569849}
+ m_DirtyAABB: 0
+--- !u!1 &6673048615472443495
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3941125806132166793}
+ m_Layer: 0
+ m_Name: handslot.l
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3941125806132166793
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6673048615472443495}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0.000000016437694, y: -0.000000019798927, z: 0.7071068, w: 0.7071067}
+ m_LocalPosition: {x: -5.209344e-10, y: 0.096125245, z: -0.057499886}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 2452858451824991102}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &6848368146506229940
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6649253583463388225}
+ m_Layer: 0
+ m_Name: head
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6649253583463388225
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6848368146506229940}
+ serializedVersion: 2
+ m_LocalRotation: {x: -3.5527137e-15, y: -1.2705494e-21, z: 8.555763e-29, w: 1}
+ m_LocalPosition: {x: -5.04871e-29, y: 0.26879656, z: -6.018532e-36}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4295311974523757100}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &7142658656289627699
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7802207219643676180}
+ - component: {fileID: 4848847968628440405}
+ m_Layer: 0
+ m_Name: PlantWarrior_ArmLeft
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &7802207219643676180
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7142658656289627699}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.000000021855694, 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: 1255131874752196371}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!137 &4848847968628440405
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7142658656289627699}
+ 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: 3
+ 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: -6923508976625904674, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: -5274104480018123676, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_Bones:
+ - {fileID: 1557528873174209333}
+ - {fileID: 5777581867229857299}
+ - {fileID: 6072440475513436469}
+ - {fileID: 4295311974523757100}
+ - {fileID: 1405172510574593241}
+ - {fileID: 4224940412511149290}
+ - {fileID: 2740845544782652583}
+ - {fileID: 2452858451824991102}
+ - {fileID: 3941125806132166793}
+ - {fileID: 9080269579646429203}
+ - {fileID: 2856184476308544689}
+ - {fileID: 5788892707127785232}
+ - {fileID: 4062086443240261109}
+ - {fileID: 8423154880772228728}
+ - {fileID: 6649253583463388225}
+ - {fileID: 8492516464826570623}
+ - {fileID: 433343343632923625}
+ - {fileID: 5937274323932404828}
+ - {fileID: 2736205232961304566}
+ - {fileID: 5913234808679439497}
+ - {fileID: 831869074809750824}
+ - {fileID: 663591747991919462}
+ - {fileID: 3274993898624407610}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 1557528873174209333}
+ m_AABB:
+ m_Center: {x: -0.5285057, y: 1.0978562, z: -0.001726523}
+ m_Extent: {x: 0.44356582, y: 0.11485663, z: 0.15012585}
+ m_DirtyAABB: 0
+--- !u!1 &7199472835842197323
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1255131874752196371}
+ - component: {fileID: 7659434895168708073}
+ m_Layer: 0
+ m_Name: Model
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1255131874752196371
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7199472835842197323}
+ 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:
+ - {fileID: 7802207219643676180}
+ - {fileID: 6185442527957571215}
+ - {fileID: 593722527783556422}
+ - {fileID: 1526288100783744983}
+ - {fileID: 6294760295574973299}
+ - {fileID: 3315749511735144707}
+ - {fileID: 4286957981302156683}
+ - {fileID: 8408772387617115987}
+ m_Father: {fileID: 3764584954333487147}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!95 &7659434895168708073
+Animator:
+ serializedVersion: 7
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7199472835842197323}
+ m_Enabled: 1
+ m_Avatar: {fileID: 9000000, guid: 1b47a488ece83f249abea22b1b1877fb, type: 3}
+ m_Controller: {fileID: 0}
+ m_CullingMode: 1
+ 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!1 &7295203804695816959
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1557528873174209333}
+ m_Layer: 0
+ m_Name: root
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1557528873174209333
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7295203804695816959}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0.000000021855692, y: -0.00000011920926, z: 2.605401e-15, w: 1}
+ m_LocalPosition: {x: -0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 5777581867229857299}
+ m_Father: {fileID: 8408772387617115987}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &7692634778016897407
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4295311974523757100}
+ m_Layer: 0
+ m_Name: chest
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4295311974523757100
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7692634778016897407}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: 4.2351647e-22, z: 7.361622e-30, w: 1}
+ m_LocalPosition: {x: -5.04871e-29, y: 0.37498796, z: 1.7763568e-15}
+ m_LocalScale: {x: 1, y: 0.99999994, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 6649253583463388225}
+ - {fileID: 1405172510574593241}
+ - {fileID: 9080269579646429203}
+ m_Father: {fileID: 6072440475513436469}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &8433324621375667472
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8408772387617115987}
+ m_Layer: 0
+ m_Name: Rig_Medium
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8408772387617115987
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8433324621375667472}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.000000021855694, 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: 1557528873174209333}
+ m_Father: {fileID: 1255131874752196371}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &8624745165827520985
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2452858451824991102}
+ m_Layer: 0
+ m_Name: hand.l
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2452858451824991102
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8624745165827520985}
+ serializedVersion: 2
+ m_LocalRotation: {x: 5.956492e-10, y: -0.00000013579616, z: 0.000005455195, w: 1}
+ m_LocalPosition: {x: -1.2647661e-12, y: 0.073825896, z: 0.0000001193573}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 3941125806132166793}
+ m_Father: {fileID: 2740845544782652583}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &8699493277302882802
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8423154880772228728}
+ m_Layer: 0
+ m_Name: handslot.r
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8423154880772228728
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8699493277302882802}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0.000000016437719, y: 0.000000019798906, z: -0.7071068, w: 0.7071067}
+ m_LocalPosition: {x: 5.2087756e-10, y: 0.096125245, z: -0.057499886}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 5114414950704533121}
+ m_Father: {fileID: 4062086443240261109}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &8747750484294987188
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5937274323932404828}
+ m_Layer: 0
+ m_Name: foot.l
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5937274323932404828
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8747750484294987188}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0.45523942, y: -0.000000044499128, z: 0.000000048826482, w: 0.8903691}
+ m_LocalPosition: {x: 0.0000000031713479, y: 0.14943705, z: 0.0000000027321736}
+ m_LocalScale: {x: 1, y: 1.0000008, z: 0.9999996}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 2736205232961304566}
+ m_Father: {fileID: 433343343632923625}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &8936869349657827408
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5788892707127785232}
+ m_Layer: 0
+ m_Name: wrist.r
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5788892707127785232
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8936869349657827408}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.0000000012139642, y: -2.7674288e-10, z: 0.026658101, w: 0.99964464}
+ m_LocalPosition: {x: 0.0000000017586785, y: 0.26004383, z: 0.0000000018543502}
+ m_LocalScale: {x: 0.99999994, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 4062086443240261109}
+ m_Father: {fileID: 2856184476308544689}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &4715466935021447530
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 8423154880772228728}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: ae56b484bc4355945bd90ed0f6359194, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ae56b484bc4355945bd90ed0f6359194, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.382
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ae56b484bc4355945bd90ed0f6359194, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ae56b484bc4355945bd90ed0f6359194, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ae56b484bc4355945bd90ed0f6359194, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0.00000008146034
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ae56b484bc4355945bd90ed0f6359194, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ae56b484bc4355945bd90ed0f6359194, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ae56b484bc4355945bd90ed0f6359194, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ae56b484bc4355945bd90ed0f6359194, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ae56b484bc4355945bd90ed0f6359194, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 919132149155446097, guid: ae56b484bc4355945bd90ed0f6359194, type: 3}
+ propertyPath: m_Name
+ value: scissors
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: ae56b484bc4355945bd90ed0f6359194, type: 3}
+--- !u!4 &5114414950704533121 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: ae56b484bc4355945bd90ed0f6359194, type: 3}
+ m_PrefabInstance: {fileID: 4715466935021447530}
+ m_PrefabAsset: {fileID: 0}
diff --git a/Assets/Prefabs/Creep/Creep1.prefab.meta b/Assets/Prefabs/Creep/Creep1.prefab.meta
new file mode 100644
index 0000000..d010283
--- /dev/null
+++ b/Assets/Prefabs/Creep/Creep1.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 79ce9cde6263e34498c5011cdcf36695
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/CreepCamp.prefab b/Assets/Prefabs/CreepCamp.prefab
new file mode 100644
index 0000000..1a12d21
--- /dev/null
+++ b/Assets/Prefabs/CreepCamp.prefab
@@ -0,0 +1,78 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3360908504529629757
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5307373070786284181}
+ - component: {fileID: 7944914562202077200}
+ - component: {fileID: 3349671398273528302}
+ m_Layer: 0
+ m_Name: CreepCamp
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5307373070786284181
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3360908504529629757}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -6.74042, y: 1.00002, z: -72.33073}
+ 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!114 &7944914562202077200
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3360908504529629757}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
+ GlobalObjectIdHash: 0
+ InScenePlacedSourceGlobalObjectIdHash: 0
+ DeferredDespawnTick: 0
+ Ownership: 1
+ AlwaysReplicateAsRoot: 0
+ SynchronizeTransform: 1
+ ActiveSceneSynchronization: 0
+ SceneMigrationSynchronization: 1
+ SpawnWithObservers: 1
+ DontDestroyWithOwner: 0
+ AutoObjectParentSync: 1
+ SyncOwnerTransformWhenParented: 1
+ AllowOwnerToParent: 0
+--- !u!114 &3349671398273528302
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3360908504529629757}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d4c5f296c2ebd7d41b2517a03c8b574c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.CreepCamp
+ ShowTopMostFoldoutHeaderGroup: 1
+ creepPrefabs: []
+ campStrength: 1
+ campCostBudget: 10
+ spawnRadius: 5
+ maxSpawnAttempts: 50
diff --git a/Assets/Prefabs/CreepCamp.prefab.meta b/Assets/Prefabs/CreepCamp.prefab.meta
new file mode 100644
index 0000000..8662119
--- /dev/null
+++ b/Assets/Prefabs/CreepCamp.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 41d918243a20cbd4d8f1558ac8345e9b
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/GameMain.unity b/Assets/Scenes/GameMain.unity
index 58aa196..5608617 100644
--- a/Assets/Scenes/GameMain.unity
+++ b/Assets/Scenes/GameMain.unity
@@ -930,6 +930,15 @@ MonoBehaviour:
randomRotation: 1
scaleVariation: 0.2
maxObstacleSpawnAttempts: 50
+ creepCampPrefab: {fileID: 3360908504529629757, guid: 41d918243a20cbd4d8f1558ac8345e9b, type: 3}
+ minDistanceBetweenCamps: 60
+ minDistanceFromCoreCamps: 60
+ minDistanceFromBarracksCamps: 60
+ minDistanceFromInitialResource: 60
+ additionalCreepCampCount: 5
+ baseCampStrength: 3
+ strengthIncreasePerZ100: 0.1
+ resourceCampStrengthBonus: 0.2
generateResourcesFirst: 1
--- !u!4 &672563223
Transform:
@@ -1836,8 +1845,8 @@ MonoBehaviour:
serializedVersion: 2
m_Bits: 64
availableBuildings:
- - {fileID: 11400000, guid: 03a521eb1160745439ba2d0efeb12f3c, type: 2}
- {fileID: 11400000, guid: 3e2e145df85a3ee4eb615f87efba4554, type: 2}
+ - {fileID: 11400000, guid: 03a521eb1160745439ba2d0efeb12f3c, type: 2}
foundationPrefab: {fileID: 1340458267086560577, guid: d20c3ce6a3c39154aa033d0f61bd9a4d, type: 3}
--- !u!4 &1199559224
Transform:
@@ -2049,7 +2058,7 @@ MonoBehaviour:
m_DisconnectTimeoutMS: 30000
ConnectionData:
Address: 127.0.0.1
- Port: 7914
+ Port: 7954
ServerListenAddress: 127.0.0.1
ClientBindPort: 0
DebugSimulator:
diff --git a/Assets/ScriptableObjects/Creep.meta b/Assets/ScriptableObjects/Creep.meta
new file mode 100644
index 0000000..26004f2
--- /dev/null
+++ b/Assets/ScriptableObjects/Creep.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f03bcf83cef19884cb1e18080e7f7cf4
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/BuildingDamageTest.cs b/Assets/Scripts/BuildingDamageTest.cs
deleted file mode 100644
index 138145f..0000000
--- a/Assets/Scripts/BuildingDamageTest.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using Unity.Netcode;
-using UnityEngine;
-
-namespace Northbound
-{
- ///
- /// 건물에 데미지를 주는 테스트/공격 시스템
- ///
- public class BuildingDamageTest : MonoBehaviour
- {
- [Header("Damage Settings")]
- public int damageAmount = 10;
- public float damageInterval = 1f;
- public KeyCode damageKey = KeyCode.F;
-
- [Header("Target")]
- public float maxDistance = 10f;
- public LayerMask buildingLayer;
-
- private float _lastDamageTime;
-
- private void Update()
- {
- if (Input.GetKeyDown(damageKey))
- {
- TryDamageBuilding();
- }
-
- // 자동 데미지 (테스트용)
- if (Input.GetKey(KeyCode.LeftShift) && Input.GetKey(damageKey))
- {
- if (Time.time - _lastDamageTime >= damageInterval)
- {
- TryDamageBuilding();
- _lastDamageTime = Time.time;
- }
- }
- }
-
- private void TryDamageBuilding()
- {
- // 카메라에서 레이캐스트
- Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
-
- if (Physics.Raycast(ray, out RaycastHit hit, maxDistance, buildingLayer))
- {
- Building building = hit.collider.GetComponentInParent();
-
- if (building != null)
- {
- ulong attackerId = NetworkManager.Singleton != null && NetworkManager.Singleton.IsClient
- ? NetworkManager.Singleton.LocalClientId
- : 0;
-
- building.TakeDamage(damageAmount, attackerId);
- Debug.Log($"[Test] {building.buildingData?.buildingName ?? "건물"}에게 {damageAmount} 데미지!");
- }
- }
- }
-
- private void OnGUI()
- {
- GUILayout.BeginArea(new Rect(10, 10, 300, 100));
- GUILayout.Label($"[{damageKey}] 건물에 {damageAmount} 데미지");
- GUILayout.Label($"[Shift + {damageKey}] 연속 데미지");
- GUILayout.EndArea();
- }
- }
-}
\ No newline at end of file
diff --git a/Assets/Scripts/BuildingDamageTest.cs.meta b/Assets/Scripts/BuildingDamageTest.cs.meta
deleted file mode 100644
index 25d9b7c..0000000
--- a/Assets/Scripts/BuildingDamageTest.cs.meta
+++ /dev/null
@@ -1,2 +0,0 @@
-fileFormatVersion: 2
-guid: 62b3bdffc8c849d48886167d316e16b6
\ No newline at end of file
diff --git a/Assets/Scripts/BuildingSlotButton.cs b/Assets/Scripts/BuildingSlotButton.cs
index afb55e3..2a94241 100644
--- a/Assets/Scripts/BuildingSlotButton.cs
+++ b/Assets/Scripts/BuildingSlotButton.cs
@@ -60,6 +60,7 @@ namespace Northbound
if (buildingData == null) return;
// 아이콘 설정
+ /*
if (iconImage != null && buildingData.icon != null)
{
iconImage.sprite = buildingData.icon;
@@ -69,7 +70,8 @@ namespace Northbound
{
iconImage.enabled = false;
}
-
+ */
+ iconImage.enabled = false;
// 이름 설정
if (nameText != null)
{
diff --git a/Assets/Scripts/CreepCamp.cs b/Assets/Scripts/CreepCamp.cs
new file mode 100644
index 0000000..500e7e2
--- /dev/null
+++ b/Assets/Scripts/CreepCamp.cs
@@ -0,0 +1,215 @@
+using Northbound.Data;
+using System.Collections.Generic;
+using Unity.Netcode;
+using UnityEngine;
+
+namespace Northbound
+{
+ public class CreepCamp : NetworkBehaviour
+ {
+ [Header("Camp Settings")]
+ [Tooltip("Creep prefabs available to spawn")]
+ [SerializeField] private List creepPrefabs = new List();
+
+ [Header("Spawning Settings")]
+ [Tooltip("Camp strength multiplier (higher = stronger creeps)")]
+ [SerializeField] private float campStrength = 1f;
+
+ [Tooltip("Cost budget for spawning creeps")]
+ [SerializeField] private float campCostBudget = 10f;
+
+ [Tooltip("Spawn radius around camp")]
+ [SerializeField] private float spawnRadius = 5f;
+
+ [Tooltip("Max creep spawn attempts")]
+ [SerializeField] private int maxSpawnAttempts = 50;
+
+ private float _zPosition;
+
+ public override void OnNetworkSpawn()
+ {
+ if (IsServer)
+ {
+ SpawnCreeps();
+ }
+ }
+
+ public void InitializeCamp(float zPosition, float strengthMultiplier)
+ {
+ _zPosition = zPosition;
+ campStrength = strengthMultiplier;
+ }
+
+ public void SetCreepPrefabs(List prefabs)
+ {
+ creepPrefabs.Clear();
+ creepPrefabs.AddRange(prefabs);
+ Debug.Log($"[CreepCamp] SetCreepPrefabs called with {prefabs.Count} prefabs. Current count: {creepPrefabs.Count}");
+ }
+
+ private void SpawnCreeps()
+ {
+ Debug.Log($"[CreepCamp] Starting creep spawn at Z={_zPosition:F1}, strength={campStrength:F2}x, prefabs={creepPrefabs.Count}");
+
+ if (creepPrefabs.Count == 0)
+ {
+ Debug.LogWarning($"[CreepCamp] No creep prefabs assigned!");
+ return;
+ }
+
+ float remainingCost = campCostBudget * campStrength;
+ Debug.Log($"[CreepCamp] Cost budget: {campCostBudget} x {campStrength:F2} = {remainingCost:F2}");
+
+ int spawnedCount = 0;
+
+ for (int attempt = 0; attempt < maxSpawnAttempts && remainingCost > 0; attempt++)
+ {
+ GameObject selectedCreep = SelectCreepByCost(remainingCost);
+ if (selectedCreep == null)
+ {
+ Debug.LogWarning($"[CreepCamp] Could not select creep (attempt {attempt + 1}/{maxSpawnAttempts}), remaining cost: {remainingCost:F2}");
+ break;
+ }
+
+ CreepData creepData = GetCreepDataFromPrefab(selectedCreep);
+ if (creepData == null)
+ {
+ Debug.LogWarning($"[CreepCamp] Could not get creep data from {selectedCreep.name}");
+ continue;
+ }
+
+ if (creepData.cost > remainingCost)
+ {
+ if (!CanSpawnAnyCreep(remainingCost))
+ {
+ Debug.LogWarning($"[CreepCamp] No affordable creeps found. Remaining cost: {remainingCost:F2}");
+ break;
+ }
+ continue;
+ }
+
+ Debug.Log($"[CreepCamp] Spawning {selectedCreep.name} (cost: {creepData.cost}, remaining: {remainingCost:F2})");
+ SpawnCreep(selectedCreep);
+ remainingCost -= creepData.cost;
+ spawnedCount++;
+ }
+
+ Debug.Log($"[CreepCamp] Spawned {spawnedCount} creeps at Z={_zPosition:F1} with strength {campStrength:F2}x");
+ }
+
+ private GameObject SelectCreepByCost(float remainingCost)
+ {
+ List affordableCreeps = new List();
+
+ foreach (var prefab in creepPrefabs)
+ {
+ CreepData creepData = GetCreepDataFromPrefab(prefab);
+ if (creepData != null && creepData.cost <= remainingCost)
+ {
+ affordableCreeps.Add(prefab);
+ }
+ }
+
+ if (affordableCreeps.Count == 0)
+ {
+ return null;
+ }
+
+ float totalWeight = 0f;
+ foreach (var prefab in affordableCreeps)
+ {
+ CreepData creepData = GetCreepDataFromPrefab(prefab);
+ if (creepData != null)
+ {
+ totalWeight += creepData.weight;
+ }
+ }
+
+ if (totalWeight == 0f)
+ {
+ return affordableCreeps[Random.Range(0, affordableCreeps.Count)];
+ }
+
+ float randomValue = Random.Range(0f, totalWeight);
+ float cumulativeWeight = 0f;
+
+ foreach (var prefab in affordableCreeps)
+ {
+ CreepData creepData = GetCreepDataFromPrefab(prefab);
+ if (creepData != null)
+ {
+ cumulativeWeight += creepData.weight;
+ if (randomValue <= cumulativeWeight)
+ {
+ return prefab;
+ }
+ }
+ }
+
+ return affordableCreeps[Random.Range(0, affordableCreeps.Count)];
+ }
+
+ private bool CanSpawnAnyCreep(float remainingCost)
+ {
+ foreach (var prefab in creepPrefabs)
+ {
+ CreepData creepData = GetCreepDataFromPrefab(prefab);
+ if (creepData != null && creepData.cost <= remainingCost)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private CreepData GetCreepDataFromPrefab(GameObject prefab)
+ {
+ if (prefab == null) return null;
+
+ CreepDataComponent component = prefab.GetComponent();
+ if (component != null)
+ {
+ return component.creepData;
+ }
+
+ return null;
+ }
+
+ private void SpawnCreep(GameObject prefab)
+ {
+ Vector3 spawnOffset = Random.insideUnitSphere * spawnRadius;
+ spawnOffset.y = 0;
+
+ GameObject creep = Instantiate(prefab, transform.position + spawnOffset, Quaternion.identity);
+
+ if (creep.GetComponent() == null)
+ {
+ var visibility = creep.AddComponent();
+ visibility.showInExploredAreas = false;
+ visibility.updateInterval = 0.2f;
+ }
+
+ NetworkObject networkObj = creep.GetComponent();
+ if (networkObj == null)
+ {
+ networkObj = creep.AddComponent();
+ }
+
+ networkObj.Spawn();
+
+ creep.transform.SetParent(transform);
+ }
+
+ private void OnDrawGizmos()
+ {
+ Gizmos.color = Color.red;
+ Gizmos.DrawWireSphere(transform.position, spawnRadius);
+ }
+
+ private void OnDrawGizmosSelected()
+ {
+ Gizmos.color = new Color(1f, 0f, 0f, 0.3f);
+ Gizmos.DrawSphere(transform.position, spawnRadius);
+ }
+ }
+}
diff --git a/Assets/Scripts/CreepCamp.cs.meta b/Assets/Scripts/CreepCamp.cs.meta
new file mode 100644
index 0000000..243197e
--- /dev/null
+++ b/Assets/Scripts/CreepCamp.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: d4c5f296c2ebd7d41b2517a03c8b574c
\ No newline at end of file
diff --git a/Assets/Scripts/CreepDataComponent.cs b/Assets/Scripts/CreepDataComponent.cs
new file mode 100644
index 0000000..1b1b8a4
--- /dev/null
+++ b/Assets/Scripts/CreepDataComponent.cs
@@ -0,0 +1,62 @@
+using Northbound.Data;
+using Unity.Netcode;
+using UnityEngine;
+using UnityEngine.AI;
+
+namespace Northbound
+{
+ [RequireComponent(typeof(EnemyUnit))]
+ [RequireComponent(typeof(EnemyAIController))]
+ [RequireComponent(typeof(NavMeshAgent))]
+ [RequireComponent(typeof(NetworkObject))]
+ public class CreepDataComponent : MonoBehaviour
+ {
+ [Header("Data Reference")]
+ [Tooltip("ScriptableObject containing creep data")]
+ public CreepData creepData;
+
+ [Header("Auto-Apply Settings")]
+ [Tooltip("Automatically apply stats from creepData on Awake")]
+ public bool autoApplyOnAwake = true;
+
+ private void Awake()
+ {
+ if (autoApplyOnAwake && creepData != null)
+ {
+ ApplyCreepData();
+ }
+ }
+
+ public void ApplyCreepData()
+ {
+ if (creepData == null)
+ {
+ Debug.LogWarning("[CreepDataComponent] creepData is null", this);
+ return;
+ }
+
+ EnemyUnit enemyUnit = GetComponent();
+ if (enemyUnit != null)
+ {
+ enemyUnit.maxHealth = creepData.maxHp;
+ }
+
+ EnemyAIController aiController = GetComponent();
+ if (aiController != null)
+ {
+ aiController.moveSpeed = creepData.moveSpeed;
+ aiController.attackDamage = creepData.atkDamage;
+ aiController.attackRange = creepData.atkRange;
+ aiController.attackInterval = creepData.atkIntervalSec;
+ }
+
+ NavMeshAgent navAgent = GetComponent();
+ if (navAgent != null)
+ {
+ navAgent.speed = creepData.moveSpeed;
+ }
+
+ Debug.Log($"[CreepDataComponent] Applied data for {creepData.id} ({creepData.memo})", this);
+ }
+ }
+}
diff --git a/Assets/Scripts/CreepDataComponent.cs.meta b/Assets/Scripts/CreepDataComponent.cs.meta
new file mode 100644
index 0000000..1580ace
--- /dev/null
+++ b/Assets/Scripts/CreepDataComponent.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 85e4c68e85ef1704b83cecb71de7d67a
\ No newline at end of file
diff --git a/Assets/Scripts/Editor/CSVToSOImporter.cs b/Assets/Scripts/Editor/CSVToSOImporter.cs
index d206f56..43198cb 100644
--- a/Assets/Scripts/Editor/CSVToSOImporter.cs
+++ b/Assets/Scripts/Editor/CSVToSOImporter.cs
@@ -59,6 +59,7 @@ namespace Northbound.Editor
prefabSetups = new Dictionary
{
{ "Monster", new MonsterPrefabSetup() },
+ { "Creep", new CreepPrefabSetup() },
{ "Tower", new TowerPrefabSetup() },
{ "Player", new PlayerPrefabSetup() }
};
diff --git a/Assets/Scripts/Editor/CreepPrefabSetup.cs b/Assets/Scripts/Editor/CreepPrefabSetup.cs
new file mode 100644
index 0000000..8b63d6b
--- /dev/null
+++ b/Assets/Scripts/Editor/CreepPrefabSetup.cs
@@ -0,0 +1,118 @@
+using Northbound.Data;
+using UnityEditor;
+using UnityEngine;
+
+namespace Northbound.Editor
+{
+ public class CreepPrefabSetup : IPrefabSetup
+ {
+ public string GetTemplateName()
+ {
+ return "CreepTemplate";
+ }
+
+ public void SetupPrefab(GameObject prefab, ScriptableObject data)
+ {
+ if (!(data is CreepData creepData))
+ {
+ Debug.LogWarning($"[CreepPrefabSetup] Expected CreepData, got {data.GetType().Name}");
+ return;
+ }
+
+ var creepDataComponent = prefab.GetComponent();
+ if (creepDataComponent != null)
+ {
+ creepDataComponent.creepData = creepData;
+ creepDataComponent.ApplyCreepData();
+ }
+
+ var animationController = prefab.GetComponent();
+ if (animationController == null)
+ {
+ animationController = prefab.AddComponent();
+ Debug.Log($"[CreepPrefabSetup] Added MonsterAnimationController component");
+ }
+
+ if (!string.IsNullOrEmpty(creepData.modelPath))
+ {
+ RemoveOldModel(prefab);
+
+ if (creepData.modelPath.ToLower().EndsWith(".fbx"))
+ {
+ GameObject fbxModel = AssetDatabase.LoadAssetAtPath(creepData.modelPath);
+ if (fbxModel != null)
+ {
+ GameObject fbxInstance = GameObject.Instantiate(fbxModel);
+ fbxInstance.name = "Model";
+ fbxInstance.transform.SetParent(prefab.transform, false);
+ fbxInstance.transform.localPosition = Vector3.zero;
+ fbxInstance.transform.localRotation = Quaternion.identity;
+ fbxInstance.transform.localScale = Vector3.one;
+
+ Debug.Log($"[CreepPrefabSetup] Applied FBX model: {creepData.modelPath}");
+
+ Avatar modelAvatar = fbxModel.GetComponent()?.avatar;
+
+ if (modelAvatar != null)
+ {
+ Animator prefabAnimator = prefab.GetComponent();
+ if (prefabAnimator != null)
+ {
+ prefabAnimator.avatar = modelAvatar;
+ Debug.Log($"[CreepPrefabSetup] Applied Avatar: {modelAvatar.name}");
+ }
+ }
+ }
+ else
+ {
+ Debug.LogWarning($"[CreepPrefabSetup] Could not load FBX model: {creepData.modelPath}");
+ }
+ }
+ else
+ {
+ var meshFilter = prefab.GetComponent();
+ if (meshFilter != null)
+ {
+ Mesh mesh = AssetDatabase.LoadAssetAtPath(creepData.modelPath);
+ if (mesh != null)
+ {
+ meshFilter.sharedMesh = mesh;
+ Debug.Log($"[CreepPrefabSetup] Applied mesh: {creepData.modelPath}");
+ }
+ else
+ {
+ Debug.LogWarning($"[CreepPrefabSetup] Could not load mesh: {creepData.modelPath}");
+ }
+ }
+ }
+ }
+
+ if (!string.IsNullOrEmpty(creepData.animationControllerPath))
+ {
+ Animator animator = prefab.GetComponent();
+ if (animator != null)
+ {
+ RuntimeAnimatorController controller = AssetDatabase.LoadAssetAtPath(creepData.animationControllerPath);
+ if (controller != null)
+ {
+ animator.runtimeAnimatorController = controller;
+ Debug.Log($"[CreepPrefabSetup] Applied Animator Controller: {creepData.animationControllerPath}");
+ }
+ else
+ {
+ Debug.LogWarning($"[CreepPrefabSetup] Could not load Animator Controller: {creepData.animationControllerPath}");
+ }
+ }
+ }
+ }
+
+ private void RemoveOldModel(GameObject prefab)
+ {
+ Transform oldModel = prefab.transform.Find("Model");
+ if (oldModel != null)
+ {
+ GameObject.DestroyImmediate(oldModel.gameObject);
+ }
+ }
+ }
+}
diff --git a/Assets/Scripts/Editor/CreepPrefabSetup.cs.meta b/Assets/Scripts/Editor/CreepPrefabSetup.cs.meta
new file mode 100644
index 0000000..e520671
--- /dev/null
+++ b/Assets/Scripts/Editor/CreepPrefabSetup.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 74efb75ea8ccbe54a9c86d0fd503f85f
\ No newline at end of file
diff --git a/Assets/Scripts/MapGenerator.cs b/Assets/Scripts/MapGenerator.cs
index 71c7596..ed2eeee 100644
--- a/Assets/Scripts/MapGenerator.cs
+++ b/Assets/Scripts/MapGenerator.cs
@@ -86,6 +86,27 @@ namespace Northbound
[Tooltip("배치 시도 최대 횟수")]
[SerializeField] private int maxObstacleSpawnAttempts = 50;
+ [Header("Creep Camp Settings")]
+ [Tooltip("크립 캠프 프리팹")]
+ public GameObject creepCampPrefab;
+ [Tooltip("크립 캠프 간 최소 거리")]
+ [SerializeField] private float minDistanceBetweenCamps = 30f;
+ [Tooltip("코어와의 최소 거리")]
+ [SerializeField] private float minDistanceFromCoreCamps = 30f;
+ [Tooltip("막사와의 최소 거리")]
+ [SerializeField] private float minDistanceFromBarracksCamps = 30f;
+ [Tooltip("초기 자원과의 최소 거리")]
+ [SerializeField] private float minDistanceFromInitialResource = 30f;
+ [Tooltip("추가 크립 캠프 개수")]
+ [Range(0, 10)]
+ [SerializeField] private int additionalCreepCampCount = 5;
+ [Tooltip("크립 캠프 강도 기본값")]
+ [SerializeField] private float baseCampStrength = 1f;
+ [Tooltip("Z 위치에 따른 강도 증가율 (Z 100당)")]
+ [SerializeField] private float strengthIncreasePerZ100 = 0.2f;
+ [Tooltip("자원 보호 캠프 강도 보너스 (far camp보다 얼마나 강할지)")]
+ [SerializeField] private float resourceCampStrengthBonus = 0.5f;
+
[Header("Generation Order")]
[Tooltip("자원 먼저 생성 후 장애물 생성 (true) 또는 그 반대 (false)")]
[SerializeField] private bool generateResourcesFirst = true;
@@ -93,6 +114,8 @@ namespace Northbound
private ResourceData[] _generatedResources;
private float _globalProductionMultiplier = 1f;
private List _spawnedPositions = new List();
+ private List _creepCampPositions = new List();
+ private List _creepPrefabs = new List();
private Transform _objectsParent;
[System.Serializable]
@@ -177,6 +200,7 @@ namespace Northbound
}
_spawnedPositions.Clear();
+ _creepCampPositions.Clear();
if (generateResourcesFirst)
{
@@ -189,6 +213,8 @@ namespace Northbound
GenerateResources();
}
+ GenerateCreepCamps();
+
Debug.Log($"[MapGenerator] Map generation complete!");
}
@@ -658,6 +684,241 @@ namespace Northbound
#endregion
+ #region Creep Camp Generation
+
+ private void GenerateCreepCamps()
+ {
+ if (creepCampPrefab == null)
+ {
+ Debug.LogWarning("[MapGenerator] Creep camp prefab not assigned, skipping creep camp generation.");
+ return;
+ }
+
+ LoadCreepPrefabs();
+
+ if (_creepPrefabs.Count == 0)
+ {
+ Debug.LogWarning("[MapGenerator] No creep prefabs found in Assets/Prefabs/Creep/, skipping creep camp generation.");
+ return;
+ }
+
+ Debug.Log($"[MapGenerator] Starting creep camp generation. Resources: {_generatedResources.Length}, Additional camps: {additionalCreepCampCount}");
+
+ int totalCampsSpawned = 0;
+
+ for (int i = 0; i < _generatedResources.Length; i++)
+ {
+ Vector3 campPosition = FindValidCampPositionForResource(_generatedResources[i].position);
+ if (campPosition != Vector3.zero)
+ {
+ float strength = CalculateCampStrength(_generatedResources[i].position.y, isResourceCamp: true);
+ Debug.Log($"[MapGenerator] Spawning resource camp {i + 1} for resource at {_generatedResources[i].position}, position: {campPosition}, strength: {strength:F2} (with bonus)");
+ SpawnCreepCamp(campPosition, strength);
+ _creepCampPositions.Add(campPosition);
+ totalCampsSpawned++;
+ }
+ }
+
+ int additionalSpawned = 0;
+ for (int i = 0; i < additionalCreepCampCount; i++)
+ {
+ Vector3 campPosition = FindValidCampPosition();
+ if (campPosition != Vector3.zero)
+ {
+ float strength = CalculateCampStrength(campPosition.z, isResourceCamp: false);
+ Debug.Log($"[MapGenerator] Spawning additional camp {i + 1}, position: {campPosition}, strength: {strength:F2}");
+ SpawnCreepCamp(campPosition, strength);
+ _creepCampPositions.Add(campPosition);
+ additionalSpawned++;
+ }
+ }
+
+ Debug.Log($"[MapGenerator] Spawned {totalCampsSpawned} resource-based camps and {additionalSpawned} additional camps. Total: {totalCampsSpawned + additionalSpawned}");
+ }
+
+ private void LoadCreepPrefabs()
+ {
+ Debug.Log($"[MapGenerator] LoadCreepPrefabs called, current count: {_creepPrefabs.Count}");
+
+ if (_creepPrefabs.Count > 0)
+ {
+ Debug.Log($"[MapGenerator] Skipping load, already have {_creepPrefabs.Count} prefabs");
+ return;
+ }
+
+#if UNITY_EDITOR
+ string[] prefabGuids = UnityEditor.AssetDatabase.FindAssets("t:Prefab", new[] { "Assets/Prefabs/Creep" });
+ Debug.Log($"[MapGenerator] Found {prefabGuids.Length} prefabs in Assets/Prefabs/Creep/");
+ _creepPrefabs.Clear();
+
+ foreach (string guid in prefabGuids)
+ {
+ string assetPath = UnityEditor.AssetDatabase.GUIDToAssetPath(guid);
+ GameObject prefab = UnityEditor.AssetDatabase.LoadAssetAtPath(assetPath);
+
+ if (prefab != null && prefab.GetComponent() != null)
+ {
+ _creepPrefabs.Add(prefab);
+ Debug.Log($"[MapGenerator] Added creep prefab: {prefab.name}");
+ }
+ }
+#else
+ Debug.LogWarning("[MapGenerator] Creep prefabs not loaded in build. Please assign creep prefabs manually in Inspector.");
+#endif
+
+ if (_creepPrefabs.Count > 0)
+ {
+ Debug.Log($"[MapGenerator] Loaded {_creepPrefabs.Count} creep prefabs from Assets/Prefabs/Creep/");
+ }
+ else
+ {
+ Debug.LogWarning("[MapGenerator] No creep prefabs loaded!");
+ }
+ }
+
+ private Vector3 FindValidCampPosition()
+ {
+ int maxAttempts = 200;
+
+ for (int attempt = 0; attempt < maxAttempts; attempt++)
+ {
+ Vector3 candidatePosition = GetRandomPositionInPlayableArea();
+
+ if (IsValidCreepCampPosition(candidatePosition))
+ {
+ return candidatePosition;
+ }
+ }
+
+ return Vector3.zero;
+ }
+
+ private bool IsValidCreepCampPosition(Vector3 position)
+ {
+ if (Vector2.Distance(new Vector2(position.x, position.z), _corePosition) < minDistanceFromCoreCamps)
+ {
+ return false;
+ }
+
+ if (Vector2.Distance(new Vector2(position.x, position.z), _barracksPosition) < minDistanceFromBarracksCamps)
+ {
+ return false;
+ }
+
+ if (Vector2.Distance(new Vector2(position.x, position.z), _initialResourcePosition) < minDistanceFromInitialResource)
+ {
+ return false;
+ }
+
+ foreach (var campPos in _creepCampPositions)
+ {
+ if (Vector3.Distance(position, campPos) < minDistanceBetweenCamps)
+ {
+ return false;
+ }
+ }
+
+ if (position.x < -playableAreaWidth / 2f || position.x > playableAreaWidth / 2f)
+ {
+ return false;
+ }
+
+ if (position.z < startZ || position.z > endZ)
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ private Vector3 FindValidCampPositionForResource(Vector2 resourcePosition)
+ {
+ Vector3 bestPosition = Vector3.zero;
+ float bestDistance = float.MaxValue;
+ int maxAttempts = 50;
+
+ Debug.Log($"[MapGenerator] FindValidCampPositionForResource: Resource at {resourcePosition}, bounds: X:[{-playableAreaWidth/2f}, {playableAreaWidth/2f}], Z:[{startZ}, {endZ}]");
+
+ for (int attempt = 0; attempt < maxAttempts; attempt++)
+ {
+ float angle = Random.Range(0f, 360f);
+ float distance = Random.Range(8f, 20f);
+ Vector3 candidatePosition = new Vector3(
+ resourcePosition.x + Mathf.Cos(angle * Mathf.Deg2Rad) * distance,
+ 1f,
+ resourcePosition.y + Mathf.Sin(angle * Mathf.Deg2Rad) * distance
+ );
+
+ if (IsValidCreepCampPosition(candidatePosition))
+ {
+ if (Vector3.Distance(candidatePosition, new Vector3(resourcePosition.x, 0, resourcePosition.y)) < bestDistance)
+ {
+ bestDistance = Vector3.Distance(candidatePosition, new Vector3(resourcePosition.x, 0, resourcePosition.y));
+ bestPosition = candidatePosition;
+ }
+ }
+ }
+
+ if (bestPosition == Vector3.zero)
+ {
+ Debug.LogWarning($"[MapGenerator] Failed to find camp position for resource at {resourcePosition} after {maxAttempts} attempts");
+ }
+
+ return bestPosition;
+ }
+
+ private float CalculateCampStrength(float zPosition, bool isResourceCamp = false)
+ {
+ float normalizedZ = (zPosition - startZ) / (endZ - startZ);
+ float strengthMultiplier = baseCampStrength + (normalizedZ * (strengthIncreasePerZ100 * (endZ - startZ) / 100f));
+
+ if (isResourceCamp)
+ {
+ strengthMultiplier *= resourceCampStrengthBonus;
+ }
+
+ return strengthMultiplier;
+ }
+
+ private void SpawnCreepCamp(Vector3 position, float strength)
+ {
+ GameObject campObj = Instantiate(creepCampPrefab, position, Quaternion.identity);
+
+ CreepCamp creepCamp = campObj.GetComponent();
+ if (creepCamp == null)
+ {
+ Debug.LogError($"[MapGenerator] Creep camp prefab doesn't have CreepCamp component!");
+ Destroy(campObj);
+ return;
+ }
+
+ creepCamp.InitializeCamp(position.z, strength);
+ creepCamp.SetCreepPrefabs(_creepPrefabs);
+ Debug.Log($"[MapGenerator] Camp initialized with {_creepPrefabs.Count} creep prefabs");
+
+ NetworkObject networkObj = campObj.GetComponent();
+ if (networkObj == null)
+ {
+ networkObj = campObj.AddComponent();
+ }
+
+ networkObj.Spawn();
+
+ if (groupUnderParent && _objectsParent != null)
+ {
+ campObj.transform.SetParent(_objectsParent);
+ }
+
+ if (campObj.GetComponent() == null)
+ {
+ var visibility = campObj.AddComponent();
+ visibility.showInExploredAreas = false;
+ visibility.updateInterval = 0.2f;
+ }
+ }
+
+ #endregion
+
#region Public Methods
public float GetTotalProduction()
@@ -758,6 +1019,15 @@ namespace Northbound
Gizmos.color = Color.blue;
Gizmos.DrawWireSphere(new Vector3(_initialResourcePosition.x, 0, _initialResourcePosition.y), 5f);
}
+
+ if (creepCampPrefab != null)
+ {
+ Gizmos.color = Color.red;
+ foreach (var campPos in _creepCampPositions)
+ {
+ Gizmos.DrawWireSphere(campPos, 8f);
+ }
+ }
#endif
}
diff --git a/DataTools/generate_csharp_classes.py b/DataTools/generate_csharp_classes.py
index 80761e2..bc2f2bb 100644
--- a/DataTools/generate_csharp_classes.py
+++ b/DataTools/generate_csharp_classes.py
@@ -82,7 +82,7 @@ def generate_class(schema_name, schema):
lines.append("namespace Northbound.Data")
lines.append("{")
lines.append(f' [CreateAssetMenu(fileName = "{class_name}", menuName = "Northbound/{schema_name} Data")]')
- lines.append(f" public class {class_name} : ScriptableObject")
+ lines.append(f" public partial class {class_name} : ScriptableObject")
lines.append(" {")
# 공통 필드
diff --git a/GameData/.Creep_schema.json b/GameData/.Creep_schema.json
new file mode 100644
index 0000000..1ea5acf
--- /dev/null
+++ b/GameData/.Creep_schema.json
@@ -0,0 +1,68 @@
+[
+ {
+ "name": "id",
+ "type": "int",
+ "condition": null,
+ "description": "고유 ID"
+ },
+ {
+ "name": "memo",
+ "type": "string",
+ "condition": null,
+ "description": "기획 메모"
+ },
+ {
+ "name": "move_speed",
+ "type": "float",
+ "condition": null,
+ "description": "이동 속도"
+ },
+ {
+ "name": "max_hp",
+ "type": "int",
+ "condition": null,
+ "description": "체력"
+ },
+ {
+ "name": "atk_range",
+ "type": "int",
+ "condition": null,
+ "description": "사정 거리"
+ },
+ {
+ "name": "atk_damage",
+ "type": "int",
+ "condition": null,
+ "description": "데미지"
+ },
+ {
+ "name": "atk_interval_sec",
+ "type": "float",
+ "condition": null,
+ "description": "공격 주기"
+ },
+ {
+ "name": "cost",
+ "type": "int",
+ "condition": null,
+ "description": "몬스터 난이도 점수"
+ },
+ {
+ "name": "weight",
+ "type": "float",
+ "condition": null,
+ "description": "등장 가중치"
+ },
+ {
+ "name": "model_path",
+ "type": "string",
+ "condition": null,
+ "description": "사용할 모델의 경로"
+ },
+ {
+ "name": "animation_controller_path",
+ "type": "string",
+ "condition": null,
+ "description": "사용할 애니메이션 컨트롤러의 경로"
+ }
+]
\ No newline at end of file
diff --git a/GameData/.Tower_schema.json b/GameData/.Tower_schema.json
index 878b8b4..094debc 100644
--- a/GameData/.Tower_schema.json
+++ b/GameData/.Tower_schema.json
@@ -11,6 +11,12 @@
"condition": null,
"description": "기획 메모"
},
+ {
+ "name": "building_name",
+ "type": "string",
+ "condition": null,
+ "description": "건물 이름"
+ },
{
"name": "mana",
"type": "int",
diff --git a/GameData/Creep.csv b/GameData/Creep.csv
new file mode 100644
index 0000000..23e1682
--- /dev/null
+++ b/GameData/Creep.csv
@@ -0,0 +1,2 @@
+id,memo,move_speed,max_hp,atk_range,atk_damage,atk_interval_sec,cost,weight,model_path,animation_controller_path
+1,기본1,5.0,100,3,20,1.5,1,1.0,Assets/Models/PlantWarrior.fbx,Assets/Animations/MonsterAnimationController.controller
diff --git a/GameData/Player.csv b/GameData/Player.csv
index 40bb5a8..e9b1d26 100644
--- a/GameData/Player.csv
+++ b/GameData/Player.csv
@@ -1,2 +1,2 @@
-id,memo,move_speed,vision_radius,capacity,manpower,max_hp,atk_range,atk_damage,atk_interval_sec,prefab_path
+id,memo,move_speed,vision_radius,capacity,manpower,max_hp,atk_range,atk_damage,atk_interval_sec,prefab_path
1,,5,10,50,10,100,3,100,1,Assets/Prefabs/Player/Player
diff --git a/GameData/Tower.csv b/GameData/Tower.csv
index bd79f2b..92a9235 100644
--- a/GameData/Tower.csv
+++ b/GameData/Tower.csv
@@ -1,3 +1,3 @@
-id,memo,mana,manpower,size_x,size_y,size_z,max_hp,atk_range,atk_damage,atk_interval_sec,model_path
-1,타워,25,10,4,10,4,50,10,5,2,Assets/Models/building_tower_B_blue.fbx
-2,벽,5,5,8,4,3,30,0,0,0,Assets/Models/wall_straight.fbx
+id,memo,building_name,mana,manpower,size_x,size_y,size_z,max_hp,atk_range,atk_damage,atk_interval_sec,model_path
+1,타워,,25,10,4,10,4,50,10,5,2,Assets/Models/building_tower_B_blue.fbx
+2,벽,,5,5,8,4,3,30,0,0,0,Assets/Models/wall_straight.fbx