fix(BT12-Dev): 몬스터 종류 random — 6 OverrideController·MonsterRandomizer

PD: "몬스터 색을 랜덤으로 하라는 얘기가 아니라 몬스터 종류를 랜덤으로 하라고 했잖아"

자성: 직전 commit 6e774dc에서 PD 의도 오역 — 색 tint 영역. 종류(sprite) random 의도 정합 X.

근본 (MCP 자율 영역):
- Enemy.prefab idleFrames 24 sprite (M001~M006 × 4 idle frame) 영역 영역
- Enemy.controller 4 Clip (EnemyIdle·EnemyRun·EnemyHurt·EnemyDeath)
- 영역: 6 Idle Clip + 6 OverrideController·EnemyIdle만 override

fix:
1. 6 AnimationClip 신규 — M001_Idle ~ M006_Idle.anim
   - 각 4 sprite keyframe·frameRate 12·loopTime=true
   - SetObjectReferenceCurve (m_Sprite property)
2. 6 AnimatorOverrideController 신규 — M001 ~ M006.overrideController
   - runtimeAnimatorController = Enemy.controller
   - EnemyIdle Clip → M00x_Idle Clip override
   - EnemyRun·EnemyHurt·EnemyDeath 영역 (영역 sprite·6종 영역 영역 영역)
3. MonsterRandomizer 영역
   - overrideControllers[6] 영역
   - Awake 영역 random select·animator.runtimeAnimatorController = overrideControllers[idx]
   - 색 tint 영역 폐기
4. Enemy.prefab MonsterRandomizer.overrideControllers 6 OverrideController 영역
5. Scene 영역 활성 Enemy 16개 SpriteRenderer.color = white (이전 tint 영역)

회귀 영역 X:
- Animator (Idle·Run·Hurt·Death) 정합 유지·EnemyIdle만 override
- One-Way Platform·Enemy 발판 IgnoreCollision·Player·Camera 영역 영역 X

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
깃 관리자 2026-05-11 01:37:54 +09:00
parent 6e774dc375
commit 38031279d1
27 changed files with 756 additions and 36 deletions

View File

@ -0,0 +1,19 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!221 &22100000
AnimatorOverrideController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: M001
m_Controller: {fileID: 9100000, guid: ed1bbb2dccb7a424a9969f916919f446, type: 2}
m_Clips:
- m_OriginalClip: {fileID: 7400000, guid: a16c2646085174726a41a2900d723bdd, type: 2}
m_OverrideClip: {fileID: 0}
- m_OriginalClip: {fileID: 7400000, guid: 6fbd3b4272fc84993b8317d782d39f77, type: 2}
m_OverrideClip: {fileID: 7400000, guid: bf13c97f38b9fe04d9147125cf90f713, type: 2}
- m_OriginalClip: {fileID: 7400000, guid: 6d1eca749f9f840299a309e3fd0302af, type: 2}
m_OverrideClip: {fileID: 0}
- m_OriginalClip: {fileID: 7400000, guid: 8151a21a86e8443db8efcec43314dece, type: 2}
m_OverrideClip: {fileID: 0}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 34b1bfac0b80cc741817e1d1c2c86f31
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 22100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,85 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: M001_Idle
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- serializedVersion: 2
curve:
- time: 0
value: {fileID: -7548370174848201806, guid: f7b7e5d5d35e8ea4a9574fc970089486,
type: 3}
- time: 0.083333336
value: {fileID: 3965259580443734907, guid: eb4754ac8816180459f43ea0d2be515d,
type: 3}
- time: 0.16666667
value: {fileID: 3875302334163674375, guid: f8a4b8c30ad9dc0479c2a21f635975c0,
type: 3}
- time: 0.25
value: {fileID: -5286858119833128327, guid: f8519f10c50debc448559483e0af1b42,
type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
flags: 2
m_SampleRate: 12
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping:
- {fileID: -7548370174848201806, guid: f7b7e5d5d35e8ea4a9574fc970089486, type: 3}
- {fileID: 3965259580443734907, guid: eb4754ac8816180459f43ea0d2be515d, type: 3}
- {fileID: 3875302334163674375, guid: f8a4b8c30ad9dc0479c2a21f635975c0, type: 3}
- {fileID: -5286858119833128327, guid: f8519f10c50debc448559483e0af1b42, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.33333334
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

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

View File

@ -0,0 +1,19 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!221 &22100000
AnimatorOverrideController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: M002
m_Controller: {fileID: 9100000, guid: ed1bbb2dccb7a424a9969f916919f446, type: 2}
m_Clips:
- m_OriginalClip: {fileID: 7400000, guid: a16c2646085174726a41a2900d723bdd, type: 2}
m_OverrideClip: {fileID: 0}
- m_OriginalClip: {fileID: 7400000, guid: 6fbd3b4272fc84993b8317d782d39f77, type: 2}
m_OverrideClip: {fileID: 7400000, guid: a0029c13107b3cf458f0e540a98c3e62, type: 2}
- m_OriginalClip: {fileID: 7400000, guid: 6d1eca749f9f840299a309e3fd0302af, type: 2}
m_OverrideClip: {fileID: 0}
- m_OriginalClip: {fileID: 7400000, guid: 8151a21a86e8443db8efcec43314dece, type: 2}
m_OverrideClip: {fileID: 0}

View File

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

View File

@ -0,0 +1,85 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: M002_Idle
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- serializedVersion: 2
curve:
- time: 0
value: {fileID: 4852648563935847630, guid: f8f1bd54f70dc914f9ff6999cff72846,
type: 3}
- time: 0.083333336
value: {fileID: -2075586642352475843, guid: 9dd5ae40315dfde4aa078c1bac029536,
type: 3}
- time: 0.16666667
value: {fileID: -4443778377869457348, guid: 0c9ad66301856634a91cf0e197d82f1f,
type: 3}
- time: 0.25
value: {fileID: -1033834695554640417, guid: 5ee9ab2bd24109d4998b005dbb896611,
type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
flags: 2
m_SampleRate: 12
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping:
- {fileID: 4852648563935847630, guid: f8f1bd54f70dc914f9ff6999cff72846, type: 3}
- {fileID: -2075586642352475843, guid: 9dd5ae40315dfde4aa078c1bac029536, type: 3}
- {fileID: -4443778377869457348, guid: 0c9ad66301856634a91cf0e197d82f1f, type: 3}
- {fileID: -1033834695554640417, guid: 5ee9ab2bd24109d4998b005dbb896611, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.33333334
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

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

View File

@ -0,0 +1,19 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!221 &22100000
AnimatorOverrideController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: M003
m_Controller: {fileID: 9100000, guid: ed1bbb2dccb7a424a9969f916919f446, type: 2}
m_Clips:
- m_OriginalClip: {fileID: 7400000, guid: a16c2646085174726a41a2900d723bdd, type: 2}
m_OverrideClip: {fileID: 0}
- m_OriginalClip: {fileID: 7400000, guid: 6fbd3b4272fc84993b8317d782d39f77, type: 2}
m_OverrideClip: {fileID: 7400000, guid: 93ae879344343b14f90c91200dd99a19, type: 2}
- m_OriginalClip: {fileID: 7400000, guid: 6d1eca749f9f840299a309e3fd0302af, type: 2}
m_OverrideClip: {fileID: 0}
- m_OriginalClip: {fileID: 7400000, guid: 8151a21a86e8443db8efcec43314dece, type: 2}
m_OverrideClip: {fileID: 0}

View File

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

View File

@ -0,0 +1,85 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: M003_Idle
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- serializedVersion: 2
curve:
- time: 0
value: {fileID: -480068022978346209, guid: 2cd59e341ddcef747b2fdeed0e184687,
type: 3}
- time: 0.083333336
value: {fileID: 6320002499032068693, guid: ca8ffcfca8e7451449d5dd9222a808df,
type: 3}
- time: 0.16666667
value: {fileID: 5702032684225411157, guid: 22e51794b9b3d194e93aaf103aab3212,
type: 3}
- time: 0.25
value: {fileID: -6575996007543532477, guid: 0f2b5a062cd5d154d87bd0b576102c53,
type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
flags: 2
m_SampleRate: 12
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping:
- {fileID: -480068022978346209, guid: 2cd59e341ddcef747b2fdeed0e184687, type: 3}
- {fileID: 6320002499032068693, guid: ca8ffcfca8e7451449d5dd9222a808df, type: 3}
- {fileID: 5702032684225411157, guid: 22e51794b9b3d194e93aaf103aab3212, type: 3}
- {fileID: -6575996007543532477, guid: 0f2b5a062cd5d154d87bd0b576102c53, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.33333334
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

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

View File

@ -0,0 +1,19 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!221 &22100000
AnimatorOverrideController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: M004
m_Controller: {fileID: 9100000, guid: ed1bbb2dccb7a424a9969f916919f446, type: 2}
m_Clips:
- m_OriginalClip: {fileID: 7400000, guid: a16c2646085174726a41a2900d723bdd, type: 2}
m_OverrideClip: {fileID: 0}
- m_OriginalClip: {fileID: 7400000, guid: 6fbd3b4272fc84993b8317d782d39f77, type: 2}
m_OverrideClip: {fileID: 7400000, guid: b2773d87c148ee84ba0701139ebd5c09, type: 2}
- m_OriginalClip: {fileID: 7400000, guid: 6d1eca749f9f840299a309e3fd0302af, type: 2}
m_OverrideClip: {fileID: 0}
- m_OriginalClip: {fileID: 7400000, guid: 8151a21a86e8443db8efcec43314dece, type: 2}
m_OverrideClip: {fileID: 0}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 46aeea3f6e013e842a34104ad2526d1d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 22100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,85 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: M004_Idle
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- serializedVersion: 2
curve:
- time: 0
value: {fileID: 1142325901465378314, guid: 601020362ae2a214298ee67b288426c6,
type: 3}
- time: 0.083333336
value: {fileID: -2383216395390897268, guid: f815cc0415b5fe94f951ff5814c7366c,
type: 3}
- time: 0.16666667
value: {fileID: 823019882062329887, guid: 39ea050ebee544740bfe48b5bf3ec6fe,
type: 3}
- time: 0.25
value: {fileID: 3458522810709938060, guid: 20dfa65d954a4434a8cda4938dd43da9,
type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
flags: 2
m_SampleRate: 12
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping:
- {fileID: 1142325901465378314, guid: 601020362ae2a214298ee67b288426c6, type: 3}
- {fileID: -2383216395390897268, guid: f815cc0415b5fe94f951ff5814c7366c, type: 3}
- {fileID: 823019882062329887, guid: 39ea050ebee544740bfe48b5bf3ec6fe, type: 3}
- {fileID: 3458522810709938060, guid: 20dfa65d954a4434a8cda4938dd43da9, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.33333334
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

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

View File

@ -0,0 +1,19 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!221 &22100000
AnimatorOverrideController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: M005
m_Controller: {fileID: 9100000, guid: ed1bbb2dccb7a424a9969f916919f446, type: 2}
m_Clips:
- m_OriginalClip: {fileID: 7400000, guid: a16c2646085174726a41a2900d723bdd, type: 2}
m_OverrideClip: {fileID: 0}
- m_OriginalClip: {fileID: 7400000, guid: 6fbd3b4272fc84993b8317d782d39f77, type: 2}
m_OverrideClip: {fileID: 7400000, guid: 49b13831cbd77f64b952834fcfba1f94, type: 2}
- m_OriginalClip: {fileID: 7400000, guid: 6d1eca749f9f840299a309e3fd0302af, type: 2}
m_OverrideClip: {fileID: 0}
- m_OriginalClip: {fileID: 7400000, guid: 8151a21a86e8443db8efcec43314dece, type: 2}
m_OverrideClip: {fileID: 0}

View File

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

View File

@ -0,0 +1,85 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: M005_Idle
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- serializedVersion: 2
curve:
- time: 0
value: {fileID: 3001420397446177360, guid: f2ccd91debeaa624bb282fbaa4d0153b,
type: 3}
- time: 0.083333336
value: {fileID: -889286983698815187, guid: 5705c3e56b737094592a94a7727b8f07,
type: 3}
- time: 0.16666667
value: {fileID: -1578793236100974128, guid: fff66ff621553424b9943adbc310a2c4,
type: 3}
- time: 0.25
value: {fileID: 1103436243820016618, guid: 61969d12f2371b041b41c21d437bb4a9,
type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
flags: 2
m_SampleRate: 12
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping:
- {fileID: 3001420397446177360, guid: f2ccd91debeaa624bb282fbaa4d0153b, type: 3}
- {fileID: -889286983698815187, guid: 5705c3e56b737094592a94a7727b8f07, type: 3}
- {fileID: -1578793236100974128, guid: fff66ff621553424b9943adbc310a2c4, type: 3}
- {fileID: 1103436243820016618, guid: 61969d12f2371b041b41c21d437bb4a9, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.33333334
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

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

View File

@ -0,0 +1,19 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!221 &22100000
AnimatorOverrideController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: M006
m_Controller: {fileID: 9100000, guid: ed1bbb2dccb7a424a9969f916919f446, type: 2}
m_Clips:
- m_OriginalClip: {fileID: 7400000, guid: a16c2646085174726a41a2900d723bdd, type: 2}
m_OverrideClip: {fileID: 0}
- m_OriginalClip: {fileID: 7400000, guid: 6fbd3b4272fc84993b8317d782d39f77, type: 2}
m_OverrideClip: {fileID: 7400000, guid: eed32e970c59dce47bfa82c8b1c4c097, type: 2}
- m_OriginalClip: {fileID: 7400000, guid: 6d1eca749f9f840299a309e3fd0302af, type: 2}
m_OverrideClip: {fileID: 0}
- m_OriginalClip: {fileID: 7400000, guid: 8151a21a86e8443db8efcec43314dece, type: 2}
m_OverrideClip: {fileID: 0}

View File

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

View File

@ -0,0 +1,85 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: M006_Idle
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- serializedVersion: 2
curve:
- time: 0
value: {fileID: 5433026174052882790, guid: 115d57f5258ccb74f86354a2cd28045d,
type: 3}
- time: 0.083333336
value: {fileID: 8917375057226933945, guid: 5445e614d5225714e9550e08f8bccec1,
type: 3}
- time: 0.16666667
value: {fileID: -4095915237629478068, guid: 1f8ec15a958211a478994dd27d1c879b,
type: 3}
- time: 0.25
value: {fileID: 2697896165774990149, guid: 611097d2df9e43b40bec486f141c7ae9,
type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
flags: 2
m_SampleRate: 12
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping:
- {fileID: 5433026174052882790, guid: 115d57f5258ccb74f86354a2cd28045d, type: 3}
- {fileID: 8917375057226933945, guid: 5445e614d5225714e9550e08f8bccec1, type: 3}
- {fileID: -4095915237629478068, guid: 1f8ec15a958211a478994dd27d1c879b, type: 3}
- {fileID: 2697896165774990149, guid: 611097d2df9e43b40bec486f141c7ae9, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.33333334
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

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

View File

@ -386,3 +386,10 @@ MonoBehaviour:
- {fileID: 8917375057226933945, guid: 5445e614d5225714e9550e08f8bccec1, type: 3}
- {fileID: -4095915237629478068, guid: 1f8ec15a958211a478994dd27d1c879b, type: 3}
- {fileID: 2697896165774990149, guid: 611097d2df9e43b40bec486f141c7ae9, type: 3}
overrideControllers:
- {fileID: 22100000, guid: 34b1bfac0b80cc741817e1d1c2c86f31, type: 2}
- {fileID: 22100000, guid: e5e70d98f606ca64d90643db21841521, type: 2}
- {fileID: 22100000, guid: f90f4a424e9e1b541a29748d89bee057, type: 2}
- {fileID: 22100000, guid: 46aeea3f6e013e842a34104ad2526d1d, type: 2}
- {fileID: 22100000, guid: 2c1697f640a93cb489770071b1045b66, type: 2}
- {fileID: 22100000, guid: b8bc92dcf8f08db4394bda63491268b2, type: 2}

View File

@ -4427,7 +4427,7 @@ PrefabInstance:
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
@ -4437,27 +4437,27 @@ PrefabInstance:
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
value: 480
objectReference: {fileID: 0}
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
value: 600
objectReference: {fileID: 0}
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
value: 750
objectReference: {fileID: 0}
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
value: -300
objectReference: {fileID: 0}
- target: {fileID: 3550758221024711263, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
@ -4577,7 +4577,7 @@ PrefabInstance:
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
@ -4587,27 +4587,27 @@ PrefabInstance:
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
value: 480
objectReference: {fileID: 0}
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
value: 600
objectReference: {fileID: 0}
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
value: 1260
objectReference: {fileID: 0}
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
value: -300
objectReference: {fileID: 0}
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
@ -4617,7 +4617,7 @@ PrefabInstance:
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
@ -4627,27 +4627,27 @@ PrefabInstance:
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
value: 480
objectReference: {fileID: 0}
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
value: 600
objectReference: {fileID: 0}
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
value: 240
objectReference: {fileID: 0}
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
value: -300
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []

View File

@ -3,32 +3,25 @@ using UnityEngine;
namespace Platformer.Mechanics
{
/// <summary>
/// 몬스터 종류 랜덤 영역 — 6 색상 random tint·Animator 정합 유지.
/// PD 지시 (2026-05-11): 몬스터 랜덤 변경.
/// Animator (Idle·Run·Hurt·Death) 영역 + SpriteRenderer.color 6종 random.
/// 몬스터 종류 랜덤 — 6 AnimatorOverrideController random select.
/// PD 지시 (2026-05-11): 몬스터 종류 랜덤 변경.
/// 6종 (M001~M006) Idle Clip override·Animator runtimeAnimatorController random.
/// </summary>
public class MonsterRandomizer : MonoBehaviour
{
[Tooltip("이전 호환 — Inspector idle frames 필드 (실제 영역 X·후속 폐기 가능)")]
[Tooltip("이전 호환 — 24 sprite (6종 × 4 frame). Override Controller 신규 영역 후속 폐기 가능.")]
public Sprite[] idleFrames;
// 6 색상 random tint
static readonly Color[] _tints = new Color[]
{
new Color(1.00f, 1.00f, 1.00f), // White (default)
new Color(1.00f, 0.50f, 0.50f), // Red
new Color(0.50f, 1.00f, 0.50f), // Green
new Color(0.50f, 0.70f, 1.00f), // Blue
new Color(1.00f, 1.00f, 0.50f), // Yellow
new Color(0.85f, 0.50f, 1.00f), // Purple
};
[Tooltip("6 AnimatorOverrideController (M001~M006).")]
public AnimatorOverrideController[] overrideControllers;
void Awake()
{
var sr = GetComponent<SpriteRenderer>();
if (sr == null) return;
int idx = Random.Range(0, _tints.Length);
sr.color = _tints[idx];
if (overrideControllers == null || overrideControllers.Length == 0) return;
var anim = GetComponent<Animator>();
if (anim == null) return;
int idx = Random.Range(0, overrideControllers.Length);
anim.runtimeAnimatorController = overrideControllers[idx];
}
}
}