Merge remote-tracking branch 'origin/main'

This commit is contained in:
IDMhan 2023-10-26 17:52:13 +09:00
commit 4b664495b9
19 changed files with 5609 additions and 282 deletions

View File

@ -196,6 +196,39 @@ Transform:
type: 3} type: 3}
m_PrefabInstance: {fileID: 17330399} m_PrefabInstance: {fileID: 17330399}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1 &26417291
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 26417292}
m_Layer: 0
m_Name: TrailRoot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &26417292
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 26417291}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0.3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1978848785}
- {fileID: 963016597}
m_Father: {fileID: 418278337}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!224 &29785398 stripped --- !u!224 &29785398 stripped
RectTransform: RectTransform:
m_CorrespondingSourceObject: {fileID: 1423656733108109268, guid: b82511a1823faf14f97c60a0e6984872, m_CorrespondingSourceObject: {fileID: 1423656733108109268, guid: b82511a1823faf14f97c60a0e6984872,
@ -208,6 +241,91 @@ GameObject:
type: 3} type: 3}
m_PrefabInstance: {fileID: 745533737} m_PrefabInstance: {fileID: 745533737}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1001 &57730034
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 1978848785}
m_Modifications:
- target: {fileID: 185524, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_Name
value: SpikyFireTrail (2)
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalScale.x
value: -1
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalPosition.z
value: 0.7
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalRotation.x
value: -0.7071068
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: -90
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19828646, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: looping
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19828646, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: playOnAwake
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19839156, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: looping
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19839156, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: playOnAwake
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19885640, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: looping
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19885640, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: playOnAwake
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
--- !u!1001 &64008972 --- !u!1001 &64008972
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2562,8 +2680,8 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 334724472} m_GameObject: {fileID: 334724472}
serializedVersion: 2 serializedVersion: 2
m_LocalRotation: {x: 0.56062883, y: -0.000000011532333, z: 0.0000000078077695, w: 0.82806724} m_LocalRotation: {x: 0.33100694, y: -2.0027246e-16, z: -2.8779474e-16, w: 0.9436284}
m_LocalPosition: {x: 30.91, y: 27.217937, z: -37.73} m_LocalPosition: {x: 30.91, y: 22.217937, z: -52.73}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
@ -3187,7 +3305,11 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []
m_AddedGameObjects: [] m_AddedGameObjects:
- targetCorrespondingSourceObject: {fileID: 895707786071648807, guid: 5d3f02c24a243a044bbddafc1652ee67,
type: 3}
insertIndex: -1
addedObject: {fileID: 26417292}
m_AddedComponents: m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 4681418249284042988, guid: 5d3f02c24a243a044bbddafc1652ee67, - targetCorrespondingSourceObject: {fileID: 4681418249284042988, guid: 5d3f02c24a243a044bbddafc1652ee67,
type: 3} type: 3}
@ -3243,7 +3365,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
<ViewRadius>k__BackingField: 8 <ViewRadius>k__BackingField: 8
<AtkRange>k__BackingField: 1.5 <AtkRange>k__BackingField: 2.5
<Targets>k__BackingField: <Targets>k__BackingField:
- {fileID: 0} - {fileID: 0}
- {fileID: 0} - {fileID: 0}
@ -3283,11 +3405,11 @@ MonoBehaviour:
isDrawViewRange: 1 isDrawViewRange: 1
isDrawDefenseRange: 1 isDrawDefenseRange: 1
isDrawTargetRange: 1 isDrawTargetRange: 1
<MaxHp>k__BackingField: 50 <MaxHp>k__BackingField: 300
<CurrentHp>k__BackingField: 0 <CurrentHp>k__BackingField: 0
<MoveSpd>k__BackingField: 5 <MoveSpd>k__BackingField: 5
<Atk>k__BackingField: 10 <Atk>k__BackingField: 10
<AtkCooldown>k__BackingField: 1 <AtkCooldown>k__BackingField: 0.5
<DefenseRange>k__BackingField: 10 <DefenseRange>k__BackingField: 10
<IsRandomMove>k__BackingField: 0 <IsRandomMove>k__BackingField: 0
<RandomMoveRange>k__BackingField: 0 <RandomMoveRange>k__BackingField: 0
@ -3300,8 +3422,14 @@ MonoBehaviour:
<IsCombated>k__BackingField: 0 <IsCombated>k__BackingField: 0
<BeAttackedInIdle>k__BackingField: 0 <BeAttackedInIdle>k__BackingField: 0
<UseRigidbody>k__BackingField: 0 <UseRigidbody>k__BackingField: 0
useMouseAttack: 0
isRolling: 0
beAttacked: 0 beAttacked: 0
isAttacking: 0 isAttacking: 0
attackAngle: 180
angleSpeed: 0.2
rollDuration: 0.5
rollForce: 2
--- !u!114 &418278343 --- !u!114 &418278343
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -3309,14 +3437,14 @@ MonoBehaviour:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 418278336} m_GameObject: {fileID: 418278336}
m_Enabled: 0 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3} m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Actions: {fileID: -944628639613478452, guid: 0acb404847404484198cbf94e6929af2, m_Actions: {fileID: -944628639613478452, guid: 0acb404847404484198cbf94e6929af2,
type: 3} type: 3}
m_NotificationBehavior: 0 m_NotificationBehavior: 2
m_UIInputModule: {fileID: 0} m_UIInputModule: {fileID: 0}
m_DeviceLostEvent: m_DeviceLostEvent:
m_PersistentCalls: m_PersistentCalls:
@ -3327,7 +3455,79 @@ MonoBehaviour:
m_ControlsChangedEvent: m_ControlsChangedEvent:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_ActionEvents: [] m_ActionEvents:
- m_PersistentCalls:
m_Calls: []
m_ActionId: e46165d9-8066-4400-8950-9b7d4bb9ca75
m_ActionName: 'Player/Move[/Keyboard/w,/Keyboard/s,/Keyboard/a,/Keyboard/d]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: 7d9814fb-48e0-4717-91c3-0c7b7d99972c
m_ActionName: 'Player/AssaultMode[/Keyboard/v]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: 367e7267-d329-439d-9806-5e960b8114b5
m_ActionName: 'Player/Interaction[/Keyboard/e]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: a28fe5f5-b2a2-4794-8f99-fa2494aedfc3
m_ActionName: 'Player/InteractionHold[/Keyboard/e]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: 548e1aff-2de9-4dcc-8fe3-6c20ee0e74d4
m_ActionName: 'Player/Zkey[/Keyboard/z]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: e520b814-2e0b-4d05-853e-ac1a35bb6b51
m_ActionName: 'Player/TakeAim[/Keyboard/space]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: c8a82170-8a07-4432-b22f-9ec40486ed27
m_ActionName: 'Player/Cancel[/Keyboard/f]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: bb26b6ad-feae-49d8-a4d8-3633bcabfcab
m_ActionName: 'Player/Targeting[/Keyboard/q]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: c3e552b9-a9be-4d38-8cde-27cc60f7888f
m_ActionName: 'Player/TargetingHold[/Keyboard/q]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: 1558b861-5937-46f7-8887-3f322044049b
m_ActionName: 'Player/SpawnInIsladnPlayer[/Keyboard/t]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: b5508379-f9b3-45f9-ba2e-c16fb67bb36a
m_ActionName: 'Player/CancelHold[/Keyboard/f]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: 5042e547-e870-4479-8263-b143f4d03597
m_ActionName: 'Player/Attack[/Mouse/leftButton,/Keyboard/k]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: c68960a5-036f-4304-8d05-25778470ecfd
m_ActionName: 'Player/Roll[/Keyboard/space]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: 26cdda4e-9797-43df-a511-7745f1de2567
m_ActionName: 'Camera/Zoom[/Mouse/scroll/y]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: d9db46b6-0228-4e7f-8b51-53cae3ccc330
m_ActionName: 'Camera/Rotate[/Mouse/rightButton,/Mouse/leftButton]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: 2c1978d2-b4be-453a-9413-7b54903dbf38
m_ActionName: 'Unit/SelectUnit[/Mouse/leftButton]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: 952be7b5-8952-47b7-a2db-ced6517d161a
m_ActionName: 'Unit/CancelSelectedUnit[/Keyboard/escape]'
- m_PersistentCalls:
m_Calls: []
m_ActionId: 2fe8434e-42e2-4b88-b0b3-0b2b4f8596a8
m_ActionName: 'Unit/MoveUnit[/Mouse/rightButton]'
m_NeverAutoSwitchControlSchemes: 0 m_NeverAutoSwitchControlSchemes: 0
m_DefaultControlScheme: m_DefaultControlScheme:
m_DefaultActionMap: Player m_DefaultActionMap: Player
@ -3340,7 +3540,7 @@ MonoBehaviour:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 418278336} m_GameObject: {fileID: 418278336}
m_Enabled: 1 m_Enabled: 0
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8d7b55c7ecdb49a4a89fa5e6f9022861, type: 3} m_Script: {fileID: 11500000, guid: 8d7b55c7ecdb49a4a89fa5e6f9022861, type: 3}
m_Name: m_Name:
@ -3389,7 +3589,7 @@ NavMeshAgent:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 418278336} m_GameObject: {fileID: 418278336}
m_Enabled: 1 m_Enabled: 0
m_AgentTypeID: 0 m_AgentTypeID: 0
m_Radius: 0.3 m_Radius: 0.3
m_Speed: 3.5 m_Speed: 3.5
@ -3435,7 +3635,7 @@ Rigidbody:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 418278336} m_GameObject: {fileID: 418278336}
serializedVersion: 4 serializedVersion: 4
m_Mass: 1 m_Mass: 10
m_Drag: 0 m_Drag: 0
m_AngularDrag: 0.05 m_AngularDrag: 0.05
m_CenterOfMass: {x: 0, y: 0, z: 0} m_CenterOfMass: {x: 0, y: 0, z: 0}
@ -3450,7 +3650,7 @@ Rigidbody:
m_ImplicitCom: 1 m_ImplicitCom: 1
m_ImplicitTensor: 1 m_ImplicitTensor: 1
m_UseGravity: 1 m_UseGravity: 1
m_IsKinematic: 1 m_IsKinematic: 0
m_Interpolate: 0 m_Interpolate: 0
m_Constraints: 112 m_Constraints: 112
m_CollisionDetection: 0 m_CollisionDetection: 0
@ -3860,6 +4060,12 @@ NavMeshObstacle:
m_CarveOnlyStationary: 1 m_CarveOnlyStationary: 1
m_Center: {x: -0.09900001, y: 2.229, z: 0.049000002} m_Center: {x: -0.09900001, y: 2.229, z: 0.049000002}
m_TimeToStationary: 0.5 m_TimeToStationary: 0.5
--- !u!4 &474440006 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208,
type: 3}
m_PrefabInstance: {fileID: 57730034}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &475708529 --- !u!1001 &475708529
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -6061,8 +6267,8 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 879331193} m_GameObject: {fileID: 879331193}
serializedVersion: 2 serializedVersion: 2
m_LocalRotation: {x: 0.56062883, y: -0.000000011532333, z: 0.0000000078077695, w: 0.82806724} m_LocalRotation: {x: 0.33100694, y: -2.0027246e-16, z: -2.8779474e-16, w: 0.9436284}
m_LocalPosition: {x: 30.91, y: 27.217937, z: -37.73} m_LocalPosition: {x: 30.91, y: 22.217937, z: -52.73}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
@ -6813,6 +7019,38 @@ NavMeshObstacle:
m_CarveOnlyStationary: 1 m_CarveOnlyStationary: 1
m_Center: {x: -0.09900001, y: 2.229, z: 0.049000002} m_Center: {x: -0.09900001, y: 2.229, z: 0.049000002}
m_TimeToStationary: 0.5 m_TimeToStationary: 0.5
--- !u!1 &963016596
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 963016597}
m_Layer: 0
m_Name: AfterImageTrailRoot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &963016597
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963016596}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -0.3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1418799782}
m_Father: {fileID: 26417292}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &966288978 --- !u!1001 &966288978
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -6939,7 +7177,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_persistent: 0 _persistent: 0
<IslandPlayerMode>k__BackingField: 1 <IslandPlayerMode>k__BackingField: 0
<InIslandPlayerPrefab>k__BackingField: {fileID: 418278336} <InIslandPlayerPrefab>k__BackingField: {fileID: 418278336}
<CrewmatePrefabList>k__BackingField: <CrewmatePrefabList>k__BackingField:
- {fileID: 1362034959} - {fileID: 1362034959}
@ -6954,6 +7192,7 @@ MonoBehaviour:
<IsAssaultMode>k__BackingField: 0 <IsAssaultMode>k__BackingField: 0
<IsShipDeckMode>k__BackingField: 0 <IsShipDeckMode>k__BackingField: 0
<IsConversation>k__BackingField: 0 <IsConversation>k__BackingField: 0
<IsInteraction>k__BackingField: 0
<CurrentPlayerMode>k__BackingField: 0 <CurrentPlayerMode>k__BackingField: 0
--- !u!4 &971043561 --- !u!4 &971043561
Transform: Transform:
@ -10559,6 +10798,109 @@ RectTransform:
type: 3} type: 3}
m_PrefabInstance: {fileID: 1418191462} m_PrefabInstance: {fileID: 1418191462}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1001 &1418799781
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 963016597}
m_Modifications:
- target: {fileID: 144762, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: m_Name
value: IceFloorTrail
objectReference: {fileID: 0}
- target: {fileID: 415538, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: m_LocalPosition.x
value: -0.159
objectReference: {fileID: 0}
- target: {fileID: 415538, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 415538, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: m_LocalPosition.z
value: -0.172
objectReference: {fileID: 0}
- target: {fileID: 415538, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 415538, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 415538, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 415538, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 415538, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 415538, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 415538, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19823998, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: looping
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19823998, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: playOnAwake
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19836762, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: looping
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19836762, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: prewarm
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19836762, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: playOnAwake
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19872990, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: looping
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19872990, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: prewarm
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19872990, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: playOnAwake
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19896610, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: looping
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19896610, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
propertyPath: playOnAwake
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 88cf0884542d69c48a0f59e0f17ade92, type: 3}
--- !u!4 &1418799782 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 415538, guid: 88cf0884542d69c48a0f59e0f17ade92,
type: 3}
m_PrefabInstance: {fileID: 1418799781}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &1429303293 --- !u!1001 &1429303293
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -10804,7 +11146,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_BindingMode: 1 m_BindingMode: 1
m_FollowOffset: {x: 0, y: 25, z: -10} m_FollowOffset: {x: 0, y: 20, z: -25}
m_XDamping: 0 m_XDamping: 0
m_YDamping: 0 m_YDamping: 0
m_ZDamping: 0 m_ZDamping: 0
@ -10926,6 +11268,12 @@ Transform:
type: 3} type: 3}
m_PrefabInstance: {fileID: 1471287581} m_PrefabInstance: {fileID: 1471287581}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!4 &1476215451 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208,
type: 3}
m_PrefabInstance: {fileID: 2024072799}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &1483497528 --- !u!1001 &1483497528
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -12649,7 +12997,7 @@ MonoBehaviour:
checkLayer: checkLayer:
serializedVersion: 2 serializedVersion: 2
m_Bits: 2098688 m_Bits: 2098688
crewmateIndex: 0 crewmatePrefabIndex: 0
--- !u!4 &1805195289 --- !u!4 &1805195289
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -13426,6 +13774,39 @@ NavMeshObstacle:
m_CarveOnlyStationary: 1 m_CarveOnlyStationary: 1
m_Center: {x: -0.09900001, y: 2.229, z: 0.049000002} m_Center: {x: -0.09900001, y: 2.229, z: 0.049000002}
m_TimeToStationary: 0.5 m_TimeToStationary: 0.5
--- !u!1 &1978848784
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1978848785}
m_Layer: 0
m_Name: AttackTrailRoot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1978848785
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1978848784}
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: 1476215451}
- {fileID: 474440006}
m_Father: {fileID: 26417292}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!198 &1988695658 --- !u!198 &1988695658
ParticleSystem: ParticleSystem:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -23320,6 +23701,91 @@ GameObject:
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295 m_StaticEditorFlags: 4294967295
m_IsActive: 1 m_IsActive: 1
--- !u!1001 &2024072799
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 1978848785}
m_Modifications:
- target: {fileID: 185524, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_Name
value: SpikyFireTrail (1)
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalScale.x
value: -1
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalPosition.z
value: 1
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalRotation.x
value: -0.7071068
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: -90
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 494686, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19828646, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: looping
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19828646, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: playOnAwake
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19839156, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: looping
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19839156, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: playOnAwake
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19885640, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: looping
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19885640, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
propertyPath: playOnAwake
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 7ef15b3b75916c044aa8aa197b362208, type: 3}
--- !u!1001 &2026997466 --- !u!1001 &2026997466
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

File diff suppressed because it is too large Load Diff

View File

@ -125,6 +125,24 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""processors"": """", ""processors"": """",
""interactions"": ""Hold(duration=1)"", ""interactions"": ""Hold(duration=1)"",
""initialStateCheck"": false ""initialStateCheck"": false
},
{
""name"": ""Attack"",
""type"": ""Button"",
""id"": ""5042e547-e870-4479-8263-b143f4d03597"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{
""name"": ""Roll"",
""type"": ""Button"",
""id"": ""c68960a5-036f-4304-8d05-25778470ecfd"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
} }
], ],
""bindings"": [ ""bindings"": [
@ -292,6 +310,39 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""action"": ""CancelHold"", ""action"": ""CancelHold"",
""isComposite"": false, ""isComposite"": false,
""isPartOfComposite"": false ""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""bb845af5-adc5-4848-b4a8-ceb3508cd585"",
""path"": ""<Mouse>/leftButton"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""Attack"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""c5b5e8bc-aca9-40bb-8e57-6bb1349f08d0"",
""path"": ""<Keyboard>/k"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""Attack"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""5a134753-6868-4dec-9b0e-5839b48f7417"",
""path"": ""<Keyboard>/space"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""Roll"",
""isComposite"": false,
""isPartOfComposite"": false
} }
] ]
}, },
@ -466,6 +517,8 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
m_Player_TargetingHold = m_Player.FindAction("TargetingHold", throwIfNotFound: true); m_Player_TargetingHold = m_Player.FindAction("TargetingHold", throwIfNotFound: true);
m_Player_SpawnInIsladnPlayer = m_Player.FindAction("SpawnInIsladnPlayer", throwIfNotFound: true); m_Player_SpawnInIsladnPlayer = m_Player.FindAction("SpawnInIsladnPlayer", throwIfNotFound: true);
m_Player_CancelHold = m_Player.FindAction("CancelHold", throwIfNotFound: true); m_Player_CancelHold = m_Player.FindAction("CancelHold", throwIfNotFound: true);
m_Player_Attack = m_Player.FindAction("Attack", throwIfNotFound: true);
m_Player_Roll = m_Player.FindAction("Roll", throwIfNotFound: true);
// Camera // Camera
m_Camera = asset.FindActionMap("Camera", throwIfNotFound: true); m_Camera = asset.FindActionMap("Camera", throwIfNotFound: true);
m_Camera_Zoom = m_Camera.FindAction("Zoom", throwIfNotFound: true); m_Camera_Zoom = m_Camera.FindAction("Zoom", throwIfNotFound: true);
@ -547,6 +600,8 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
private readonly InputAction m_Player_TargetingHold; private readonly InputAction m_Player_TargetingHold;
private readonly InputAction m_Player_SpawnInIsladnPlayer; private readonly InputAction m_Player_SpawnInIsladnPlayer;
private readonly InputAction m_Player_CancelHold; private readonly InputAction m_Player_CancelHold;
private readonly InputAction m_Player_Attack;
private readonly InputAction m_Player_Roll;
public struct PlayerActions public struct PlayerActions
{ {
private @BlueWater m_Wrapper; private @BlueWater m_Wrapper;
@ -562,6 +617,8 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
public InputAction @TargetingHold => m_Wrapper.m_Player_TargetingHold; public InputAction @TargetingHold => m_Wrapper.m_Player_TargetingHold;
public InputAction @SpawnInIsladnPlayer => m_Wrapper.m_Player_SpawnInIsladnPlayer; public InputAction @SpawnInIsladnPlayer => m_Wrapper.m_Player_SpawnInIsladnPlayer;
public InputAction @CancelHold => m_Wrapper.m_Player_CancelHold; public InputAction @CancelHold => m_Wrapper.m_Player_CancelHold;
public InputAction @Attack => m_Wrapper.m_Player_Attack;
public InputAction @Roll => m_Wrapper.m_Player_Roll;
public InputActionMap Get() { return m_Wrapper.m_Player; } public InputActionMap Get() { return m_Wrapper.m_Player; }
public void Enable() { Get().Enable(); } public void Enable() { Get().Enable(); }
public void Disable() { Get().Disable(); } public void Disable() { Get().Disable(); }
@ -604,6 +661,12 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
@CancelHold.started += instance.OnCancelHold; @CancelHold.started += instance.OnCancelHold;
@CancelHold.performed += instance.OnCancelHold; @CancelHold.performed += instance.OnCancelHold;
@CancelHold.canceled += instance.OnCancelHold; @CancelHold.canceled += instance.OnCancelHold;
@Attack.started += instance.OnAttack;
@Attack.performed += instance.OnAttack;
@Attack.canceled += instance.OnAttack;
@Roll.started += instance.OnRoll;
@Roll.performed += instance.OnRoll;
@Roll.canceled += instance.OnRoll;
} }
private void UnregisterCallbacks(IPlayerActions instance) private void UnregisterCallbacks(IPlayerActions instance)
@ -641,6 +704,12 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
@CancelHold.started -= instance.OnCancelHold; @CancelHold.started -= instance.OnCancelHold;
@CancelHold.performed -= instance.OnCancelHold; @CancelHold.performed -= instance.OnCancelHold;
@CancelHold.canceled -= instance.OnCancelHold; @CancelHold.canceled -= instance.OnCancelHold;
@Attack.started -= instance.OnAttack;
@Attack.performed -= instance.OnAttack;
@Attack.canceled -= instance.OnAttack;
@Roll.started -= instance.OnRoll;
@Roll.performed -= instance.OnRoll;
@Roll.canceled -= instance.OnRoll;
} }
public void RemoveCallbacks(IPlayerActions instance) public void RemoveCallbacks(IPlayerActions instance)
@ -805,6 +874,8 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
void OnTargetingHold(InputAction.CallbackContext context); void OnTargetingHold(InputAction.CallbackContext context);
void OnSpawnInIsladnPlayer(InputAction.CallbackContext context); void OnSpawnInIsladnPlayer(InputAction.CallbackContext context);
void OnCancelHold(InputAction.CallbackContext context); void OnCancelHold(InputAction.CallbackContext context);
void OnAttack(InputAction.CallbackContext context);
void OnRoll(InputAction.CallbackContext context);
} }
public interface ICameraActions public interface ICameraActions
{ {

View File

@ -103,6 +103,24 @@
"processors": "", "processors": "",
"interactions": "Hold(duration=1)", "interactions": "Hold(duration=1)",
"initialStateCheck": false "initialStateCheck": false
},
{
"name": "Attack",
"type": "Button",
"id": "5042e547-e870-4479-8263-b143f4d03597",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "Roll",
"type": "Button",
"id": "c68960a5-036f-4304-8d05-25778470ecfd",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
} }
], ],
"bindings": [ "bindings": [
@ -270,6 +288,39 @@
"action": "CancelHold", "action": "CancelHold",
"isComposite": false, "isComposite": false,
"isPartOfComposite": false "isPartOfComposite": false
},
{
"name": "",
"id": "bb845af5-adc5-4848-b4a8-ceb3508cd585",
"path": "<Mouse>/leftButton",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "Attack",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "c5b5e8bc-aca9-40bb-8e57-6bb1349f08d0",
"path": "<Keyboard>/k",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "Attack",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "5a134753-6868-4dec-9b0e-5839b48f7417",
"path": "<Keyboard>/space",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "Roll",
"isComposite": false,
"isPartOfComposite": false
} }
] ]
}, },

View File

@ -93,6 +93,8 @@ namespace BlueWaterProject
[SerializeField] protected bool isAttacking; [SerializeField] protected bool isAttacking;
// 일반 변수 // 일반 변수
public int CrewmatePrefabIndex { get; set; } = -1;
protected Vector2 movementInput; protected Vector2 movementInput;
protected bool usedNormalAttackCoroutine; protected bool usedNormalAttackCoroutine;
protected WaitForSeconds waitAtkCooldown; protected WaitForSeconds waitAtkCooldown;
@ -246,7 +248,7 @@ namespace BlueWaterProject
} }
else else
{ {
if (GameManager.Inst.CurrentInIslandPlayer.GameObject && GameManager.Inst.CurrentInIslandPlayer.UseRigidbody) if (GameManager.Inst.CurrentInIslandPlayer.GameObject && GameManager.Inst.CurrentInIslandPlayer.UseRigidbody && !Target)
{ {
if (!UseRigidbody) if (!UseRigidbody)
{ {

View File

@ -9,8 +9,34 @@ namespace BlueWaterProject
[RequireComponent(typeof(PlayerInput))] [RequireComponent(typeof(PlayerInput))]
public class Player : BaseCharacter, IDamageable, IView public class Player : BaseCharacter, IDamageable, IView
{ {
protected PlayerInput playerInput;
protected Vector2 movementInput; protected Vector2 movementInput;
protected override void Awake()
{
base.Awake();
playerInput = GetComponent<PlayerInput>();
}
protected override void OnEnable()
{
base.OnEnable();
playerInput.actions.Enable();
playerInput.actions.FindAction("Move").performed += OnMove;
playerInput.actions.FindAction("Move").canceled += OnMove;
}
protected override void OnDisable()
{
base.OnDisable();
playerInput.actions.Disable();
playerInput.actions.FindAction("Move").performed -= OnMove;
playerInput.actions.FindAction("Move").canceled -= OnMove;
}
public virtual void TakeDamage(float attackerPower, float attackerShieldPenetrationRate = default, Vector3? attackPos = null) public virtual void TakeDamage(float attackerPower, float attackerShieldPenetrationRate = default, Vector3? attackPos = null)
{ {
throw new System.NotImplementedException(); throw new System.NotImplementedException();
@ -21,9 +47,9 @@ namespace BlueWaterProject
throw new NotImplementedException(); throw new NotImplementedException();
} }
public virtual void OnMove(InputValue value) // WASD public virtual void OnMove(InputAction.CallbackContext context) // WASD
{ {
movementInput = value.Get<Vector2>(); movementInput = context.ReadValue<Vector2>();
} }
#region Interfaces #region Interfaces
@ -36,7 +62,7 @@ namespace BlueWaterProject
[field: SerializeField] public Collider Target { get; set; } [field: SerializeField] public Collider Target { get; set; }
[field: SerializeField] public LayerMask TargetLayer { get; set; } [field: SerializeField] public LayerMask TargetLayer { get; set; }
private const int MAX_COLLIDERS = 30; protected const int MAX_COLLIDERS = 30;
public virtual void FindNearestTargetInRange(Vector3 centerPos, bool targetIsTrigger = true) public virtual void FindNearestTargetInRange(Vector3 centerPos, bool targetIsTrigger = true)
{ {

View File

@ -46,6 +46,7 @@ namespace BlueWaterProject
[field: SerializeField] public float Atk { get; private set; } = 10f; [field: SerializeField] public float Atk { get; private set; } = 10f;
[field: Tooltip("공격 속도(다음 공격 주기)\nAtkCooldown = 2f (2초마다 1번 공격)")] [field: Tooltip("공격 속도(다음 공격 주기)\nAtkCooldown = 2f (2초마다 1번 공격)")]
[field: OnValueChanged("SetAtkWaitCooldown")]
[field: SerializeField] public float AtkCooldown { get; private set; } = 1f; [field: SerializeField] public float AtkCooldown { get; private set; } = 1f;
[field: Tooltip("이동 제한 범위 설정")] [field: Tooltip("이동 제한 범위 설정")]
@ -84,13 +85,26 @@ namespace BlueWaterProject
[field: DisableIf("@true")] [field: DisableIf("@true")]
[field: SerializeField] public bool UseRigidbody { get; set; } [field: SerializeField] public bool UseRigidbody { get; set; }
[DisableIf("@true")] [DisableIf("@true")]
[SerializeField] private bool useMouseAttack;
[DisableIf("@true")]
[SerializeField] private bool isRolling;
[DisableIf("@true")]
[SerializeField] private bool beAttacked; [SerializeField] private bool beAttacked;
[DisableIf("@true")] [DisableIf("@true")]
[SerializeField] private bool isAttacking; [SerializeField] private bool isAttacking;
// 테스트용 변수
[Title("테스트")]
public float attackAngle = 180f;
public float angleSpeed = 0.3f;
public float rollDuration = 0.5f;
public float rollForce = 10f;
// 일반 변수 // 일반 변수
private bool usedNormalAttackCoroutine; private bool usedNormalAttackCoroutine;
private Vector3 previousDir;
private WaitForSeconds waitAtkCooldown; private WaitForSeconds waitAtkCooldown;
private Collider[] hitColliders;
// 컴포넌트 // 컴포넌트
public GameObject GameObject => gameObject; public GameObject GameObject => gameObject;
@ -101,6 +115,9 @@ namespace BlueWaterProject
private BehaviorTree bt; private BehaviorTree bt;
private Transform unitRoot; private Transform unitRoot;
private Animator myAnimator; private Animator myAnimator;
private Transform trailRoot;
private ParticleSystem[] attackTrailParticles;
private ParticleSystem afterImageTrail;
private Canvas worldSpaceCanvas; private Canvas worldSpaceCanvas;
// Hash // Hash
@ -136,6 +153,9 @@ namespace BlueWaterProject
defensePos = transform.position; defensePos = transform.position;
} }
Gizmos.color = Color.red;
Gizmos.DrawWireSphere(myCenterPos, AtkRange);
if (isDrawDefenseRange) if (isDrawDefenseRange)
{ {
Gizmos.color = Color.blue; Gizmos.color = Color.blue;
@ -178,6 +198,34 @@ namespace BlueWaterProject
} }
} }
trailRoot = transform.Find("TrailRoot");
if (trailRoot == null)
{
print("TrailRoot오브젝트를 찾을 수 없습니다.");
}
else
{
var attackTrailRoot = trailRoot.Find("AttackTrailRoot");
if (attackTrailRoot == null)
{
print("AttackTrailRoot오브젝트를 찾을 수 없습니다.");
}
else
{
attackTrailParticles = attackTrailRoot.GetComponentsInChildren<ParticleSystem>();
}
var afterImageTrailRoot = trailRoot.Find("AfterImageTrailRoot");
if (afterImageTrailRoot == null)
{
print("AfterImageTrailRoot오브젝트를 찾을 수 없습니다.");
}
else
{
afterImageTrail = afterImageTrailRoot.GetComponentInChildren<ParticleSystem>();
}
}
worldSpaceCanvas = GameObject.Find("WorldSpaceCanvas")?.GetComponent<Canvas>(); worldSpaceCanvas = GameObject.Find("WorldSpaceCanvas")?.GetComponent<Canvas>();
if (worldSpaceCanvas == null) if (worldSpaceCanvas == null)
{ {
@ -197,131 +245,69 @@ namespace BlueWaterProject
protected override void Start() protected override void Start()
{ {
base.Start(); base.Start();
hitColliders = new Collider[MAX_COLLIDERS];
TargetLayer = LayerMask.GetMask("Enemy"); TargetLayer = LayerMask.GetMask("Enemy");
waitAtkCooldown = new WaitForSeconds(AtkCooldown); waitAtkCooldown = new WaitForSeconds(AtkCooldown);
Agent.updateRotation = false;
if (Agent.enabled)
{
Agent.updateRotation = false;
SetAgentSpeed(MoveSpd);
}
SetAgentSpeed(MoveSpd);
if (useHpSlider) if (useHpSlider)
{ {
hpSlider.maxValue = MaxHp; hpSlider.maxValue = MaxHp;
} }
SetCurrentHp(MaxHp); SetCurrentHp(MaxHp);
} }
protected override void OnEnable()
{
base.OnEnable();
playerInput.actions.FindAction("Attack").performed += OnAttack;
playerInput.actions.FindAction("Roll").performed += OnRoll;
}
protected override void OnDisable()
{
base.OnDisable();
playerInput.actions.FindAction("Attack").performed -= OnAttack;
playerInput.actions.FindAction("Roll").performed -= OnRoll;
}
protected override void Update() protected override void Update()
{ {
switch (useHpSlider) HpSliderUpdate();
{
case true when CurrentHp > 0 && CurrentHp < MaxHp:
{
if (!hpSlider.gameObject.activeSelf)
{
hpSlider.gameObject.SetActive(true);
}
var localOffset = unitRoot.TransformPoint(hpSliderOffset);
hpSlider.transform.position = localOffset;
break;
}
case true when CurrentHp <= 0 || CurrentHp >= MaxHp:
{
if (hpSlider.gameObject.activeSelf)
{
hpSlider.gameObject.SetActive(false);
}
break;
}
}
if (CurrentHp <= 0) return; if (CurrentHp <= 0) return;
// 움직이는 경우
if (movementInput.x != 0 || movementInput.y != 0)
{
// Rigidbody 사용
if (!UseRigidbody)
{
UseRigidbodyMovement();
}
if (!beAttacked) MoveUpdate();
{ FlipCharacterUpdate();
myAnimator.SetFloat(RunStateHash, 0.5f);
}
}
// 멈춰있는 경우
else
{
// NavMeshAgent 사용
if (UseRigidbody)
{
UseAgentMovement();
}
if (Agent.velocity.x != 0 || Agent.velocity.z != 0)
{
myAnimator.SetFloat(RunStateHash, 0.5f);
}
else if (!beAttacked)
{
myAnimator.SetFloat(RunStateHash, 0f);
}
}
var localScale = transform.localScale;
if (UseRigidbody)
{
localScale.x = Rb.velocity.x switch
{
> 0 => Mathf.Abs(localScale.x),
< 0 => -Mathf.Abs(localScale.x),
_ => localScale.x
};
}
else
{
if (Agent.velocity.x != 0)
{
localScale.x = Agent.velocity.x switch
{
> 0 => Mathf.Abs(localScale.x),
< 0 => -Mathf.Abs(localScale.x),
_ => localScale.x
};
}
else
{
if (Target)
{
var targetToDistanceX = Target.bounds.center.x - MyCollider.bounds.center.x;
localScale.x = targetToDistanceX switch
{
> 0 => Mathf.Abs(localScale.x),
< 0 => -Mathf.Abs(localScale.x),
_ => localScale.x
};
}
}
}
transform.localScale = localScale;
} }
protected override void FixedUpdate() protected override void FixedUpdate()
{ {
if (CurrentHp <= 0) return; if (CurrentHp <= 0) return;
if (UseRigidbody) if (UseRigidbody && !isRolling)
{ {
var localMovement = new Vector3(movementInput.x, 0, movementInput.y); var localMovement = new Vector3(movementInput.x, 0, movementInput.y);
var worldDirection = transform.TransformDirection(localMovement); var worldDirection = transform.TransformDirection(localMovement).normalized;
var movement = worldDirection * MoveSpd; var movement = worldDirection * MoveSpd;
Rb.velocity = new Vector3(movement.x, 0, movement.z); Rb.velocity = new Vector3(movement.x, 0, movement.z);
} }
DefensePos = transform.position;
foreach (var crewmate in GameManager.Inst.CurrentCrewmateList)
{
crewmate.DefensePos = DefensePos;
}
} }
#endregion #endregion
@ -331,6 +317,8 @@ namespace BlueWaterProject
// IDamageable // IDamageable
public override void TakeDamage(float attackerPower, float attackerShieldPenetrationRate = default, Vector3? attackPos = null) public override void TakeDamage(float attackerPower, float attackerShieldPenetrationRate = default, Vector3? attackPos = null)
{ {
if (isRolling) return;
IsCombated = true; IsCombated = true;
if (!Target) if (!Target)
@ -365,8 +353,7 @@ namespace BlueWaterProject
Rb.isKinematic = true; Rb.isKinematic = true;
} }
Agent.enabled = false; Agent.enabled = false;
var overlayCanvas = GameObject.Find("OverlayCanvas");
switch (GameManager.Inst.IslandPlayerMode) switch (GameManager.Inst.IslandPlayerMode)
{ {
@ -374,8 +361,7 @@ namespace BlueWaterProject
print("IslandPlayerMode == none error."); print("IslandPlayerMode == none error.");
break; break;
case GlobalValue.InIslandPlayerMode.ONLY_PLAYER: case GlobalValue.InIslandPlayerMode.ONLY_PLAYER:
// 게임 종료 GameOver();
overlayCanvas.transform.Find("RestartPopUp").gameObject.SetActive(true);
return; return;
case GlobalValue.InIslandPlayerMode.CREWMATE: case GlobalValue.InIslandPlayerMode.CREWMATE:
foreach (var crewmate in GameManager.Inst.CurrentCrewmateList) foreach (var crewmate in GameManager.Inst.CurrentCrewmateList)
@ -385,8 +371,7 @@ namespace BlueWaterProject
GameManager.Inst.SetCurrentInIslandPlayer(crewmate); GameManager.Inst.SetCurrentInIslandPlayer(crewmate);
return; return;
} }
// 게임 종료 GameOver();
overlayCanvas.transform.Find("RestartPopUp").gameObject.SetActive(true);
return; return;
default: default:
throw new ArgumentOutOfRangeException(); throw new ArgumentOutOfRangeException();
@ -399,15 +384,117 @@ namespace BlueWaterProject
// IAnimatorBridge // IAnimatorBridge
public virtual void AttackTiming() public virtual void AttackTiming()
{ {
if (!Target) return; // if (!Target) return;
//
// var myCenterPos = MyCollider.bounds.center;
// var targetDir = (Target.bounds.center - myCenterPos).normalized;
//
// if (!Physics.Raycast(MyCollider.bounds.center, targetDir, out var hit, AtkRange, TargetLayer)) return;
//
// var iDamageable = hit.transform.GetComponent<IDamageable>();
// iDamageable.TakeDamage(Atk);
var myCenterPos = MyCollider.bounds.center; Vector3 attackDirection;
var targetDir = (Target.bounds.center - myCenterPos).normalized; if (useMouseAttack)
{
var mousePos = Mouse.current.position.ReadValue();
var ray = Camera.main.ScreenPointToRay(mousePos);
if (!Physics.Raycast(MyCollider.bounds.center, targetDir, out var hit, AtkRange, TargetLayer)) return; if (!Physics.Raycast(ray, out var hit)) return;
var hitPos = hit.point;
hitPos.y = MyCollider.bounds.center.y;
attackDirection = (hitPos - MyCollider.bounds.center).normalized;
}
else
{
attackDirection = previousDir;
}
var iDamageable = hit.transform.GetComponent<IDamageable>(); Array.Clear(hitColliders, 0, MAX_COLLIDERS);
iDamageable.TakeDamage(Atk);
var size = Physics.OverlapSphereNonAlloc(MyCollider.bounds.center, AtkRange, hitColliders, TargetLayer);
for (var i = 0; i < size; i++)
{
var targetDirection = (hitColliders[i].transform.position - transform.position).normalized;
var angleBetween = Vector3.Angle(attackDirection, targetDirection);
if (angleBetween < attackAngle / 2f) // Checking if the target is within the desired angle range
{
var iDamageable = hitColliders[i].transform.GetComponent<IDamageable>();
iDamageable.TakeDamage(Atk);
}
}
}
private IEnumerator DrawAttackTrail()
{
Vector3 attackDirection;
if (useMouseAttack)
{
var mousePos = Mouse.current.position.ReadValue();
var ray = Camera.main.ScreenPointToRay(mousePos);
if (!Physics.Raycast(ray, out var hit)) yield break;
var hitPos = hit.point;
hitPos.y = MyCollider.bounds.center.y;
attackDirection = (hitPos - MyCollider.bounds.center).normalized;
}
else
{
attackDirection = previousDir;
}
var localScale = transform.localScale;
localScale.x = attackDirection.x switch
{
> 0.01f => Mathf.Abs(localScale.x),
< -0.01f => -Mathf.Abs(localScale.x),
_ => localScale.x
};
transform.localScale = localScale;
var trailRootLocalScale = trailRoot.localScale;
trailRootLocalScale.x = localScale.x switch
{
> 0.01f => Mathf.Abs(trailRootLocalScale.x),
< -0.01f => -Mathf.Abs(trailRootLocalScale.x),
_ => localScale.x
};
trailRoot.localScale = trailRootLocalScale;
var leftRotation = Quaternion.Euler(0, -attackAngle * 0.5f, 0);
var rightRotation = Quaternion.Euler(0, attackAngle * 0.5f, 0);
trailRoot.rotation = Quaternion.LookRotation(attackDirection) * leftRotation;
foreach (var trail in attackTrailParticles)
{
trail.Clear();
trail.Play();
}
var time = 0f;
while (time < angleSpeed)
{
var t = time / angleSpeed;
trailRoot.rotation = Quaternion.Slerp(
Quaternion.LookRotation(attackDirection) * leftRotation,
Quaternion.LookRotation(attackDirection) * rightRotation,
t
);
time += Time.deltaTime;
yield return null;
}
foreach (var trail in attackTrailParticles)
{
trail.Stop();
}
useMouseAttack = false;
} }
public void SetIsAttacking(int boolValue) => isAttacking = boolValue == 1; public void SetIsAttacking(int boolValue) => isAttacking = boolValue == 1;
@ -430,7 +517,7 @@ namespace BlueWaterProject
return !defensePosInRange; return !defensePosInRange;
} }
public override void MoveTarget(Vector3 targetPos, float speed, float stopDistance = Single.MaxValue) public override void MoveTarget(Vector3 targetPos, float speed, float stopDistance = float.MaxValue)
{ {
if (Vector3.Distance(Agent.destination, targetPos) < 0.1f) return; if (Vector3.Distance(Agent.destination, targetPos) < 0.1f) return;
@ -444,6 +531,7 @@ namespace BlueWaterProject
public void NormalAttack() public void NormalAttack()
{ {
StartCoroutine(nameof(NormalAttackCoroutine)); StartCoroutine(nameof(NormalAttackCoroutine));
StartCoroutine(nameof(DrawAttackTrail));
} }
public void StopNormalAttackCoroutine() => StopCoroutine(nameof(NormalAttackCoroutine)); public void StopNormalAttackCoroutine() => StopCoroutine(nameof(NormalAttackCoroutine));
@ -453,11 +541,35 @@ namespace BlueWaterProject
#region Player input system #region Player input system
public override void OnMove(InputValue value) public override void OnMove(InputAction.CallbackContext context)
{ {
if (CurrentHp <= 0) return; if (CurrentHp <= 0) return;
base.OnMove(value); base.OnMove(context);
}
public void OnAttack(InputAction.CallbackContext context)
{
if (CurrentHp <= 0f || isRolling || usedNormalAttackCoroutine) return;
var control = context.control;
if (control.name.Equals("leftButton"))
{
useMouseAttack = true;
}
else if (control.name.Equals("k"))
{
useMouseAttack = false;
}
NormalAttack();
}
public void OnRoll(InputAction.CallbackContext context)
{
if (isRolling) return;
StartCoroutine(nameof(Roll));
} }
#endregion #endregion
@ -486,6 +598,157 @@ namespace BlueWaterProject
usedNormalAttackCoroutine = false; usedNormalAttackCoroutine = false;
} }
private void HpSliderUpdate()
{
switch (useHpSlider)
{
case true when CurrentHp > 0 && CurrentHp < MaxHp:
{
if (!hpSlider.gameObject.activeSelf)
{
hpSlider.gameObject.SetActive(true);
}
var localOffset = unitRoot.TransformPoint(hpSliderOffset);
hpSlider.transform.position = localOffset;
break;
}
case true when CurrentHp <= 0 || CurrentHp >= MaxHp:
{
if (hpSlider.gameObject.activeSelf)
{
hpSlider.gameObject.SetActive(false);
}
break;
}
}
}
private void MoveUpdate()
{
// 움직이는 경우
if (movementInput != Vector2.zero)
{
// Rigidbody 사용
if (!UseRigidbody)
{
UseRigidbodyMovement();
}
if (!beAttacked)
{
myAnimator.SetFloat(RunStateHash, 0.5f);
}
previousDir = Rb.velocity.normalized;
}
// 멈춰있는 경우
else
{
if (UseRigidbody)
{
UseRigidbody = false;
Rb.velocity = Vector3.zero;
}
myAnimator.SetFloat(RunStateHash, 0f);
// // NavMeshAgent 사용
// if (UseRigidbody)
// {
// UseAgentMovement();
// }
//
// if (Agent.velocity.x != 0 || Agent.velocity.z != 0)
// {
// myAnimator.SetFloat(RunStateHash, 0.5f);
// }
// else if (!beAttacked)
// {
// myAnimator.SetFloat(RunStateHash, 0f);
// }
}
}
private void FlipCharacterUpdate()
{
if (useMouseAttack) return;
var localScale = transform.localScale;
var xVelocity = 0f;
if (UseRigidbody)
{
xVelocity = Rb.velocity.x;
}
else
{
if (Agent.velocity.x != 0)
{
xVelocity = Agent.velocity.x;
}
else
{
if (Target)
{
xVelocity = Target.bounds.center.x - MyCollider.bounds.center.x;
}
}
}
localScale.x = xVelocity switch
{
> 0.01f => Mathf.Abs(localScale.x),
< -0.01f => -Mathf.Abs(localScale.x),
_ => localScale.x
};
transform.localScale = localScale;
var trailRootLocalScale = trailRoot.localScale;
trailRootLocalScale.x = localScale.x switch
{
> 0.01f => Mathf.Abs(trailRootLocalScale.x),
< -0.01f => -Mathf.Abs(trailRootLocalScale.x),
_ => localScale.x
};
trailRoot.localScale = trailRootLocalScale;
}
private IEnumerator Roll()
{
isRolling = true;
var time = 0f;
afterImageTrail.Clear();
afterImageTrail.Play();
var worldDirection = transform.TransformDirection(previousDir);
var movement = worldDirection * (MoveSpd * rollForce);
while (time < rollDuration)
{
Rb.velocity = new Vector3(movement.x, 0, movement.z);
time += Time.deltaTime;
yield return null;
}
afterImageTrail.Stop();
isRolling = false;
if (movementInput == Vector2.zero)
{
Rb.velocity = Vector3.zero;
myAnimator.SetFloat(RunStateHash, 0f);
}
}
private void GameOver()
{
var overlayCanvas = GameObject.Find("OverlayCanvas");
overlayCanvas.transform.Find("RestartPopUp").gameObject.SetActive(true);
}
private void UseRigidbodyMovement() private void UseRigidbodyMovement()
{ {
UseRigidbody = true; UseRigidbody = true;
@ -525,6 +788,7 @@ namespace BlueWaterProject
} }
private void SetAgentSpeed(float value) => Agent.speed = value; private void SetAgentSpeed(float value) => Agent.speed = value;
private void SetAtkWaitCooldown() => waitAtkCooldown = new WaitForSeconds(AtkCooldown);
#endregion #endregion
} }

View File

@ -0,0 +1,12 @@
using System.Collections.Generic;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
[CreateAssetMenu(fileName = "CrewmateData", menuName = "ScriptableObjects/CrewmateData", order = 1)]
public class CrewmateDataSo : ScriptableObject
{
public List<Crewmate> crewmateList;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c04e61fd913bab44a834a1586e2ada3c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,15 @@
%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: c04e61fd913bab44a834a1586e2ada3c, type: 3}
m_Name: CrewmateData
m_EditorClassIdentifier:
crewmateList: []

View File

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

View File

@ -1,3 +1,4 @@
using System;
using System.Collections.Generic; using System.Collections.Generic;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using UnityEngine; using UnityEngine;

View File

@ -18,7 +18,7 @@ namespace BlueWaterProject
[Title("Crewmate 생성")] [Title("Crewmate 생성")]
[InfoBox("$CrewmateIndexInfoMessage")] [InfoBox("$CrewmateIndexInfoMessage")]
[SerializeField] private int crewmateIndex; [SerializeField] private int crewmatePrefabIndex;
private Collider[] colliders = new Collider[MAX_COLLIDER]; private Collider[] colliders = new Collider[MAX_COLLIDER];
@ -102,13 +102,13 @@ namespace BlueWaterProject
GameManager.Inst.SetCurrentInIslandPlayer(inIslandPlayer); GameManager.Inst.SetCurrentInIslandPlayer(inIslandPlayer);
} }
[DisableIf("@crewmateIndex >= GameManager.Inst.CrewmatePrefabList.Count || crewmateIndex < 0")] [DisableIf("@crewmatePrefabIndex >= GameManager.Inst.CrewmatePrefabList.Count || crewmatePrefabIndex < 0")]
[Button("Crewmate 추가")] [Button("Crewmate 추가")]
private void AddCrewmate() public void AddCrewmate()
{ {
if (!GameManager.Inst.CurrentInIslandPlayer.GameObject) return; if (!GameManager.Inst.CurrentInIslandPlayer.GameObject) return;
if (crewmateIndex >= GameManager.Inst.CrewmatePrefabList.Count || crewmateIndex < 0) if (crewmatePrefabIndex >= GameManager.Inst.CrewmatePrefabList.Count || crewmatePrefabIndex < 0)
{ {
print("존재하지 않는 인덱스입니다."); print("존재하지 않는 인덱스입니다.");
return; return;
@ -124,8 +124,9 @@ namespace BlueWaterProject
if (size != 0) continue; if (size != 0) continue;
var crewmate = Instantiate(GameManager.Inst.CrewmatePrefabList[crewmateIndex], spawnPos, var crewmate = Instantiate(GameManager.Inst.CrewmatePrefabList[crewmatePrefabIndex], spawnPos,
GameManager.Inst.CrewmatePrefabList[crewmateIndex].transform.rotation, spawnLocation); GameManager.Inst.CrewmatePrefabList[crewmatePrefabIndex].transform.rotation, spawnLocation);
crewmate.CrewmatePrefabIndex = crewmatePrefabIndex;
crewmate.gameObject.SetActive(true); crewmate.gameObject.SetActive(true);
GameManager.Inst.CurrentCrewmateList.Add(crewmate); GameManager.Inst.CurrentCrewmateList.Add(crewmate);
@ -134,5 +135,7 @@ namespace BlueWaterProject
print("소환할 수 있는 자리가 없습니다."); print("소환할 수 있는 자리가 없습니다.");
} }
public void SetCrewmatePrefabIndex(int value) => crewmatePrefabIndex = value;
} }
} }

View File

@ -1,3 +1,4 @@
using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.InputSystem; using UnityEngine.InputSystem;
using UnityEngine.SceneManagement; using UnityEngine.SceneManagement;
@ -7,11 +8,39 @@ namespace BlueWaterProject
{ {
public class RestartPopupUi : MonoBehaviour public class RestartPopupUi : MonoBehaviour
{ {
private List<Crewmate> currentCrewmateList;
private void OnEnable()
{
// 씬이 로드될 때마다 OnSceneLoaded 메서드를 호출합니다.
SceneManager.sceneLoaded += OnSceneLoaded;
}
private void OnDisable()
{
// 이 오브젝트가 비활성화될 때 이벤트 핸들러를 제거합니다.
SceneManager.sceneLoaded -= OnSceneLoaded;
}
private void OnInteraction(InputValue value) private void OnInteraction(InputValue value)
{ {
currentCrewmateList = GameManager.Inst.CurrentCrewmateList;
var currentSceneIndex = SceneManager.GetActiveScene().buildIndex; var currentSceneIndex = SceneManager.GetActiveScene().buildIndex;
SceneManager.LoadScene(currentSceneIndex); SceneManager.LoadScene(currentSceneIndex);
} }
private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
// 로딩 이후에 실행되어야 하는 코드를 여기에 작성합니다.
var spawnController = FindAnyObjectByType<SpawnController>();
foreach (var crewmate in currentCrewmateList)
{
spawnController.SetCrewmatePrefabIndex(crewmate.CrewmatePrefabIndex);
spawnController.AddCrewmate();
}
}
} }
} }

View File

@ -0,0 +1,134 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: MeleeAttackTrail
m_Shader: {fileID: 10755, guid: 0000000000000000f000000000000000, type: 0}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: 3500
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BlendOp: 0
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 0
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _SampleGI: 0
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 0
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
--- !u!114 &9000183305132074839
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 7

View File

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

View File

@ -3210,8 +3210,8 @@ MonoBehaviour:
byteData: byteData:
byteDataArray: byteDataArray:
Version: 1.7.7 Version: 1.7.7
gizmoViewMode: 2 gizmoViewMode: 0
showBehaviorDesignerGizmo: 1 showBehaviorDesignerGizmo: 0
--- !u!114 &8609741102290131020 --- !u!114 &8609741102290131020
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -2,15 +2,27 @@
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000 --- !u!21 &2100000
Material: Material:
serializedVersion: 6 serializedVersion: 8
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_Name: MatteBronze__StylSurf_Single_Spec_Rim_HGrad m_Name: MatteBronze__StylSurf_Single_Spec_Rim_HGrad
m_Shader: {fileID: 4800000, guid: bee44b4a58655ee4cbff107302a3e131, type: 3} m_Shader: {fileID: 4800000, guid: bee44b4a58655ee4cbff107302a3e131, type: 3}
m_ShaderKeywords: DR_GRADIENT_ON DR_RIM_ON DR_SPECULAR_ON _CELPRIMARYMODE_SINGLE m_Parent: {fileID: 0}
_FLAT_RIM_ENABLED _FLAT_SHADOWS_ENABLED _FLAT_SPECULAR_ENABLED m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- DR_GRADIENT_ON
- DR_RIM_ON
- DR_SPECULAR_ON
- _CELPRIMARYMODE_SINGLE
- _DETAILMAPBLENDINGMODE_MULTIPLY
- _TEXTUREBLENDINGMODE_MULTIPLY
- _UNITYSHADOWMODE_MULTIPLY
m_InvalidKeywords:
- _FLAT_RIM_ENABLED
- _FLAT_SHADOWS_ENABLED
- _FLAT_SPECULAR_ENABLED
m_LightmapFlags: 4 m_LightmapFlags: 4
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
@ -18,6 +30,7 @@ Material:
stringTagMap: {} stringTagMap: {}
disabledShaderPasses: disabledShaderPasses:
- SRPDEFAULTUNLIT - SRPDEFAULTUNLIT
m_LockedProperties:
m_SavedProperties: m_SavedProperties:
serializedVersion: 3 serializedVersion: 3
m_TexEnvs: m_TexEnvs:
@ -41,6 +54,10 @@ Material:
m_Texture: {fileID: 0} m_Texture: {fileID: 0}
m_Scale: {x: 0, y: 0} m_Scale: {x: 0, y: 0}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask: - _DetailMask:
m_Texture: {fileID: 0} m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
@ -69,15 +86,20 @@ Material:
m_Texture: {fileID: 0} m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats: m_Floats:
- _AlphaClip: 0 - _AlphaClip: 0
- _BaseMapPremultiply: 0
- _Blend: 0 - _Blend: 0
- _BumpScale: 1 - _BumpScale: 1
- _CameraDistanceImpact: 0
- _CelExtraEnabled: 0 - _CelExtraEnabled: 0
- _CelNumSteps: 3 - _CelNumSteps: 3
- _CelPrimaryMode: 1 - _CelPrimaryMode: 1
- _Cull: 2 - _Cull: 2
- _Cutoff: 0.5 - _Cutoff: 0.5
- _DetailMapBlendingMode: 0
- _DetailMapImpact: 0
- _DetailNormalMapScale: 1 - _DetailNormalMapScale: 1
- _DstBlend: 0 - _DstBlend: 0
- _FlatRimAmount: 0.5 - _FlatRimAmount: 0.5
@ -113,6 +135,10 @@ Material:
- _Metallic: 0 - _Metallic: 0
- _Mode: 0 - _Mode: 0
- _OcclusionStrength: 1 - _OcclusionStrength: 1
- _OutlineDepthOffset: 0
- _OutlineEnabled: 0
- _OutlineScale: 1
- _OutlineWidth: 1
- _OverrideLightmapDir: 0 - _OverrideLightmapDir: 0
- _OverrideShadows: 1 - _OverrideShadows: 1
- _OverrideShadowsEnabled: 1 - _OverrideShadowsEnabled: 1
@ -136,6 +162,7 @@ Material:
- _TextureImpact: 1 - _TextureImpact: 1
- _UVSec: 0 - _UVSec: 0
- _UnityShadowMode: 1 - _UnityShadowMode: 1
- _UnityShadowOcclusion: 0
- _UnityShadowPower: 0.2 - _UnityShadowPower: 0.2
- _UnityShadowSharpness: 1 - _UnityShadowSharpness: 1
- _VertexColorsEnabled: 0 - _VertexColorsEnabled: 0
@ -152,9 +179,11 @@ Material:
- _ColorSecondary: {r: 1, g: 0.55879205, b: 0, a: 1} - _ColorSecondary: {r: 1, g: 0.55879205, b: 0, a: 1}
- _ColorShadow: {r: 0.5, g: 0.5, b: 0.5, a: 1} - _ColorShadow: {r: 0.5, g: 0.5, b: 0.5, a: 1}
- _ColorShadows: {r: 0.37835297, g: 0.4602353, b: 0.72, a: 1} - _ColorShadows: {r: 0.37835297, g: 0.4602353, b: 0.72, a: 1}
- _DetailMapColor: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 4.9245777, g: 0, b: 0, a: 1} - _EmissionColor: {r: 4.9245777, g: 0, b: 0, a: 1}
- _FlatRimColor: {r: 1, g: 0.8387512, b: 0.5254902, a: 1} - _FlatRimColor: {r: 1, g: 0.8387512, b: 0.5254902, a: 1}
- _FlatSpecularColor: {r: 0.8213369, g: 0.8301887, b: 0.70879316, a: 1} - _FlatSpecularColor: {r: 0.8213369, g: 0.8301887, b: 0.70879316, a: 1}
- _LightmapDirection: {r: 0, g: 1, b: 0, a: 0} - _LightmapDirection: {r: 0, g: 1, b: 0, a: 0}
- _OutlineColor: {r: 1, g: 1, b: 1, a: 1}
- _UnityShadowColor: {r: 0.65, g: 0.65, b: 0.65, a: 1} - _UnityShadowColor: {r: 0.65, g: 0.65, b: 0.65, a: 1}
m_BuildTextureStacks: [] m_BuildTextureStacks: []

View File

@ -2,15 +2,25 @@
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000 --- !u!21 &2100000
Material: Material:
serializedVersion: 6 serializedVersion: 8
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_Name: MatteGradient_StylSurf_None_HGrad m_Name: MatteGradient_StylSurf_None_HGrad
m_Shader: {fileID: 4800000, guid: bee44b4a58655ee4cbff107302a3e131, type: 3} m_Shader: {fileID: 4800000, guid: bee44b4a58655ee4cbff107302a3e131, type: 3}
m_ShaderKeywords: DR_GRADIENT_ON _CELPRIMARYMODE_NONE _FLAT_RIM_ENABLED _FLAT_SHADOWS_ENABLED m_Parent: {fileID: 0}
_FLAT_SPECULAR_ENABLED m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- DR_GRADIENT_ON
- _DETAILMAPBLENDINGMODE_MULTIPLY
- _TEXTUREBLENDINGMODE_MULTIPLY
- _UNITYSHADOWMODE_MULTIPLY
m_InvalidKeywords:
- _CELPRIMARYMODE_NONE
- _FLAT_RIM_ENABLED
- _FLAT_SHADOWS_ENABLED
- _FLAT_SPECULAR_ENABLED
m_LightmapFlags: 4 m_LightmapFlags: 4
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
@ -18,6 +28,7 @@ Material:
stringTagMap: {} stringTagMap: {}
disabledShaderPasses: disabledShaderPasses:
- SRPDEFAULTUNLIT - SRPDEFAULTUNLIT
m_LockedProperties:
m_SavedProperties: m_SavedProperties:
serializedVersion: 3 serializedVersion: 3
m_TexEnvs: m_TexEnvs:
@ -41,6 +52,10 @@ Material:
m_Texture: {fileID: 0} m_Texture: {fileID: 0}
m_Scale: {x: 0, y: 0} m_Scale: {x: 0, y: 0}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask: - _DetailMask:
m_Texture: {fileID: 0} m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
@ -69,15 +84,20 @@ Material:
m_Texture: {fileID: 0} m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats: m_Floats:
- _AlphaClip: 0 - _AlphaClip: 0
- _BaseMapPremultiply: 0
- _Blend: 0 - _Blend: 0
- _BumpScale: 1 - _BumpScale: 1
- _CameraDistanceImpact: 0
- _CelExtraEnabled: 0 - _CelExtraEnabled: 0
- _CelNumSteps: 3 - _CelNumSteps: 3
- _CelPrimaryMode: 0 - _CelPrimaryMode: 0
- _Cull: 2 - _Cull: 2
- _Cutoff: 0.5 - _Cutoff: 0.5
- _DetailMapBlendingMode: 0
- _DetailMapImpact: 0
- _DetailNormalMapScale: 1 - _DetailNormalMapScale: 1
- _DstBlend: 0 - _DstBlend: 0
- _FlatRimAmount: 0.5 - _FlatRimAmount: 0.5
@ -113,6 +133,10 @@ Material:
- _Metallic: 0 - _Metallic: 0
- _Mode: 0 - _Mode: 0
- _OcclusionStrength: 1 - _OcclusionStrength: 1
- _OutlineDepthOffset: 0
- _OutlineEnabled: 0
- _OutlineScale: 1
- _OutlineWidth: 1
- _OverrideLightmapDir: 0 - _OverrideLightmapDir: 0
- _OverrideShadows: 1 - _OverrideShadows: 1
- _OverrideShadowsEnabled: 1 - _OverrideShadowsEnabled: 1
@ -136,6 +160,7 @@ Material:
- _TextureImpact: 1 - _TextureImpact: 1
- _UVSec: 0 - _UVSec: 0
- _UnityShadowMode: 1 - _UnityShadowMode: 1
- _UnityShadowOcclusion: 0
- _UnityShadowPower: 0.2 - _UnityShadowPower: 0.2
- _UnityShadowSharpness: 1 - _UnityShadowSharpness: 1
- _VertexColorsEnabled: 0 - _VertexColorsEnabled: 0
@ -152,9 +177,11 @@ Material:
- _ColorSecondary: {r: 1, g: 0.55879205, b: 0, a: 1} - _ColorSecondary: {r: 1, g: 0.55879205, b: 0, a: 1}
- _ColorShadow: {r: 0.5, g: 0.5, b: 0.5, a: 1} - _ColorShadow: {r: 0.5, g: 0.5, b: 0.5, a: 1}
- _ColorShadows: {r: 0.37835297, g: 0.4602353, b: 0.72, a: 1} - _ColorShadows: {r: 0.37835297, g: 0.4602353, b: 0.72, a: 1}
- _DetailMapColor: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 4.9245777, g: 0, b: 0, a: 1} - _EmissionColor: {r: 4.9245777, g: 0, b: 0, a: 1}
- _FlatRimColor: {r: 1, g: 0.8387512, b: 0.5254902, a: 1} - _FlatRimColor: {r: 1, g: 0.8387512, b: 0.5254902, a: 1}
- _FlatSpecularColor: {r: 0.76448715, g: 0.7924528, b: 0.41491634, a: 1} - _FlatSpecularColor: {r: 0.76448715, g: 0.7924528, b: 0.41491634, a: 1}
- _LightmapDirection: {r: 0, g: 1, b: 0, a: 0} - _LightmapDirection: {r: 0, g: 1, b: 0, a: 0}
- _OutlineColor: {r: 1, g: 1, b: 1, a: 1}
- _UnityShadowColor: {r: 0.65, g: 0.65, b: 0.65, a: 1} - _UnityShadowColor: {r: 0.65, g: 0.65, b: 0.65, a: 1}
m_BuildTextureStacks: [] m_BuildTextureStacks: []