diff --git a/Assets/Artists/Animtions/Character/Rifle/Pixel@Rifle Fire.fbx b/Assets/Artists/Animtions/Character/Rifle/Pixel@Rifle Fire.fbx new file mode 100644 index 000000000..4f39485c6 Binary files /dev/null and b/Assets/Artists/Animtions/Character/Rifle/Pixel@Rifle Fire.fbx differ diff --git a/Assets/Artists/Animtions/Character/Rifle/Pixel@Rifle Reload.fbx b/Assets/Artists/Animtions/Character/Rifle/Pixel@Rifle Reload.fbx new file mode 100644 index 000000000..01fafd877 Binary files /dev/null and b/Assets/Artists/Animtions/Character/Rifle/Pixel@Rifle Reload.fbx differ diff --git a/Assets/Artists/Configs/Animator/Core/Entity.controller b/Assets/Artists/Configs/Animator/Core/Entity.controller index 26556fb83..1d08e3cde 100644 --- a/Assets/Artists/Configs/Animator/Core/Entity.controller +++ b/Assets/Artists/Configs/Animator/Core/Entity.controller @@ -516,6 +516,28 @@ MonoBehaviour: type: {class: Reference, ns: BITKit, asm: BITKit} data: value: Run +--- !u!1101 &-2875870230168117586 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 6359450267579216995} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 1 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 2 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1102 &-2145748106336018533 AnimatorState: serializedVersion: 6 @@ -640,6 +662,57 @@ MonoBehaviour: type: {class: Reference, ns: BITKit, asm: BITKit} data: value: ClimbLadder +--- !u!1107 &-1419080097273100811 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Additive Layer 1 + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 6359450267579216995} + m_Position: {x: 30, y: 200, z: 0} + - serializedVersion: 1 + m_State: {fileID: 1063220354129424104} + m_Position: {x: 300, y: 140, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 6359450267579216995} +--- !u!1102 &-1045047923388160873 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: New State + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 68182865c01bbae4fb3027ea32634e3f, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!114 &-513838451122933232 MonoBehaviour: m_ObjectHideFlags: 1 @@ -783,7 +856,19 @@ AnimatorController: m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} - serializedVersion: 5 - m_Name: Additive Layer + m_Name: Upper Layer + m_StateMachine: {fileID: 7690798265110638559} + m_Mask: {fileID: 31900000, guid: f05a3dd9e9ff0884bbcb0e022b4a7391, type: 2} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 1 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Additive Layer 0 m_StateMachine: {fileID: 5013484340607404016} m_Mask: {fileID: 0} m_Motions: [] @@ -794,6 +879,18 @@ AnimatorController: m_IKPass: 0 m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Additive Layer 1 + m_StateMachine: {fileID: -1419080097273100811} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 1 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 1 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} --- !u!206 &287532439629317325 BlendTree: m_ObjectHideFlags: 1 @@ -873,6 +970,33 @@ MonoBehaviour: type: {class: Reference, ns: BITKit, asm: BITKit} data: value: Action.Climb +--- !u!1102 &1063220354129424104 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Fire + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -2875870230168117586} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 4c9e9f549481a1e48bff1e9bbfa4eaa2, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1107 &1959945053478628370 AnimatorStateMachine: serializedVersion: 6 @@ -944,6 +1068,33 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 +--- !u!1102 &2857387101801118781 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Reload + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 8795183253526235150} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 15a76fda2edc7f546ba25b31b5ef83df, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1102 &3074540142990258821 AnimatorState: serializedVersion: 6 @@ -1103,7 +1254,7 @@ AnimatorStateMachine: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Additive Layer + m_Name: Additive Layer 0 m_ChildStates: - serializedVersion: 1 m_State: {fileID: -8338434944279992279} @@ -1223,6 +1374,32 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1102 &6359450267579216995 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: New State + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 0} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!114 &7440592265021942964 MonoBehaviour: m_ObjectHideFlags: 1 @@ -1269,6 +1446,31 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 +--- !u!1107 &7690798265110638559 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Upper Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -1045047923388160873} + m_Position: {x: 30, y: 180, z: 0} + - serializedVersion: 1 + m_State: {fileID: 2857387101801118781} + m_Position: {x: 310, y: 180, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -1045047923388160873} --- !u!1101 &8378041146737502484 AnimatorStateTransition: m_ObjectHideFlags: 1 @@ -1346,6 +1548,28 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1101 &8795183253526235150 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -1045047923388160873} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.1 + m_TransitionOffset: 0 + m_ExitTime: 0.9 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 2 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!206 &8986927568288765542 BlendTree: m_ObjectHideFlags: 1 diff --git a/Assets/Artists/Configs/Animator/EntityPistol.overrideController b/Assets/Artists/Configs/Animator/EntityPistol.overrideController new file mode 100644 index 000000000..4b7daf2ab --- /dev/null +++ b/Assets/Artists/Configs/Animator/EntityPistol.overrideController @@ -0,0 +1,98 @@ +%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: EntityPistol + m_Controller: {fileID: 9100000, guid: cb43cb1bf42184e45b920b0bb77554f9, type: 2} + m_Clips: + - m_OriginalClip: {fileID: 7400000, guid: ad24d1ce30ed48945a9b68be9827bc90, type: 2} + m_OverrideClip: {fileID: 8816525237524189043, guid: 8458c01c2fdae5447bf770e0341e9ccb, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 01214145ea75a2d4b80363bba2f1a65e, type: 2} + m_OverrideClip: {fileID: -5858036045953447646, guid: 8458c01c2fdae5447bf770e0341e9ccb, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 451f983af0dd44c419406ca1d1a0b591, type: 2} + m_OverrideClip: {fileID: 7433315730774535304, guid: 8458c01c2fdae5447bf770e0341e9ccb, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 9bc28f4633c671a428bc05bc4b6e6a8c, type: 2} + m_OverrideClip: {fileID: 197974373799447605, guid: 8458c01c2fdae5447bf770e0341e9ccb, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 68182865c01bbae4fb3027ea32634e3f, type: 2} + m_OverrideClip: {fileID: -5075752359623666121, guid: e8f9974eb768be4479413b261e3bc2c7, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: f88d8dea74ca02e43b56b5a42fd0da74, type: 2} + m_OverrideClip: {fileID: -1310521523949388987, guid: 74316b6025926e34285406181949885b, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 020d1c1ecabec614d8b651753ffc9170, type: 2} + m_OverrideClip: {fileID: 7889747393601030778, guid: 74316b6025926e34285406181949885b, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 61b264f0423eb574eb04052b00876d3b, type: 2} + m_OverrideClip: {fileID: -4610952415324987419, guid: 74316b6025926e34285406181949885b, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 7931b0c3373dbee4cba771022d874587, type: 2} + m_OverrideClip: {fileID: -1310521523949388987, guid: 74316b6025926e34285406181949885b, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 2a2012ea7f7e0e042ac7ede06063b02b, type: 2} + m_OverrideClip: {fileID: -1225430849258194476, guid: 75fec23d5aab28145865b0c66050c27d, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 7343dade3869ad849987e58a41f83525, type: 2} + m_OverrideClip: {fileID: 8168699922495294216, guid: 2b2f07128b39cba4c92abb4345a32f06, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: b52cacd4e2a60ec46937f22be7836395, type: 2} + m_OverrideClip: {fileID: -1083544072533941823, guid: 60ce135d33b207a49b606aedcc0f1854, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: b8e76ef5af8510645b2c4dbc7bcaf794, type: 2} + m_OverrideClip: {fileID: -5052955053199334208, guid: fd05b77d716f77f469af10c0e806deba, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: f9e14dc9abbbd9c4189dd4a2098b8453, type: 2} + m_OverrideClip: {fileID: 5946662650953601361, guid: 83c4f2ad93f42a542a84bd742f0b972f, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 917b946e43d9a4641b9fdd98f166054d, type: 2} + m_OverrideClip: {fileID: -6125803487475971785, guid: b5bad85324d27944daff4ad2f0a4bd08, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 1d074b7dc9160cb48a7556138159b8d7, type: 2} + m_OverrideClip: {fileID: -1095421310871173937, guid: e8f9974eb768be4479413b261e3bc2c7, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: ccc3ebda65dcc1a41b5919701bbe7ec0, type: 2} + m_OverrideClip: {fileID: -1181532003767956096, guid: 9d2f7d233a913ac4cb9717696cc34bc1, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: e77502caa6a17c642ba09f586f3b45bb, type: 2} + m_OverrideClip: {fileID: 6975854333129897964, guid: 98f61866ec8b8204f921cc66f442e18a, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 5e720394982277e4fa97be855ac63790, type: 2} + m_OverrideClip: {fileID: -6856922032139373723, guid: 52dc2e185dc11e24d8c1c5624af3c6b5, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 77284660b64f8b747a959381bd306474, type: 2} + m_OverrideClip: {fileID: 6556334952719929740, guid: 9bf394777061cc54d81cde403a0403fb, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 132af0a352a91b445b1c2b9421a33ad2, type: 2} + m_OverrideClip: {fileID: 3434409490235861809, guid: a2215ac2093908143ab90243e34a84ab, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: f2371e65832a2764583cb07093b1b8e3, type: 2} + m_OverrideClip: {fileID: 8816512968436616041, guid: 8d7811dbe55d38a4599645b01376ccf5, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: fc4545c9c30e352498b9fdae518c494c, type: 2} + m_OverrideClip: {fileID: 9098646296615732399, guid: c15f2617665cdea4a8d622562bb8fc4d, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 48b588cdfb696b84fbc64a655f8679d4, type: 2} + m_OverrideClip: {fileID: -8893850683258528007, guid: 819faaa415671a44ab62b3571bea9747, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: a2cdf29fad5621549a03be55655631d6, type: 2} + m_OverrideClip: {fileID: -8213736612684763305, guid: 7a44dd35952925148891201602618577, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 140792d575aadb045948fa56a2fbf317, type: 2} + m_OverrideClip: {fileID: 7216636553824065067, guid: 11e5366ded81d9346ab177adfdc5d12a, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: b14e3fdf274991c4796984ae1765eed1, type: 2} + m_OverrideClip: {fileID: 4251362255343452841, guid: 8ed75e08282001d4babe492f7dad3a07, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: c7cf8a24ccd38f14d9c90aff6869cedf, type: 2} + m_OverrideClip: {fileID: 5109977346001602528, guid: 70dcc12584f5ccf49bbbe45b091db804, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: d309aa534749433468272473d5b65010, type: 2} + m_OverrideClip: {fileID: 6993030432383370618, guid: f8999c71a27cafc4d80eec16f552b842, + type: 3} diff --git a/Assets/Artists/Configs/Animator/EntityRifle.overrideController b/Assets/Artists/Configs/Animator/EntityRifle.overrideController index 32489759c..666ef4a41 100644 --- a/Assets/Artists/Configs/Animator/EntityRifle.overrideController +++ b/Assets/Artists/Configs/Animator/EntityRifle.overrideController @@ -96,3 +96,9 @@ AnimatorOverrideController: - m_OriginalClip: {fileID: 7400000, guid: d309aa534749433468272473d5b65010, type: 2} m_OverrideClip: {fileID: 6993030432383370618, guid: f8999c71a27cafc4d80eec16f552b842, type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 4c9e9f549481a1e48bff1e9bbfa4eaa2, type: 2} + m_OverrideClip: {fileID: 2532806716085130415, guid: e3fbe511af9ffc7448580c98f059e42d, + type: 3} + - m_OriginalClip: {fileID: 7400000, guid: 15a76fda2edc7f546ba25b31b5ef83df, type: 2} + m_OverrideClip: {fileID: -3507144807383977469, guid: 99688f58112ceff49a7d2347c39e0ce5, + type: 3} diff --git a/Assets/Artists/Configs/Animator/Pixel Upper.mask b/Assets/Artists/Configs/Animator/Pixel Upper.mask new file mode 100644 index 000000000..5a6ea0434 --- /dev/null +++ b/Assets/Artists/Configs/Animator/Pixel Upper.mask @@ -0,0 +1,77 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Pixel Upper + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: ArmaTure + m_Weight: 0 + - m_Path: ArmaTure/Hips + m_Weight: 0 + - m_Path: ArmaTure/Hips/Left_UpperLeg + m_Weight: 0 + - m_Path: ArmaTure/Hips/Left_UpperLeg/Left_LowerLeg + m_Weight: 0 + - m_Path: ArmaTure/Hips/Left_UpperLeg/Left_LowerLeg/Left_Foot + m_Weight: 0 + - m_Path: ArmaTure/Hips/Right_UpperLeg + m_Weight: 0 + - m_Path: ArmaTure/Hips/Right_UpperLeg/Right_LowerLeg + m_Weight: 0 + - m_Path: ArmaTure/Hips/Right_UpperLeg/Right_LowerLeg/Right_Foot + m_Weight: 0 + - m_Path: ArmaTure/Hips/Spine + m_Weight: 0 + - m_Path: ArmaTure/Hips/Spine/Chest + m_Weight: 0 + - m_Path: ArmaTure/Hips/Spine/Chest/UpperChest + m_Weight: 0 + - m_Path: ArmaTure/Hips/Spine/Chest/UpperChest/FPVScale + m_Weight: 0 + - m_Path: ArmaTure/Hips/Spine/Chest/UpperChest/Left_Shoulder + m_Weight: 1 + - m_Path: ArmaTure/Hips/Spine/Chest/UpperChest/Left_Shoulder/Left_UpperArm + m_Weight: 1 + - m_Path: ArmaTure/Hips/Spine/Chest/UpperChest/Left_Shoulder/Left_UpperArm/Left_LowerArm + m_Weight: 1 + - m_Path: ArmaTure/Hips/Spine/Chest/UpperChest/Left_Shoulder/Left_UpperArm/Left_LowerArm/Left_Hand + m_Weight: 1 + - m_Path: ArmaTure/Hips/Spine/Chest/UpperChest/Left_Shoulder/Left_UpperArm/Left_LowerArm/Left_Hand/Left_Root + m_Weight: 1 + - m_Path: ArmaTure/Hips/Spine/Chest/UpperChest/Neck + m_Weight: 1 + - m_Path: ArmaTure/Hips/Spine/Chest/UpperChest/Neck/Head + m_Weight: 1 + - m_Path: ArmaTure/Hips/Spine/Chest/UpperChest/Right_Shoulder + m_Weight: 1 + - m_Path: ArmaTure/Hips/Spine/Chest/UpperChest/Right_Shoulder/Right_UpperArm + m_Weight: 1 + - m_Path: ArmaTure/Hips/Spine/Chest/UpperChest/Right_Shoulder/Right_UpperArm/Right_LowerArm + m_Weight: 1 + - m_Path: ArmaTure/Hips/Spine/Chest/UpperChest/Right_Shoulder/Right_UpperArm/Right_LowerArm/Right_Hand + m_Weight: 1 + - m_Path: ArmaTure/Hips/Spine/Chest/UpperChest/Right_Shoulder/Right_UpperArm/Right_LowerArm/Right_Hand/Right_Root + m_Weight: 1 + - m_Path: Meshs + m_Weight: 0 + - m_Path: Meshs/Mesh_Arm + m_Weight: 0 + - m_Path: Meshs/Mesh_Arm_Slim + m_Weight: 0 + - m_Path: Meshs/Mesh_Body + m_Weight: 0 + - m_Path: Meshs/Mesh_Combine + m_Weight: 0 + - m_Path: Meshs/Mesh_Combine_Slim + m_Weight: 0 + - m_Path: Meshs/Mesh_Head + m_Weight: 0 + - m_Path: Meshs/Mesh_Leg + m_Weight: 0 diff --git a/Assets/Artists/Configs/Items/Improvised_AmmoBox.asset b/Assets/Artists/Configs/Items/Improvised_AmmoBox.asset index 37025fbb6..bad2c7441 100644 --- a/Assets/Artists/Configs/Items/Improvised_AmmoBox.asset +++ b/Assets/Artists/Configs/Items/Improvised_AmmoBox.asset @@ -19,11 +19,8 @@ MonoBehaviour: squareIcon: {fileID: 2800000, guid: cd23c6e3d5938814e920000f85cc585e, type: 3} rectangleIcon: {fileID: 2800000, guid: cd23c6e3d5938814e920000f85cc585e, type: 3} quality: 6 - factoryProperties: - - rid: 806583384995266563 + isImprovised: 1 + factoryProperties: [] references: version: 2 - RefIds: - - rid: 806583384995266563 - type: {class: Improvisable, ns: BITFALL.Entities.Improvised, asm: BITFALL.Entities.Improvised} - data: + RefIds: [] diff --git a/Assets/Artists/Configs/Items/Improvised_DEV_Item.asset b/Assets/Artists/Configs/Items/Improvised_DEV_Item.asset index 5d355c7af..7206cb001 100644 --- a/Assets/Artists/Configs/Items/Improvised_DEV_Item.asset +++ b/Assets/Artists/Configs/Items/Improvised_DEV_Item.asset @@ -19,10 +19,8 @@ MonoBehaviour: squareIcon: {fileID: 0} rectangleIcon: {fileID: 0} quality: 6 - factoryProperties: - - rid: -2 + isImprovised: 1 + factoryProperties: [] references: version: 2 - RefIds: - - rid: -2 - type: {class: , ns: , asm: } + RefIds: [] diff --git a/Assets/Artists/Configs/Items/Weapon_TacticalKnife.asset b/Assets/Artists/Configs/Items/Weapon_TacticalKnife.asset index 8857d7e9f..152a47169 100644 --- a/Assets/Artists/Configs/Items/Weapon_TacticalKnife.asset +++ b/Assets/Artists/Configs/Items/Weapon_TacticalKnife.asset @@ -19,6 +19,7 @@ MonoBehaviour: squareIcon: {fileID: 2800000, guid: c477ad9668c34e94c92ace1feb3c2303, type: 3} rectangleIcon: {fileID: 2800000, guid: 5c2d1966fb99bb84d94571987eb24278, type: 3} quality: 2 + isImprovised: 0 factoryProperties: - rid: 806583484692037632 - rid: 806583484692037633 diff --git a/Assets/Artists/Configs/Refences/Fire.asset b/Assets/Artists/Configs/Refences/Fire.asset new file mode 100644 index 000000000..3d797a090 --- /dev/null +++ b/Assets/Artists/Configs/Refences/Fire.asset @@ -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: 69820685192a7b140b6034ec1d0e585e, type: 3} + m_Name: Fire + m_EditorClassIdentifier: + value: Fire diff --git a/Assets/Artists/Configs/Refences/Reload.asset b/Assets/Artists/Configs/Refences/Reload.asset new file mode 100644 index 000000000..47ebb5790 --- /dev/null +++ b/Assets/Artists/Configs/Refences/Reload.asset @@ -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: 69820685192a7b140b6034ec1d0e585e, type: 3} + m_Name: Reload + m_EditorClassIdentifier: + value: Reload diff --git a/Assets/Artists/Prefabs/EntityProxy.prefab b/Assets/Artists/Prefabs/EntityProxy.prefab index dc823752b..3215537cd 100644 --- a/Assets/Artists/Prefabs/EntityProxy.prefab +++ b/Assets/Artists/Prefabs/EntityProxy.prefab @@ -60,6 +60,93 @@ ParentConstraint: m_Sources: - sourceTransform: {fileID: 8939301259950143839} weight: 1 +--- !u!1 &1439263772382777122 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3012280595721412550} + - component: {fileID: 7366056783613668925} + m_Layer: 6 + m_Name: M4A1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3012280595721412550 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1439263772382777122} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6917515382106340287} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7366056783613668925 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1439263772382777122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59dc86b0d5155c7498e7c0ee28de5cf6, type: 3} + m_Name: + m_EditorClassIdentifier: + assetableItem: {fileID: 11400000, guid: 5557f2edf7d8c4b43934c79878628d22, type: 2} + firePoint: {fileID: 2322454793245516490} + bulletService: + rid: 806583666069995709 + forceFire: 1 + references: + version: 2 + RefIds: + - rid: 806583666069995709 + type: {class: BulletServiceSingleton, ns: BITFALL, asm: BITFALL.Bullet.Runtime} + data: +--- !u!1 &3282564729361582311 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6917515382106340287} + m_Layer: 6 + m_Name: Controllers + m_TagString: Untagged + m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6917515382106340287 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3282564729361582311} + 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: 3012280595721412550} + m_Father: {fileID: 5088247503209915273} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &4066453597750257159 GameObject: m_ObjectHideFlags: 0 @@ -76,6 +163,9 @@ GameObject: - component: {fileID: 3488683244084915478} - component: {fileID: 2630237995018867325} - component: {fileID: 2652217143784426575} + - component: {fileID: 7328560627112153540} + - component: {fileID: 4900988971439423463} + - component: {fileID: 6439753104892075433} m_Layer: 6 m_Name: EntityProxy m_TagString: Untagged @@ -99,6 +189,7 @@ Transform: - {fileID: 6326084427786842871} - {fileID: 4901961216034443422} - {fileID: 5459769522642911290} + - {fileID: 6917515382106340287} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!95 &8190192540717976532 @@ -176,6 +267,7 @@ MonoBehaviour: - {fileID: 4307956604766933561} - {fileID: 1293448482971593281} - {fileID: 8998990799866537914} + joints: [] rigidbody: {fileID: 0} --- !u!114 &839526996089019602 MonoBehaviour: @@ -247,6 +339,10 @@ MonoBehaviour: aliveCollider: allow: 1 value: {fileID: 2630237995018867325} + allowAnimatorParameter: 0 + physicsBasedAnimation: + allow: 0 + value: {fileID: 0} references: version: 2 RefIds: @@ -254,6 +350,74 @@ MonoBehaviour: type: {class: ReferenceScriptableObject, ns: BITKit, asm: BITKit} data: so: {fileID: 11400000, guid: 0fc327c3267485645af8945d927e493e, type: 2} +--- !u!114 &7328560627112153540 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4066453597750257159} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d61f8d5d7b83b1941831e20da974aa54, type: 3} + m_Name: + m_EditorClassIdentifier: + InitialFov: 0 + virtualCamera: {fileID: 0} + overrideIndex: + allow: 0 + value: 0 +--- !u!114 &4900988971439423463 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4066453597750257159} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe518ca622404ab4e98b981449e4a789, type: 3} + m_Name: + m_EditorClassIdentifier: + equipped: + _serializedList: + - Key: Assets/Weapon_M4A1 + Value: {fileID: 6029696352193735620} + bodyEquips: + _serializedList: [] + holsteredEquips: + _serializedList: [] +--- !u!114 &6439753104892075433 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4066453597750257159} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ac2d465b526bc94fa8ecba1c434c884, type: 3} + m_Name: + m_EditorClassIdentifier: + animators: + - {fileID: 839526996089019602} + animationKeyWords: + - rid: 806583666069995739 + _rootVelocity: + rid: 806583666069995737 + boolParameters: [] + floatParameters: [] + references: + version: 2 + RefIds: + - rid: 806583666069995737 + type: {class: ReferenceScriptableObject, ns: BITKit, asm: BITKit} + data: + so: {fileID: 11400000, guid: 16255d9c98b4db546ba0977b92d291e0, type: 2} + - rid: 806583666069995739 + type: {class: Reference, ns: BITKit, asm: BITKit} + data: + value: Fire --- !u!1 &4080309079167589688 GameObject: m_ObjectHideFlags: 0 @@ -318,6 +482,92 @@ Transform: - {fileID: 3628348256900614807} m_Father: {fileID: 5088247503209915273} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &3011392489163623404 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2322454793245516490} + m_Modifications: + - target: {fileID: 585187907198464123, guid: 756293f34e21ad8449ada4514314de21, + type: 3} + propertyPath: m_Name + value: vfx_muzzleflash + objectReference: {fileID: 0} + - target: {fileID: 6334674383232214519, guid: 756293f34e21ad8449ada4514314de21, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6334674383232214519, guid: 756293f34e21ad8449ada4514314de21, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6334674383232214519, guid: 756293f34e21ad8449ada4514314de21, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6334674383232214519, guid: 756293f34e21ad8449ada4514314de21, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6334674383232214519, guid: 756293f34e21ad8449ada4514314de21, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6334674383232214519, guid: 756293f34e21ad8449ada4514314de21, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6334674383232214519, guid: 756293f34e21ad8449ada4514314de21, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6334674383232214519, guid: 756293f34e21ad8449ada4514314de21, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6334674383232214519, guid: 756293f34e21ad8449ada4514314de21, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6334674383232214519, guid: 756293f34e21ad8449ada4514314de21, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 756293f34e21ad8449ada4514314de21, type: 3} +--- !u!114 &2119626339006940746 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3792296346815466918, guid: 756293f34e21ad8449ada4514314de21, + type: 3} + m_PrefabInstance: {fileID: 3011392489163623404} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4daf805c91d04d6409660f7675cbdb52, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &9089342988776255003 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6334674383232214519, guid: 756293f34e21ad8449ada4514314de21, + type: 3} + m_PrefabInstance: {fileID: 3011392489163623404} + m_PrefabAsset: {fileID: 0} --- !u!1001 &5285591918902703221 PrefabInstance: m_ObjectHideFlags: 0 @@ -892,9 +1142,51 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: 8098435069078192609, guid: d3acb7cee99e8614086c872341b08644, + type: 3} + insertIndex: -1 + addedObject: {fileID: 9089342988776255003} + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 285318316674533615, guid: d3acb7cee99e8614086c872341b08644, + type: 3} + insertIndex: -1 + addedObject: {fileID: 6120171066608020870} m_SourcePrefab: {fileID: 100100000, guid: d3acb7cee99e8614086c872341b08644, type: 3} +--- !u!4 &2322454793245516490 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8098435069078192609, guid: d3acb7cee99e8614086c872341b08644, + type: 3} + m_PrefabInstance: {fileID: 5789500044955984683} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6029696352193735620 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 285318316674533615, guid: d3acb7cee99e8614086c872341b08644, + type: 3} + m_PrefabInstance: {fileID: 5789500044955984683} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6120171066608020870 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6029696352193735620} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eac859befd6ba3349b2cf8acb119d2de, type: 3} + m_Name: + m_EditorClassIdentifier: + vfxReferences: + - rid: 806583666069995754 + vfxPlayer: {fileID: 2119626339006940746} + references: + version: 2 + RefIds: + - rid: 806583666069995754 + type: {class: ReferenceScriptableObject, ns: BITKit, asm: BITKit} + data: + so: {fileID: 11400000, guid: b7664d3b6512cb042bd9716363153bc1, type: 2} --- !u!4 &6029696352194033636 stripped Transform: m_CorrespondingSourceObject: {fileID: 285318316674503887, guid: d3acb7cee99e8614086c872341b08644, diff --git a/Assets/Artists/Prefabs/Loot/Apple.prefab b/Assets/Artists/Prefabs/Loot/Apple.prefab index 8beccfd55..2bc0c443e 100644 --- a/Assets/Artists/Prefabs/Loot/Apple.prefab +++ b/Assets/Artists/Prefabs/Loot/Apple.prefab @@ -63,6 +63,11 @@ PrefabInstance: propertyPath: m_Name value: Apple_01 objectReference: {fileID: 0} + - target: {fileID: 1755865475335770947, guid: 6db7680dca4eb2748a7339cb3bc13d14, + type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} m_RemovedComponents: - {fileID: 2120823588654661318, guid: 6db7680dca4eb2748a7339cb3bc13d14, type: 3} m_RemovedGameObjects: [] diff --git a/Assets/Artists/Prefabs/Player.prefab b/Assets/Artists/Prefabs/Player.prefab index 92a072ed6..89617d860 100644 --- a/Assets/Artists/Prefabs/Player.prefab +++ b/Assets/Artists/Prefabs/Player.prefab @@ -575,6 +575,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 974388490910736766} + - {fileID: 6504162899667296546} - {fileID: 6778784877586059904} m_Father: {fileID: 5592345712141467330} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1134,9 +1135,11 @@ GameObject: - component: {fileID: 6002452162850529175} - component: {fileID: 2495495580039550089} - component: {fileID: 6678778182358330342} + - component: {fileID: 6221928825442168580} - component: {fileID: 6438031452483613087} - component: {fileID: 7617151341549785245} - component: {fileID: 1315802043012238542} + - component: {fileID: 1267397851485989014} - component: {fileID: 5362342980643103828} - component: {fileID: 3865076157975442983} - component: {fileID: 300229368} @@ -1259,6 +1262,40 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 73333e0a8f0bc4a4b82c06db4c35a21f, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &6221928825442168580 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4826102346843731729} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ac2d465b526bc94fa8ecba1c434c884, type: 3} + m_Name: + m_EditorClassIdentifier: + animators: + - {fileID: 6002452162850529175} + animationKeyWords: + - rid: 806583666069995745 + - rid: 806583666069995746 + _rootVelocity: + rid: -2 + boolParameters: [] + floatParameters: [] + references: + version: 2 + RefIds: + - rid: -2 + type: {class: , ns: , asm: } + - rid: 806583666069995745 + type: {class: ReferenceScriptableObject, ns: BITKit, asm: BITKit} + data: + so: {fileID: 11400000, guid: b7664d3b6512cb042bd9716363153bc1, type: 2} + - rid: 806583666069995746 + type: {class: ReferenceScriptableObject, ns: BITKit, asm: BITKit} + data: + so: {fileID: 11400000, guid: f911910b02fa2ec4298285cde8a2faa2, type: 2} --- !u!114 &6438031452483613087 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1298,6 +1335,25 @@ MonoBehaviour: m_EditorClassIdentifier: healthPoint: 100 maxHealthPoint: 100 +--- !u!114 &1267397851485989014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4826102346843731729} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 315608923f4594746a61782d9fb2d982, type: 3} + m_Name: + m_EditorClassIdentifier: + unityAnimator: {fileID: 6002452162850529175} + animatorControllers: + _serializedList: + - Key: Assets/Weapon_M4A1 + Value: {fileID: 22100000, guid: ac08606b82ce5894b912a062bc236fa3, type: 2} + - Key: Assets/Weapon_Glock + Value: {fileID: 22100000, guid: 0cddccb93dd87994eb401e57eef04596, type: 2} --- !u!114 &5362342980643103828 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1459,10 +1515,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d61f8d5d7b83b1941831e20da974aa54, type: 3} m_Name: m_EditorClassIdentifier: - equips: - index: -1 InitialFov: 60 virtualCamera: {fileID: 3926401271228594272} + overrideIndex: + allow: 0 + value: 0 --- !u!114 &7063041954768829124 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1525,22 +1582,22 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: fe518ca622404ab4e98b981449e4a789, type: 3} m_Name: m_EditorClassIdentifier: - equipments: + equipped: _serializedList: - - Key: Items/Dev_Backpack + - Key: Assets/TacticalKnife + Value: {fileID: 6778784877585698464} + - Key: Assets/Weapon_Glock + Value: {fileID: 6504162899667598594} + - Key: Assets/Weapon_M4A1 + Value: {fileID: 974388490910383454} + bodyEquips: + _serializedList: + - Key: Assets/Dev_Backpack Value: {fileID: 2532744476050021095} + holsteredEquips: + _serializedList: - Key: Assets/Weapon_M4A1 Value: {fileID: 3159909461315830858} - unEquipDictionary: - _serializedList: - - Key: Items/Dev_Backpack - Value: {fileID: 2532744476050021095} - - Key: Weapon_M4A1 - Value: {fileID: 3159909461315830858} - equipDictionary: - _serializedList: - - Key: Weapon_M4A1 - Value: {fileID: 974388490910383454} --- !u!114 &8629046459414148992 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3984,6 +4041,8 @@ MonoBehaviour: transitionOnNextFrame: 0 item: {fileID: 11400000, guid: 9bba7152a5d65c049b17a8461ad4e844, type: 2} animator: {fileID: 4834117868670403678} + vfxPlayer: {fileID: 0} + entityAnimator: {fileID: 0} renderers: - {fileID: 1221488407187310397} - {fileID: 735532174701725946} @@ -4124,12 +4183,118 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: c6747b7c156afa84fab63fe8a9bb3939, type: 3} +--- !u!1 &6778784877585698464 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5162172660552824136, guid: c6747b7c156afa84fab63fe8a9bb3939, + type: 3} + m_PrefabInstance: {fileID: 1851168842159684584} + m_PrefabAsset: {fileID: 0} --- !u!4 &6778784877586059904 stripped Transform: m_CorrespondingSourceObject: {fileID: 5162172660552853864, guid: c6747b7c156afa84fab63fe8a9bb3939, type: 3} m_PrefabInstance: {fileID: 1851168842159684584} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1869663933923627438 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2367504132869257504} + m_Modifications: + - target: {fileID: 2088938590675319443, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + propertyPath: m_CastShadows + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4877693905175392396, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4877693905175392396, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4877693905175392396, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + propertyPath: m_LocalPosition.z + value: -0.046 + objectReference: {fileID: 0} + - target: {fileID: 4877693905175392396, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4877693905175392396, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.5 + objectReference: {fileID: 0} + - target: {fileID: 4877693905175392396, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + propertyPath: m_LocalRotation.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4877693905175392396, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.5 + objectReference: {fileID: 0} + - target: {fileID: 4877693905175392396, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 4877693905175392396, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 270 + objectReference: {fileID: 0} + - target: {fileID: 4877693905175392396, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 4877693905175751852, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + propertyPath: m_Name + value: Pistol4_02 + objectReference: {fileID: 0} + - target: {fileID: 4877693905177686636, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + propertyPath: m_CastShadows + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 8010641801067118335, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + propertyPath: m_CastShadows + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 8353621443289556429, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + propertyPath: m_CastShadows + value: 3 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0a34ffdf8870cb546aad8d55148b4fff, type: 3} +--- !u!4 &6504162899667296546 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4877693905175392396, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + m_PrefabInstance: {fileID: 1869663933923627438} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6504162899667598594 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4877693905175751852, guid: 0a34ffdf8870cb546aad8d55148b4fff, + type: 3} + m_PrefabInstance: {fileID: 1869663933923627438} + m_PrefabAsset: {fileID: 0} --- !u!1001 &2346797690253046104 PrefabInstance: m_ObjectHideFlags: 0 @@ -4404,6 +4569,8 @@ MonoBehaviour: transitionOnNextFrame: 0 item: {fileID: 11400000, guid: 220746f56523829498b8b83d62365cc7, type: 2} animator: {fileID: 2486523390929547415} + vfxPlayer: {fileID: 0} + entityAnimator: {fileID: 0} renderers: - {fileID: 4538978027255161566} - {fileID: 5158269637596109219} @@ -5009,11 +5176,11 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 644cb63bc5228d44e901a3251d09e8cd, type: 3} insertIndex: -1 - addedObject: {fileID: 6600209918710237285} + addedObject: {fileID: 8902445283215300242} - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 644cb63bc5228d44e901a3251d09e8cd, type: 3} insertIndex: -1 - addedObject: {fileID: 8902445283215300242} + addedObject: {fileID: 8065589936586356455} m_SourcePrefab: {fileID: 100100000, guid: 644cb63bc5228d44e901a3251d09e8cd, type: 3} --- !u!137 &279771559974666008 stripped SkinnedMeshRenderer: @@ -5046,11 +5213,13 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: animators: - - {fileID: 8907247608405424211} + - {fileID: 4676489320873285128} animationKeyWords: - rid: 750605193046130694 - rid: 750605214148460547 - rid: 749939664269606914 + - rid: 806583666069995741 + - rid: 806583666069995742 _rootVelocity: rid: 750605193046130692 boolParameters: @@ -5084,6 +5253,14 @@ MonoBehaviour: type: {class: ReferenceScriptableObject, ns: BITKit, asm: BITKit} data: so: {fileID: 11400000, guid: a4d5f0f375420144c888f6d9e0f2593c, type: 2} + - rid: 806583666069995741 + type: {class: ReferenceScriptableObject, ns: BITKit, asm: BITKit} + data: + so: {fileID: 11400000, guid: b7664d3b6512cb042bd9716363153bc1, type: 2} + - rid: 806583666069995742 + type: {class: ReferenceScriptableObject, ns: BITKit, asm: BITKit} + data: + so: {fileID: 11400000, guid: f911910b02fa2ec4298285cde8a2faa2, type: 2} --- !u!114 &4676489320873285128 MonoBehaviour: m_ObjectHideFlags: 0 @@ -5099,24 +5276,6 @@ MonoBehaviour: debug: 0 animator: {fileID: 8907247608405424211} layerInfos: [] ---- !u!114 &6600209918710237285 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2753699357243898003} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4daf805c91d04d6409660f7675cbdb52, type: 3} - m_Name: - m_EditorClassIdentifier: - allowParticles: - allow: 0 - value: [] - allowLight: - allow: 0 - value: {fileID: 0} --- !u!114 &8902445283215300242 MonoBehaviour: m_ObjectHideFlags: 0 @@ -5146,6 +5305,8 @@ MonoBehaviour: transitionOnNextFrame: 0 item: {fileID: 11400000, guid: 5557f2edf7d8c4b43934c79878628d22, type: 2} animator: {fileID: 4676489320873285128} + vfxPlayer: {fileID: 8065589936586356455} + entityAnimator: {fileID: 4515933970560943755} renderers: - {fileID: 279771559974666008} - {fileID: 3790416042972862020} @@ -5167,7 +5328,6 @@ MonoBehaviour: meleeAction: {fileID: 709374767176041235, guid: e0e9267cab824e8489fc27d83f1d07b7, type: 3} cameraView: {fileID: 8525020893898639929} - vfxPlayer: {fileID: 5006172060748096908} locationAdditive: {fileID: 4486952052422082421} assetable: {fileID: 11400000, guid: 5557f2edf7d8c4b43934c79878628d22, type: 2} expectFiring: @@ -5228,6 +5388,28 @@ MonoBehaviour: type: {class: Climb, ns: BITFALL.Guns.States, asm: BITFALL.Equip} data: root: {fileID: 8902445283215300242} +--- !u!114 &8065589936586356455 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2753699357243898003} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eac859befd6ba3349b2cf8acb119d2de, type: 3} + m_Name: + m_EditorClassIdentifier: + vfxReferences: + - rid: 806583666069995748 + vfxPlayer: {fileID: 5006172060748096908} + references: + version: 2 + RefIds: + - rid: 806583666069995748 + type: {class: ReferenceScriptableObject, ns: BITKit, asm: BITKit} + data: + so: {fileID: 11400000, guid: b7664d3b6512cb042bd9716363153bc1, type: 2} --- !u!4 &3277717096784339497 stripped Transform: m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 644cb63bc5228d44e901a3251d09e8cd, @@ -6569,6 +6751,8 @@ MonoBehaviour: transitionOnNextFrame: 0 item: {fileID: 11400000, guid: 5e50b5a1c5542da46b92f4cf7bbd5043, type: 2} animator: {fileID: 2269618926873949942} + vfxPlayer: {fileID: 0} + entityAnimator: {fileID: 0} renderers: - {fileID: 456800702483242086} - {fileID: 3539558469337834170} @@ -6907,6 +7091,8 @@ MonoBehaviour: transitionOnNextFrame: 0 item: {fileID: 11400000, guid: beaccfe60f8582e4895457499e18b12c, type: 2} animator: {fileID: 446310280712231859} + vfxPlayer: {fileID: 0} + entityAnimator: {fileID: 0} renderers: - {fileID: 230503227726884351} - {fileID: 6538094884673845581} @@ -7742,6 +7928,10 @@ PrefabInstance: type: 3} insertIndex: -1 addedObject: {fileID: 4874137276923287036} + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 5bbc8731abf94f94a8849dd8106296fe, + type: 3} + insertIndex: -1 + addedObject: {fileID: 4925042838238742529} m_SourcePrefab: {fileID: 100100000, guid: 5bbc8731abf94f94a8849dd8106296fe, type: 3} --- !u!137 &727301493299199162 stripped SkinnedMeshRenderer: @@ -7792,11 +7982,13 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: animators: - - {fileID: 4357561961615010256} + - {fileID: 4874137276923287036} animationKeyWords: - rid: 750605193046130694 - rid: 750605214148460547 - rid: 749939664269606914 + - rid: 806583666069995743 + - rid: 806583666069995744 _rootVelocity: rid: 750605193046130692 boolParameters: @@ -7830,6 +8022,14 @@ MonoBehaviour: type: {class: ReferenceScriptableObject, ns: BITKit, asm: BITKit} data: so: {fileID: 11400000, guid: a4d5f0f375420144c888f6d9e0f2593c, type: 2} + - rid: 806583666069995743 + type: {class: ReferenceScriptableObject, ns: BITKit, asm: BITKit} + data: + so: {fileID: 11400000, guid: b7664d3b6512cb042bd9716363153bc1, type: 2} + - rid: 806583666069995744 + type: {class: ReferenceScriptableObject, ns: BITKit, asm: BITKit} + data: + so: {fileID: 11400000, guid: f911910b02fa2ec4298285cde8a2faa2, type: 2} --- !u!114 &4384885775763546391 MonoBehaviour: m_ObjectHideFlags: 0 @@ -7859,6 +8059,8 @@ MonoBehaviour: transitionOnNextFrame: 0 item: {fileID: 11400000, guid: 4cf1920e287c0234f9fa77937708ffe2, type: 2} animator: {fileID: 4874137276923287036} + vfxPlayer: {fileID: 4925042838238742529} + entityAnimator: {fileID: 936978454741360619} renderers: - {fileID: 8322527087331379143} - {fileID: 727301493299199162} @@ -7883,7 +8085,6 @@ MonoBehaviour: meleeAction: {fileID: 709374767176041235, guid: e0e9267cab824e8489fc27d83f1d07b7, type: 3} cameraView: {fileID: 3579016247041219514} - vfxPlayer: {fileID: 49539130056838808} locationAdditive: {fileID: 4486952052422082421} assetable: {fileID: 11400000, guid: 4cf1920e287c0234f9fa77937708ffe2, type: 2} expectFiring: @@ -7959,6 +8160,28 @@ MonoBehaviour: debug: 0 animator: {fileID: 4357561961615010256} layerInfos: [] +--- !u!114 &4925042838238742529 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7048933845581474064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eac859befd6ba3349b2cf8acb119d2de, type: 3} + m_Name: + m_EditorClassIdentifier: + vfxReferences: + - rid: 806583666069995752 + vfxPlayer: {fileID: 49539130056838808} + references: + version: 2 + RefIds: + - rid: 806583666069995752 + type: {class: ReferenceScriptableObject, ns: BITKit, asm: BITKit} + data: + so: {fileID: 11400000, guid: b7664d3b6512cb042bd9716363153bc1, type: 2} --- !u!4 &7681178683086533546 stripped Transform: m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 5bbc8731abf94f94a8849dd8106296fe, diff --git a/Assets/Artists/Prefabs/Props/Prop Throwing Knife.prefab b/Assets/Artists/Prefabs/Props/Prop Throwing Knife.prefab index 759caabaa..2fda0cfa3 100644 --- a/Assets/Artists/Prefabs/Props/Prop Throwing Knife.prefab +++ b/Assets/Artists/Prefabs/Props/Prop Throwing Knife.prefab @@ -103,6 +103,10 @@ PrefabInstance: type: 3} insertIndex: -1 addedObject: {fileID: 626853534020189990} + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: a5afe13492c9acf478def44319cb3619, + type: 3} + insertIndex: -1 + addedObject: {fileID: 8823825610688837616} m_SourcePrefab: {fileID: 100100000, guid: a5afe13492c9acf478def44319cb3619, type: 3} --- !u!1 &3130178554240382059 stripped GameObject: @@ -190,3 +194,116 @@ MonoBehaviour: layerMask: serializedVersion: 2 m_Bits: 513 +--- !u!96 &8823825610688837616 +TrailRenderer: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3130178554240382059} + m_Enabled: 0 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: b9ee288987a7daf438ed100698f0cad8, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Time: 0.32 + m_PreviewTimeScale: 1 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.01 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 1 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.64 + value: 0.01 + inSlope: 0 + outSlope: 0 + tangentMode: 1 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 0.1 + m_MaskInteraction: 0 + m_Autodestruct: 0 + m_Emitting: 1 + m_ApplyActiveColorSpace: 1 diff --git a/Assets/Artists/Prefabs/Scenes/Core/Abstract_Physics_Door.prefab b/Assets/Artists/Prefabs/Scenes/Core/Abstract_Physics_Door.prefab index 4a44a6eb5..d2bcb18e0 100644 --- a/Assets/Artists/Prefabs/Scenes/Core/Abstract_Physics_Door.prefab +++ b/Assets/Artists/Prefabs/Scenes/Core/Abstract_Physics_Door.prefab @@ -44,7 +44,7 @@ Rigidbody: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1221729430557705066} serializedVersion: 4 - m_Mass: 1 + m_Mass: 16 m_Drag: 0 m_AngularDrag: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} @@ -75,6 +75,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 2b1d23c488f41754ea714f972c248130, type: 3} m_Name: m_EditorClassIdentifier: + allowPhysics: 1 root: {fileID: 5555206979556305353} openEuler: {x: 0, y: -120, z: 0} closeEuler: {x: 0, y: 0, z: 0} @@ -368,7 +369,7 @@ MonoBehaviour: overlayTexture: {fileID: 0} overlayTextureScale: 1 outline: 1 - outlineColor: {r: 0, g: 0, b: 0, a: 1} + outlineColor: {r: 1, g: 0.26270828, b: 0.025157154, a: 1} outlineColorStyle: 0 outlineGradient: serializedVersion: 2 @@ -401,8 +402,8 @@ MonoBehaviour: m_NumColorKeys: 2 m_NumAlphaKeys: 2 outlineGradientInLocalSpace: 0 - outlineWidth: 0.45 - outlineQuality: 3 + outlineWidth: 0.64 + outlineQuality: 1 outlineDownsampling: 2 outlineVisibility: 0 glowBlendMode: 0 @@ -410,7 +411,7 @@ MonoBehaviour: outlineIndependent: 0 glow: 0 glowWidth: 0.4 - glowQuality: 3 + glowQuality: 1 glowDownsampling: 2 glowHQColor: {r: 0.64, g: 1, b: 0, a: 1} glowDithering: 1 @@ -445,10 +446,10 @@ MonoBehaviour: targetFXRotationSpeed: 50 targetFXInitialScale: 4 targetFXEndScale: 1.5 - targetFXScaleToRenderBounds: 1 + targetFXScaleToRenderBounds: 0 targetFXAlignToGround: 0 targetFXFadePower: 32 - targetFXGroundMaxDistance: 10 + targetFXGroundMaxDistance: 15 targetFXGroundLayerMask: serializedVersion: 2 m_Bits: 4294967295 @@ -459,7 +460,7 @@ MonoBehaviour: seeThroughOccluderMask: serializedVersion: 2 m_Bits: 4294967295 - seeThroughOccluderThreshold: 0.3 + seeThroughOccluderThreshold: 0.4 seeThroughOccluderMaskAccurate: 0 seeThroughOccluderCheckInterval: 1 seeThroughOccluderCheckIndividualObjects: 0 diff --git a/Assets/Artists/Prefabs/Services/Framework.prefab b/Assets/Artists/Prefabs/Services/Framework.prefab index e6d05afc6..a02ccbe8c 100644 --- a/Assets/Artists/Prefabs/Services/Framework.prefab +++ b/Assets/Artists/Prefabs/Services/Framework.prefab @@ -142,7 +142,6 @@ MonoBehaviour: prefab: {fileID: 2956281190107464547, guid: cd8502ee01a85944bbccb38128facc13, type: 3} root: {fileID: 1621845164855518716} - instances: [] references: version: 2 RefIds: @@ -194,7 +193,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_host: 127.0.0.1 m_port: 27014 - connectOnStart: 1 + connectOnStart: 0 autoReconnect: 1 allowDebugHost: allow: 0 @@ -283,8 +282,8 @@ MonoBehaviour: steamService: rid: 806583144903606758 allowLoadOfflineMap: - allow: 0 - value: Maps/InitialScene + allow: 1 + value: Maps/DMZ references: version: 2 RefIds: @@ -813,9 +812,6 @@ MonoBehaviour: type: 3} inventoryAction: {fileID: 4731022410478041803, guid: e0e9267cab824e8489fc27d83f1d07b7, type: 3} - inputActionGroup: - allowGlobalActivation: 0 - isEnabled: 0 references: version: 2 RefIds: diff --git a/Assets/Artists/Prefabs/Zombie.prefab b/Assets/Artists/Prefabs/Zombie.prefab index 598d1ca76..e5556e91e 100644 --- a/Assets/Artists/Prefabs/Zombie.prefab +++ b/Assets/Artists/Prefabs/Zombie.prefab @@ -118,6 +118,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8bf3c729cc99f0b47a6b0bd8f97fac73, type: 3} m_Name: m_EditorClassIdentifier: + isOvering: 0 --- !u!114 &7936474328313349173 MonoBehaviour: m_ObjectHideFlags: 0 @@ -361,6 +362,7 @@ MonoBehaviour: - {fileID: 932345816451815009} - {fileID: 2795597010085539353} - {fileID: 5465789218075534306} + joints: [] rigidbody: {fileID: 6212079510373085893} --- !u!114 &6426485772650260809 MonoBehaviour: @@ -380,6 +382,10 @@ MonoBehaviour: aliveCollider: allow: 1 value: {fileID: 8579368653672686413} + allowAnimatorParameter: 0 + physicsBasedAnimation: + allow: 0 + value: {fileID: 0} references: version: 2 RefIds: @@ -422,7 +428,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: animators: - - {fileID: 673930142905110667} + - {fileID: 7936474328313349173} animationKeyWords: [] _rootVelocity: rid: 806583346156273665 diff --git a/Assets/Artists/Scenes/DMZ.unity b/Assets/Artists/Scenes/DMZ.unity index 48fcb0c6c..ac155747d 100644 --- a/Assets/Artists/Scenes/DMZ.unity +++ b/Assets/Artists/Scenes/DMZ.unity @@ -1147,22 +1147,22 @@ PrefabInstance: - target: {fileID: 3772777254845134042, guid: f25aeccf4aba96b43a20d93ee9fa4e6e, type: 3} propertyPath: m_LocalPosition.x - value: 22.661001 + value: 53.821 objectReference: {fileID: 0} - target: {fileID: 3772777254845134042, guid: f25aeccf4aba96b43a20d93ee9fa4e6e, type: 3} propertyPath: m_LocalPosition.y - value: 2.1051528 + value: 1.4299991 objectReference: {fileID: 0} - target: {fileID: 3772777254845134042, guid: f25aeccf4aba96b43a20d93ee9fa4e6e, type: 3} propertyPath: m_LocalPosition.z - value: 21.766075 + value: -62.513924 objectReference: {fileID: 0} - target: {fileID: 3772777254845134042, guid: f25aeccf4aba96b43a20d93ee9fa4e6e, type: 3} propertyPath: m_LocalRotation.w - value: 0.7071068 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3772777254845134042, guid: f25aeccf4aba96b43a20d93ee9fa4e6e, type: 3} @@ -1172,7 +1172,7 @@ PrefabInstance: - target: {fileID: 3772777254845134042, guid: f25aeccf4aba96b43a20d93ee9fa4e6e, type: 3} propertyPath: m_LocalRotation.y - value: 0.7071068 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3772777254845134042, guid: f25aeccf4aba96b43a20d93ee9fa4e6e, type: 3} @@ -13822,7 +13822,7 @@ MeshFilter: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 310741521} - m_Mesh: {fileID: 499886243} + m_Mesh: {fileID: 1893400711} --- !u!23 &310741524 MeshRenderer: m_ObjectHideFlags: 0 @@ -14049,8 +14049,8 @@ MonoBehaviour: m_AreaError: 15 m_PreserveMeshAssetOnDestroy: 0 assetGuid: - m_Mesh: {fileID: 499886243} - m_VersionIndex: 599 + m_Mesh: {fileID: 1893400711} + m_VersionIndex: 605 m_IsSelectable: 1 m_SelectedFaces: m_SelectedEdges: [] @@ -24308,171 +24308,6 @@ MonoBehaviour: mr: {fileID: 497884692} mf: {fileID: 497884693} garbageCollectMesh: {fileID: 497884694} ---- !u!43 &499886243 -Mesh: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh36434 - serializedVersion: 11 - m_SubMeshes: - - serializedVersion: 2 - firstByte: 0 - indexCount: 24 - topology: 0 - baseVertex: 0 - firstVertex: 0 - vertexCount: 9 - localAABB: - m_Center: {x: -97.7142, y: 1.6801468e-15, z: 75.66708} - m_Extent: {x: 128, y: 0, z: 128} - m_Shapes: - vertices: [] - shapes: [] - channels: [] - fullWeights: [] - m_BindPose: [] - m_BoneNameHashes: - m_RootBoneNameHash: 0 - m_BonesAABB: [] - m_VariableBoneCountWeights: - m_Data: - m_MeshCompression: 0 - m_IsReadable: 1 - m_KeepVertices: 1 - m_KeepIndices: 1 - m_IndexFormat: 0 - m_IndexBuffer: 000001000200010003000200010004000300040005000300020003000600030007000600030005000700050008000700 - m_VertexData: - serializedVersion: 3 - m_VertexCount: 9 - m_Channels: - - stream: 0 - offset: 0 - format: 0 - dimension: 3 - - stream: 0 - offset: 12 - format: 0 - dimension: 3 - - stream: 0 - offset: 24 - format: 0 - dimension: 4 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 40 - format: 0 - dimension: 2 - - stream: 0 - offset: 48 - format: 0 - dimension: 2 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - m_DataSize: 504 - _typelessdata: d6b661c37a22f226e85451c2000000000000803f000000000000803f0000000000000000000080bfd6b661c3e85451c217d7a33c0bd7a33cd6b661c37a22f2268c559742000000000000803f000000000000803f0000000000000000000080bfd6b661c38c5597426f32003f0bd7a33cac6dc3c27a22f226e85451c2000000000000803f000000000000803f0000000000000000000080bfac6dc3c2e85451c211d7a33c6232003fac6dc3c27a22f2268c559742000000000000803f000000000000803f0000000000000000000080bfac6dc3c28c5597426d32003f6332003fd6b661c37a22f226c6aa4b43000000000000803f000000000000803f0000000000000000000080bfd6b661c3c6aa4b431b467b3f0bd7a33cac6dc3c27a22f226c6aa4b43000000000000803f000000000000803f0000000000000000000080bfac6dc3c2c6aa4b431b467b3f6532003f5049f2417a22f226e85451c2000000000000803f000000000000803f0000000000000000000080bf5049f241e85451c20bd7a33c07467b3f5049f2417a22f2268c559742000000000000803f000000000000803f0000000000000000000080bf5049f2418c5597426b32003f07467b3f5049f2417a22f226c6aa4b43000000000000803f000000000000803f0000000000000000000080bf5049f241c6aa4b431b467b3f07467b3f - m_CompressedMesh: - m_Vertices: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_UV: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Normals: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Tangents: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Weights: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_NormalSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_TangentSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_FloatColors: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_BoneIndices: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_Triangles: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_UVInfo: 0 - m_LocalAABB: - m_Center: {x: -97.7142, y: 1.6801468e-15, z: 75.66708} - m_Extent: {x: 128, y: 0, z: 128} - m_MeshUsageFlags: 0 - m_CookingOptions: 30 - m_BakedConvexCollisionMesh: - m_BakedTriangleCollisionMesh: - m_MeshMetrics[0]: 1 - m_MeshMetrics[1]: 70883.87 - m_MeshOptimizationFlags: 1 - m_StreamData: - serializedVersion: 2 - offset: 0 - size: 0 - path: --- !u!4 &505303611 stripped Transform: m_CorrespondingSourceObject: {fileID: -3983025326440498736, guid: b805b0f643b3776478b9ea3e6701ebb8, @@ -38878,6 +38713,11 @@ PrefabInstance: propertyPath: m_LocalPosition.y value: 0.30000016 objectReference: {fileID: 0} + - target: {fileID: 7328560627112153540, guid: f18510934c4581d47819abfbf1bd3647, + type: 3} + propertyPath: overrideIndex.allow + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -90414,6 +90254,171 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1881821744} m_PrefabAsset: {fileID: 0} +--- !u!43 &1893400711 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: pb_Mesh36450 + serializedVersion: 11 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 24 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 9 + localAABB: + m_Center: {x: -97.7142, y: 1.6801468e-15, z: 75.66708} + m_Extent: {x: 128, y: 0, z: 128} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 1 + m_KeepIndices: 1 + m_IndexFormat: 0 + m_IndexBuffer: 000001000200010003000200010004000300040005000300020003000600030007000600030005000700050008000700 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 9 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 24 + format: 0 + dimension: 4 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 40 + format: 0 + dimension: 2 + - stream: 0 + offset: 48 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 504 + _typelessdata: d6b661c37a22f226e85451c2000000000000803f000000000000803f0000000000000000000080bfd6b661c3e85451c217d7a33c0bd7a33cd6b661c37a22f2268c559742000000000000803f000000000000803f0000000000000000000080bfd6b661c38c5597426f32003f0bd7a33cac6dc3c27a22f226e85451c2000000000000803f000000000000803f0000000000000000000080bfac6dc3c2e85451c211d7a33c6232003fac6dc3c27a22f2268c559742000000000000803f000000000000803f0000000000000000000080bfac6dc3c28c5597426d32003f6332003fd6b661c37a22f226c6aa4b43000000000000803f000000000000803f0000000000000000000080bfd6b661c3c6aa4b431b467b3f0bd7a33cac6dc3c27a22f226c6aa4b43000000000000803f000000000000803f0000000000000000000080bfac6dc3c2c6aa4b431b467b3f6532003f5049f2417a22f226e85451c2000000000000803f000000000000803f0000000000000000000080bf5049f241e85451c20bd7a33c07467b3f5049f2417a22f2268c559742000000000000803f000000000000803f0000000000000000000080bf5049f2418c5597426b32003f07467b3f5049f2417a22f226c6aa4b43000000000000803f000000000000803f0000000000000000000080bf5049f241c6aa4b431b467b3f07467b3f + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: -97.7142, y: 1.6801468e-15, z: 75.66708} + m_Extent: {x: 128, y: 0, z: 128} + m_MeshUsageFlags: 0 + m_CookingOptions: 30 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1 + m_MeshMetrics[1]: 70883.87 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: --- !u!1001 &1893649403 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Artists/Scripts/BulletService/BulletService.cs b/Assets/Artists/Scripts/BulletService/BulletService.cs index 47152ddeb..25392ec60 100644 --- a/Assets/Artists/Scripts/BulletService/BulletService.cs +++ b/Assets/Artists/Scripts/BulletService/BulletService.cs @@ -18,8 +18,8 @@ namespace BITFALL public record InstanceBullet : SpawnBullet { public Vector3 currentPos; - public float InitialForce; public float currentSpeed = 64; + public float ElapsedTime; public BITBullet model; } [Serializable] @@ -43,7 +43,7 @@ namespace BITFALL private IDamageService damageService; [Header(Constant.Header.Settings)] - public UnityPool pool = new(); + [SerializeField] private UnityPool pool = new(); [Header(Constant.Header.InternalVariables)] private readonly List instances = new(); @@ -77,9 +77,15 @@ namespace BITFALL } else { + // 计算子弹的下坠距离 + float distance = 0.5f * Physics.gravity.y * bullet.ElapsedTime * bullet.ElapsedTime; + bullet.currentSpeed -= bullet.startSpeed * Time.fixedDeltaTime; bullet.currentPos += (Vector3)bullet.forward * (bullet.currentSpeed * Time.fixedDeltaTime); + bullet.currentPos += Vector3.up * distance; bullet.model.transform.position = bullet.currentPos; + + bullet.ElapsedTime += Time.fixedDeltaTime; } } } @@ -131,7 +137,7 @@ namespace BITFALL (null, null) => null, (null, not null) => damagable?.Rigidbody, (not null, null) => raycastHit.rigidbody, - (not null, not null) => raycastHit.rigidbody, + (not null, not null) => damagable?.Rigidbody, }; if (_rigidbody is not null && _rigidbody.gameObject.layer is not 0) { @@ -154,8 +160,12 @@ namespace BITFALL forward = raycastHit.normal, }; var vfx = DI.Get().Spawn(location, tags.ToArray()); - var constraint = vfx.gameObject.AddComponent(); + var constraint = vfx.gameObject.GetOrAddComponent(); var sourceTransform = raycastHit.transform; + while (constraint.sourceCount>0) + { + constraint.RemoveSource(0); + } constraint.AddSource(new ConstraintSource() { sourceTransform = sourceTransform, diff --git a/Assets/Artists/Scripts/Entities/Animation/BITFALL.Entities.Animation.asmdef b/Assets/Artists/Scripts/Entities/Animation/BITFALL.Entities.Animation.asmdef new file mode 100644 index 000000000..8c98b0225 --- /dev/null +++ b/Assets/Artists/Scripts/Entities/Animation/BITFALL.Entities.Animation.asmdef @@ -0,0 +1,21 @@ +{ + "name": "BITFALL.Entities.Animation", + "rootNamespace": "", + "references": [ + "GUID:14fe60d984bf9f84eac55c6ea033a8f4", + "GUID:709caf8d7fb6ef24bbba0ab9962a3ad0", + "GUID:84d565da37ad40546a118cfb3c3509f3", + "GUID:d525ad6bd40672747bde77962f1c401e", + "GUID:49b49c76ee64f6b41bf28ef951cb0e50", + "GUID:677cd05ca06c46b4395470200b1acdad" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Artists/Scripts/Entities/Animation/EntitiesAnimationController.cs b/Assets/Artists/Scripts/Entities/Animation/EntitiesAnimationController.cs index 0eec15bf4..a3a2d1b09 100644 --- a/Assets/Artists/Scripts/Entities/Animation/EntitiesAnimationController.cs +++ b/Assets/Artists/Scripts/Entities/Animation/EntitiesAnimationController.cs @@ -1,18 +1,48 @@ using System.Collections; using System.Collections.Generic; +using AYellowpaper.SerializedCollections; +using BITFALL.Entities.Equipment; +using BITKit.Animations; using UnityEngine; -public class EntitiesAnimationController : MonoBehaviour +namespace BITKit.Entities.Animation { - // Start is called before the first frame update - void Start() - { - - } + public sealed class EntitiesAnimationController : EntityComponent + { + [SerializeField] private UnityAnimator unityAnimator; + [SerializeField] private SerializedDictionary animatorControllers; + [Inject] + private IEntityEquipment _entityEquipment; + + private RuntimeAnimatorController _initialRuntimeAnimatorController; + + private readonly DoubleBuffer _runtimeAnimatorControllerBuffer = new(); + public override void OnAwake() + { + base.OnAwake(); + _entityEquipment.OnEquip += OnEquip; + _initialRuntimeAnimatorController = unityAnimator.animator.runtimeAnimatorController; + } + + public override void OnLateUpdate(float deltaTime) + { + if(_runtimeAnimatorControllerBuffer.TryGetRelease(out var controller)) + { + unityAnimator.animator.runtimeAnimatorController = controller; + } + } + + private void OnEquip(IBasicItem obj) + { + if(animatorControllers.TryGetValue(obj.AddressablePath, out var controller)) + { + _runtimeAnimatorControllerBuffer.Release(controller); + } + else + { + _runtimeAnimatorControllerBuffer.Release(_initialRuntimeAnimatorController); + } + } + } - // Update is called once per frame - void Update() - { - - } } diff --git a/Assets/Artists/Scripts/Entities/EquipSelector/PlayerEquipSelector.cs b/Assets/Artists/Scripts/Entities/EquipSelector/PlayerEquipSelector.cs index 16dc808dd..ebd30f300 100644 --- a/Assets/Artists/Scripts/Entities/EquipSelector/PlayerEquipSelector.cs +++ b/Assets/Artists/Scripts/Entities/EquipSelector/PlayerEquipSelector.cs @@ -278,6 +278,7 @@ namespace BITFALL.Entities.Equipment private void Equip(IBasicItem item) { + _equipment.EntryEquip(item); currentEquip = item; } @@ -296,6 +297,7 @@ namespace BITFALL.Entities.Equipment { if (!_equipmentContainer.Equipment.TryGetAny(x => x.Key is T, out var item)) return false; //if (!_inventory.TryUseItem(item.Value)) return false; + _improvisedService.TryUnEquipImprovised(out _); Equip(item.Value); return true; } diff --git a/Assets/Artists/Scripts/Entities/Equipment/BITFALL.Entities.Equipment.Runtime.asmdef b/Assets/Artists/Scripts/Entities/Equipment/BITFALL.Entities.Equipment.Runtime.asmdef index 0a0245e90..f4164eebe 100644 --- a/Assets/Artists/Scripts/Entities/Equipment/BITFALL.Entities.Equipment.Runtime.asmdef +++ b/Assets/Artists/Scripts/Entities/Equipment/BITFALL.Entities.Equipment.Runtime.asmdef @@ -16,7 +16,9 @@ "GUID:30cdc242b1ac6a944a460f4ab0b77b88", "GUID:7efac18f239530141802fb139776f333", "GUID:ef0bb553b58b90b488bdbe8672e3be0b", - "GUID:48ef04d98836e2640bf90b524bdff904" + "GUID:48ef04d98836e2640bf90b524bdff904", + "GUID:1eb13dc7c3cb5a444877a995967ed591", + "GUID:ea5474181b324dd49a5976cd68f44f18" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Assets/Artists/Scripts/Entities/Equipment/EntityEquipment.cs b/Assets/Artists/Scripts/Entities/Equipment/EntityEquipment.cs index 622c0614e..29c26035a 100644 --- a/Assets/Artists/Scripts/Entities/Equipment/EntityEquipment.cs +++ b/Assets/Artists/Scripts/Entities/Equipment/EntityEquipment.cs @@ -6,10 +6,12 @@ using BITKit; using BITKit.Animations; using BITKit.StateMachine; using System.Linq; +using System.Security.Permissions; using BITFALL; using BITFALL.Entities.Equipment; using BITFALL.Player.Equip; using BITKit.Entities.Melee; +using BITKit.Entities.VFX; using Cinemachine; using Cysharp.Threading.Tasks; @@ -22,7 +24,9 @@ namespace BITKit.Entities [SerializeField] protected AssetableItem item; [Header(Constant.Header.Components)] - public UnityAnimator animator; + [SerializeField] public UnityAnimator animator; + [SerializeField] protected EntityVFXPlayer vfxPlayer; + [SerializeField] protected EntityAnimator entityAnimator; [SerializeField] private Renderer[] renderers; [SerializeField] protected Transform cameraTransform; @@ -30,6 +34,7 @@ namespace BITKit.Entities [SerializeReference,SubclassSelector] protected IMeleeService meleeService; public Core.Entites.IEntity Entity { get; set; } + public Entity UnityEntity=>Entity as Entity; public IBasicItem Item { get; set; } public readonly InputActionGroup inputActionGroup = new() @@ -46,14 +51,29 @@ namespace BITKit.Entities { AllowRendering.AddElement(this); inputActionGroup.allowInput.AddElement(this); + + if (entityAnimator) + entityAnimator.enabled = true; + if (vfxPlayer) + vfxPlayer.enabled = true; + + var animName = animator.animator.GetCurrentAnimatorStateInfo(0).shortNameHash; + animator.animator.Play(animName, -1, 0); } + public virtual UniTask EntryAsync() { + return UniTask.CompletedTask; } public virtual void Exit() { + if (entityAnimator) + entityAnimator.enabled = false; + if (vfxPlayer) + vfxPlayer.enabled = false; + inputActionGroup.allowInput.RemoveElement(this); } public virtual UniTask ExitAsync() @@ -126,33 +146,54 @@ namespace BITKit.Entities [CustomType(typeof(IEntityEquipment))] public class EntityEquipment : EntityComponent,IEquipService,IEntityEquipment { - public EntryGroup equips = new(); public IOptional Zoom { get; } = new Optional(){Value = 1}; public float InitialFov; [SerializeField] private CinemachineVirtualCamera virtualCamera; + + [SerializeField] private Optional overrideIndex; public event Action OnEquip; - public event Action OnDeEquip; - + public event Action OnUnEquip; + public event Action OnEquipAddressable; + public event Action OnUnEquipAddressable; + + private readonly EntryGroup equips = new(); protected IEquipBase entryComplete; private PlayerConfig playerConfig; private IBasicItem _currentItem; - public override void OnStart() + + [Inject(true)] private IHealth _health; + public override void OnAwake() { - base.OnStart(); + base.OnAwake(); equips.list = GetComponentsInChildren(true).ToList(); equips.OnEntry += OnEntry; equips.OnExit += OnExit; - + + if (_health is not null) + { + _health.OnSetAlive += x => + { + if (x is false) + EntryEquip(-1); + }; + } + foreach (var x in equips.list) { x.Entity = entity; x.OnAwake(); } + + } + + public override void OnStart() + { + base.OnStart(); foreach (var x in equips.list) { x.OnStart(); @@ -161,14 +202,18 @@ namespace BITKit.Entities private void OnExit(IEquipBase obj) { + OnUnEquipAddressable?.Invoke(obj.AddressablePath); + OnUnEquip?.Invoke(obj.Item); + //Debug.Log($"已退出:{obj.Item.Name}"); obj.Item = null; - OnDeEquip?.Invoke(obj.Item); } private void OnEntry(IEquipBase obj) { + OnEquipAddressable?.Invoke(obj.AddressablePath); obj.Item = _currentItem; OnEquip?.Invoke(obj.Item); + //Debug.Log($"已进入:{obj.Item.Name}"); } public override void OnUpdate(float deltaTime) @@ -185,6 +230,11 @@ namespace BITKit.Entities current = Mathf.Clamp(current, 10, PlayerConfig.Singleton.Fov); virtualCamera.m_Lens.FieldOfView = current; } + + if (overrideIndex.Allow && (_health?.IsAlive ?? true)) + { + EntryEquip(overrideIndex.Value); + } } public bool IsSupportItem(IBasicItem item)=> equips.list.Any(x => x.IsSupportItem(item)); diff --git a/Assets/Artists/Scripts/Entities/Improvised/ImprovisedService.cs b/Assets/Artists/Scripts/Entities/Improvised/ImprovisedService.cs index a6023c38e..05a31d236 100644 --- a/Assets/Artists/Scripts/Entities/Improvised/ImprovisedService.cs +++ b/Assets/Artists/Scripts/Entities/Improvised/ImprovisedService.cs @@ -53,6 +53,10 @@ namespace BITFALL.Entities.Improvised { return false; } + if (TryGetImprovisedItem(out var current)) + { + TryUnEquipImprovised(out _); + } _improvisedItem = weapon; OnEquipImprovisedItem?.Invoke(weapon); return true; diff --git a/Assets/Artists/Scripts/Entities/Inventory/EntityInventory.cs b/Assets/Artists/Scripts/Entities/Inventory/EntityInventory.cs index a2278dbfa..781d18201 100644 --- a/Assets/Artists/Scripts/Entities/Inventory/EntityInventory.cs +++ b/Assets/Artists/Scripts/Entities/Inventory/EntityInventory.cs @@ -16,7 +16,7 @@ namespace BITFALL { [CustomType(typeof(IEntityInventory))] [CustomType(typeof(IBasicItemContainer))] - public abstract class EntityInventory : EntityComponent, IEntityInventory,IBasicItemContainer + public class EntityInventory : EntityComponent, IEntityInventory { /// /// 数据字典 diff --git a/Assets/Artists/Scripts/Entities/Inventory/PlayerInventory.cs b/Assets/Artists/Scripts/Entities/Inventory/PlayerInventory.cs index 5186766b3..da02ebd2b 100644 --- a/Assets/Artists/Scripts/Entities/Inventory/PlayerInventory.cs +++ b/Assets/Artists/Scripts/Entities/Inventory/PlayerInventory.cs @@ -41,7 +41,7 @@ namespace BITFALL { if (!obj.Transform.TryGetComponentAny(out var item)) return; var _item = item.Pick(); - if(item.GetAssetable().TryGetProperty(out _)) + if(item.GetAssetable().IsImprovised) { if (_knockdown is not null && _knockdown.IsKnockdown) { diff --git a/Assets/Artists/Scripts/Entities/Skins/EntityPropsDisplay.cs b/Assets/Artists/Scripts/Entities/Skins/EntityPropsDisplay.cs index 9b6e9f654..8184b88a8 100644 --- a/Assets/Artists/Scripts/Entities/Skins/EntityPropsDisplay.cs +++ b/Assets/Artists/Scripts/Entities/Skins/EntityPropsDisplay.cs @@ -9,72 +9,104 @@ namespace BITFALL { public class EntityPropsDisplay : EntityComponent { - [SerializeField] private SerializedDictionary equipments = new(); - [SerializeField] private SerializedDictionary unEquipDictionary = new(); - [SerializeField] private SerializedDictionary equipDictionary = new(); + [SerializeField] private SerializedDictionary equipped = new(); + [SerializeField] private SerializedDictionary bodyEquips = new(); + [SerializeField] private SerializedDictionary holsteredEquips = new(); - [Inject] private IEntityEquipment _entityEquipment; - [Inject] private IEntityEquipmentContainer _playerEquipContainer; - [Inject] private IPlayerEquipSelector _playerEquipSelector; + [Inject(true)] private IEntityEquipment _entityEquipment; + [Inject(true)] private IEntityEquipmentContainer _playerEquipContainer; + [Inject(true)] private IPlayerEquipSelector _playerEquipSelector; public override void OnStart() { - _playerEquipContainer.OnEquip += OnEquip; - _playerEquipContainer.OnDeEquip += OnDeEquip; + if (_entityEquipment is not null) + { + _entityEquipment.OnEquip += OnEquippedEquip; + _entityEquipment.OnUnEquip += OnEquippedUnEquip; + _entityEquipment.OnEquipAddressable+=OnEquippedEquipAddressable; + _entityEquipment.OnUnEquipAddressable+=OnUnEquippedEquipAddressable; + } + + if (_playerEquipSelector is not null) + { + _playerEquipSelector.OnUpdateEquip += OnUpdateHolsteredEquip; + } - _entityEquipment.OnEquip += OnEquip; - _entityEquipment.OnDeEquip += OnDeEquip; - _playerEquipSelector.OnUpdateEquip += OnUpdateEquip; + if (_playerEquipContainer is not null) + { + _playerEquipContainer.OnEquip += OnEquipBodyEquip; + _playerEquipContainer.OnDeEquip += OnUnEquipBodyEquip; + } - foreach (var x in equipments) + foreach (var x in equipped) { x.Value.SetActive(false); } - foreach (var x in unEquipDictionary) + foreach (var x in bodyEquips) { x.Value.SetActive(false); } - foreach (var x in equipDictionary) + foreach (var x in holsteredEquips) { x.Value.SetActive(false); } } - private void OnDeEquip(IEquipmentSlot slot, IBasicItem item) + + private void OnUnEquippedEquipAddressable(string obj) { - var asset = item.GetAssetable(); - if (equipments.TryGetValue(asset.AddressablePath, out GameObject prop)) + if (string.IsNullOrEmpty(obj) is false && equipped.TryGetValue(obj, out var go)) { - prop.SetActive(false); + go.SetActive(false); } } - private void OnEquip(IEquipmentSlot slot, IBasicItem item) + private void OnEquippedEquipAddressable(string obj) { - var asset = item.GetAssetable(); - if(equipments.TryGetValue(asset.AddressablePath, out GameObject prop)) { - prop.SetActive(true); + if (string.IsNullOrEmpty(obj) is false && equipped.TryGetValue(obj, out var go)) + { + go.SetActive(true); } } - private void OnEquip(IBasicItem item) + private void OnUnEquipBodyEquip(IEquipmentSlot arg1, IBasicItem arg2) { - if(item is null) return; - if (equipDictionary.TryGetValue(item.AddressablePath, out var model)) + if (bodyEquips.TryGetValue(arg2.AddressablePath, out var go)) { - model.SetActive(true); + go.SetActive(false); } } - private void OnDeEquip(IBasicItem item) + private void OnEquipBodyEquip(IEquipmentSlot arg1, IBasicItem arg2) { - foreach (var x in equipDictionary) + if (bodyEquips.TryGetValue(arg2.AddressablePath, out var go)) { - x.Value.gameObject.SetActive(false); + go.SetActive(true); } } - private void OnUpdateEquip(IDictionary maps) + + private void OnUpdateHolsteredEquip(IDictionary obj) { - + foreach (var x in holsteredEquips) + { + x.Value.SetActive(false); + } + foreach (var x in obj) + { + if (holsteredEquips.TryGetValue(x.Value.AddressablePath, out var go)) + { + go.SetActive(true); + } + } + } + + private void OnEquippedUnEquip(IBasicItem obj) + { + OnUnEquippedEquipAddressable(obj?.AddressablePath); + } + + private void OnEquippedEquip(IBasicItem obj) + { + OnEquippedEquipAddressable(obj?.AddressablePath); } } } \ No newline at end of file diff --git a/Assets/Artists/Scripts/Equip/AIEquipController.cs b/Assets/Artists/Scripts/Equip/AIEquipController.cs new file mode 100644 index 000000000..fb5ef58c8 --- /dev/null +++ b/Assets/Artists/Scripts/Equip/AIEquipController.cs @@ -0,0 +1,58 @@ +using System.Collections; +using System.Collections.Generic;using BITFALL.Entities.Equipment; +using BITKit; +using BITKit.Entities; +using Cysharp.Threading.Tasks; +using UnityEngine; +using IEntity = BITKit.Core.Entites.IEntity; + +namespace BITFALL.Entities.Equipment +{ + public class AIEquipController : MonoBehaviour,IEquipBase + { + [SerializeField] protected AssetableItem assetableItem; + public bool IsEntered { get; set; } + public virtual void Entry() + { + + } + + public virtual UniTask EntryAsync() + { + return UniTask.CompletedTask; + } + + public virtual void Exit() + { + } + + public virtual UniTask ExitAsync() + { + return UniTask.CompletedTask; + } + + public virtual void OnAwake() + { + } + + public virtual void OnStart() + { + } + + public virtual void OnUpdate(float deltaTime) + { + } + + public string AddressablePath => assetableItem.AddressablePath; + public IEntity Entity { get; set; } + public Entity UnityEntity=>Entity as Entity; + public IBasicItem Item { get; set; } + + public bool IsSupportItem(IBasicItem item) => item?.AddressablePath == AddressablePath; + + public void PlayAudio(string name) + { + } + } + +} diff --git a/Assets/Artists/Scripts/Equip/AIGunController.cs b/Assets/Artists/Scripts/Equip/AIGunController.cs new file mode 100644 index 000000000..3480fc263 --- /dev/null +++ b/Assets/Artists/Scripts/Equip/AIGunController.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using BITFALL.Bullet; +using BITFALL.Entities.Equipment; +using BITKit; +using BITKit.Entities; +using BITKit.StateMachine; +using UnityEngine; + +namespace BITFALL.Guns +{ + public class AIGunController : AIEquipController + { + [SerializeField] private Transform firePoint; + [SerializeReference,SubclassSelector] private IBulletService bulletService; + [SerializeField] private bool forceFire; + private AssetableGun _gun=>assetableItem as AssetableGun; + + private readonly IntervalUpdate fireInterval = new(); + + public override void Entry() + { + base.Entry(); + fireInterval.Interval = _gun.FireMode.FireRate is 0 ? 1 : 1f/_gun.FireMode.FireRate; + UnityEntity.AddListener(OnAttack); + } + public override void Exit() + { + base.Exit(); + UnityEntity.RemoveListener(OnAttack); + } + + public override void OnUpdate(float deltaTime) + { + if (forceFire && fireInterval.AllowUpdate) + { + OnAttack(new BITConstant.Command.AttackCommand()); + } + } + + private void OnAttack(BITConstant.Command.AttackCommand obj) + { + bulletService.Spawn(new SpawnBullet() + { + forward = firePoint.forward, + initialDamage = _gun.InitialDamage, + initiator = Entity.Id, + pos = firePoint.position, + rot = firePoint.rotation, + startSpeed = _gun.InitialBulletSpeed, + InitialForce = _gun.InitialBulletForce, + }); + UnityEntity.Invoke(Constant.Animation.Play, BITConstant.Player.Fire); + } + } + +} diff --git a/Assets/Artists/Scripts/Equip/AIMeleeController.cs b/Assets/Artists/Scripts/Equip/AIMeleeController.cs new file mode 100644 index 000000000..4719f88e6 --- /dev/null +++ b/Assets/Artists/Scripts/Equip/AIMeleeController.cs @@ -0,0 +1,42 @@ +using System.Collections; +using System.Collections.Generic; +using BITFALL.Bullet; +using BITFALL.Guns; +using BITKit; +using BITKit.Entities.Melee; +using UnityEngine; + +namespace BITFALL.Entities.Equipment +{ + public class AIMeleeController : AIEquipController + { + [SerializeReference,SubclassSelector] private IMeleeService meleeService; + [SerializeField] private bool forceAttack; + + private readonly IntervalUpdate interval = new(1); + public override void Entry() + { + base.Entry(); + UnityEntity.AddListener(OnAttack); + } + public override void Exit() + { + base.Exit(); + UnityEntity.RemoveListener(OnAttack); + } + + public override void OnUpdate(float deltaTime) + { + if (forceAttack && interval.AllowUpdate) + { + OnAttack(new BITConstant.Command.AttackCommand()); + } + } + + private void OnAttack(BITConstant.Command.AttackCommand obj) + { + UnityEntity.Invoke(Constant.Animation.Play, BITConstant.Player.Melee); + } + } +} + diff --git a/Assets/Artists/Scripts/Equip/BITFALL.Equip.asmdef b/Assets/Artists/Scripts/Equip/BITFALL.Equip.asmdef index 84309350f..4064b91bf 100644 --- a/Assets/Artists/Scripts/Equip/BITFALL.Equip.asmdef +++ b/Assets/Artists/Scripts/Equip/BITFALL.Equip.asmdef @@ -26,7 +26,8 @@ "GUID:42a9827d94e00374aa52e51f0a1b035c", "GUID:87bea3a21c744b1478660b70494160ba", "GUID:ef0bb553b58b90b488bdbe8672e3be0b", - "GUID:48ef04d98836e2640bf90b524bdff904" + "GUID:48ef04d98836e2640bf90b524bdff904", + "GUID:1eb13dc7c3cb5a444877a995967ed591" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Assets/Artists/Scripts/Equip/BITGun.cs b/Assets/Artists/Scripts/Equip/BITGun.cs index 814edf1f5..b94d09ebe 100644 --- a/Assets/Artists/Scripts/Equip/BITGun.cs +++ b/Assets/Artists/Scripts/Equip/BITGun.cs @@ -74,7 +74,6 @@ namespace BITFALL.Guns [SerializeField] private Transform cameraView; // 引用组件 [Header(Constant.Header.Components)] - [SerializeField] private VFXPlayer vfxPlayer; [SerializeField] private LocationAdditive locationAdditive; // 引用预制体 @@ -163,8 +162,6 @@ namespace BITFALL.Guns base.EntryAsync(); isHolstered = false; - var animName = animator.animator.GetCurrentAnimatorStateInfo(0).shortNameHash; - animator.animator.Play(animName,-1,0); inputActionGroup.allowInput.AddElement(this); expectFiring.Reset(); Enabled = true; @@ -260,7 +257,7 @@ namespace BITFALL.Guns } //播放射击动画 - animator.Play(BITConstant.Player.Fire); + UnityEntity.Invoke(Constant.Animation.Play, BITConstant.Player.Fire); //调用BulletManager生成子弹 var _transform = transform; @@ -275,9 +272,6 @@ namespace BITFALL.Guns InitialForce = _gun.InitialBulletForce, }); - //播放枪口MuzzleFlash - vfxPlayer.Execute(); - //开火模式逻辑判断 switch (assetable.FireMode) { diff --git a/Assets/Artists/Scripts/Equip/BITGunStates.cs b/Assets/Artists/Scripts/Equip/BITGunStates.cs index d47b60cf3..7fe6c8714 100644 --- a/Assets/Artists/Scripts/Equip/BITGunStates.cs +++ b/Assets/Artists/Scripts/Equip/BITGunStates.cs @@ -260,7 +260,8 @@ namespace BITFALL.Guns.States base.OnStateEntry(old); _entityMovement.ExecuteCommand(); - root.animator.Play(BITConstant.Player.Reload); + + root.UnityEntity.Invoke(Constant.Animation.Play, BITConstant.Player.Reload); } public override void OnMovementStateChanged(IEntityMovementState old, IEntityMovementState newState) { diff --git a/Assets/Artists/Scripts/Equip/MeleeController.cs b/Assets/Artists/Scripts/Equip/MeleeController.cs index 7e1a77af3..67f52be3c 100644 --- a/Assets/Artists/Scripts/Equip/MeleeController.cs +++ b/Assets/Artists/Scripts/Equip/MeleeController.cs @@ -58,16 +58,27 @@ namespace BITFALL.Entities.Equipment.Melee [Inject] private IEntityMovement _movement; - [Inject] + [Inject(true)] private IPlayerMovement _playerMovement; [Inject] private IHealth _health; + public override void OnAwake() { base.OnAwake(); - inputActionGroup.RegisterCallback(attackAction, OnAttack); - inputActionGroup.RegisterCallback(blockAction, OnBlock); - _health.OnDamageFactory += OnDamageFactory; - + + if (attackAction is not null) + { + inputActionGroup.RegisterCallback(attackAction, OnAttack); + } + + if (blockAction is not null) + { + inputActionGroup.RegisterCallback(blockAction, OnBlock); + } + + if (_playerMovement is not null) + _health.OnDamageFactory += OnDamageFactory; + _movement.OnStateChanged += OnMovementStateChanged; } diff --git a/Assets/Artists/Scripts/Equip/PlayerImprovisedController.cs b/Assets/Artists/Scripts/Equip/PlayerImprovisedController.cs index 0b7c58ebf..9a2f95089 100644 --- a/Assets/Artists/Scripts/Equip/PlayerImprovisedController.cs +++ b/Assets/Artists/Scripts/Equip/PlayerImprovisedController.cs @@ -24,7 +24,7 @@ namespace BITFALL.Player.Equip public void OnAwake() { _entityEquipment.OnEquip += OnEquip; - _entityEquipment.OnDeEquip += OnDeEquip; + _entityEquipment.OnUnEquip += OnUnEquip; } public void OnStart() { @@ -58,7 +58,7 @@ namespace BITFALL.Player.Equip { return UniTask.CompletedTask; } - private void OnDeEquip(IBasicItem obj) + private void OnUnEquip(IBasicItem obj) { foreach (var x in modelDictionary.Values) { diff --git a/Assets/Artists/Scripts/Equip/ThrowController.cs b/Assets/Artists/Scripts/Equip/ThrowController.cs index ab1847c13..856e19351 100644 --- a/Assets/Artists/Scripts/Equip/ThrowController.cs +++ b/Assets/Artists/Scripts/Equip/ThrowController.cs @@ -80,10 +80,10 @@ namespace BITFALL.Throws if (IsEntered is false) return; if (eventName is not BITConstant.Player.Throw) return; if (!_equipmentContainer.TryUseEquip()) return; - var instance = _assetableThrow.GetInstance(); + var instance =Instantiate(_assetableThrow.Prefab, + throwPoint.position + throwPoint.forward * 0.016f, + throwPoint.rotation) ; if (!instance.TryGetComponent(out var _rigidbody)) return; - _rigidbody.rotation = throwPoint.rotation; - _rigidbody.position = throwPoint.position; _rigidbody.AddForce(throwPoint.forward * throwForce, ForceMode.VelocityChange); } } diff --git a/Assets/Artists/Scripts/Item/AssetableGun.cs b/Assets/Artists/Scripts/Item/AssetableGun.cs index f85b164c0..b9f88a7f0 100644 --- a/Assets/Artists/Scripts/Item/AssetableGun.cs +++ b/Assets/Artists/Scripts/Item/AssetableGun.cs @@ -77,12 +77,12 @@ namespace BITFALL.Guns { [Header(nameof(AssetableGun))] [SerializeReference, SubclassSelector] protected IFireMode fireMode; - [SerializeField] private int initialDamage; - [SerializeField] private int initialBulletForce; + [SerializeField] private int initialBulletSpeed = 128; public IFireMode FireMode => fireMode; public int InitialBulletForce => initialBulletForce; public int InitialDamage => initialDamage; + public int InitialBulletSpeed => initialBulletSpeed; } } \ No newline at end of file diff --git a/Assets/Artists/Scripts/Item/AssetableItem.cs b/Assets/Artists/Scripts/Item/AssetableItem.cs index 22ed3d4dd..c757cd725 100644 --- a/Assets/Artists/Scripts/Item/AssetableItem.cs +++ b/Assets/Artists/Scripts/Item/AssetableItem.cs @@ -39,12 +39,14 @@ namespace BITFALL [SerializeField] private Texture2D squareIcon; [SerializeField] private Texture2D rectangleIcon; [SerializeField] private ItemQuality quality; + [SerializeField] private bool isImprovised; [Header(Constant.Header.Property)] [SerializeReference, SubclassSelector] public IProperty[] factoryProperties; private Property property => new(factoryProperties); #endregion #region 接口实现 public int Id => -1; + public bool IsImprovised => isImprovised; public ItemQuality Quality => quality; public string Name => displayName; public string Description => description; diff --git a/Assets/Artists/Scripts/Item/AssetableThrow.cs b/Assets/Artists/Scripts/Item/AssetableThrow.cs index 4f7267233..3b34b65ac 100644 --- a/Assets/Artists/Scripts/Item/AssetableThrow.cs +++ b/Assets/Artists/Scripts/Item/AssetableThrow.cs @@ -8,6 +8,7 @@ namespace BITFALL.Items { [SerializeField] private Transform instance; + public Transform Prefab => instance; public Transform GetInstance() { return Instantiate(instance); diff --git a/Assets/Artists/Scripts/Item/WorldItem.cs b/Assets/Artists/Scripts/Item/WorldItem.cs index db4c1e36b..c31cc9c9d 100644 --- a/Assets/Artists/Scripts/Item/WorldItem.cs +++ b/Assets/Artists/Scripts/Item/WorldItem.cs @@ -15,8 +15,6 @@ namespace BITFALL #region 本地字段 [Header(Constant.Header.Settings)] [SerializeField]private AssetableItem asset; - - private new Rigidbody _rigidbody; #endregion #region 接口实现 public int Id => GetInstanceID(); @@ -61,30 +59,16 @@ namespace BITFALL #endregion #region 本地方法 public AssetableItem Assetable => asset; - private void Start() - { - _rigidbody = GetComponent(); - } - - private void FixedUpdate() - { - if (!_rigidbody.IsSleeping()) return; - _rigidbody.isKinematic = true; - enabled = false; - } public ManagedItem Pick() { - var newitem = new ManagedItem(); - newitem.CopyItemsFrom(this); - return newitem; + var managedItem = new ManagedItem(); + managedItem.CopyItemsFrom(this); + return managedItem; } public void Picked() { Destroy(gameObject); } - - - #endregion } #if UNITY_EDITOR diff --git a/Assets/Artists/Scripts/Props/Prop_ReplaceOnSleep.cs b/Assets/Artists/Scripts/Props/Prop_ReplaceOnSleep.cs index ad5bd4b06..3bb3cf52d 100644 --- a/Assets/Artists/Scripts/Props/Prop_ReplaceOnSleep.cs +++ b/Assets/Artists/Scripts/Props/Prop_ReplaceOnSleep.cs @@ -27,15 +27,21 @@ namespace BITFALL.Props var instance = Instantiate(prefab); instance.SetPositionAndRotation(_transform.position, _transform.rotation); - if (root is not null) + instance.TryGetComponent(out var _rigidbody); + if (root is not null && root.gameObject.isStatic is false) { instance.SetParentConstraint(root); - if (instance.TryGetComponent(out var _rigidbody)) + if (_rigidbody is not null) { //_rigidbody.isKinematic = true; _rigidbody.isKinematic = true; } } + else if(_rigidbody is not null) + { + _rigidbody.velocity = rigidbody.velocity; + _rigidbody.angularVelocity = rigidbody.angularVelocity; + } Destroy(gameObject); } diff --git a/Assets/Artists/Scripts/UX/UXEquipSelector.cs b/Assets/Artists/Scripts/UX/UXEquipSelector.cs index fafebf238..9f6ca2b44 100644 --- a/Assets/Artists/Scripts/UX/UXEquipSelector.cs +++ b/Assets/Artists/Scripts/UX/UXEquipSelector.cs @@ -32,7 +32,7 @@ namespace BITFALL var assets = item.GetAssetable(); currentUXEquip.SetTexture(assets.RectangleIcon); } - public void OnDeEquip(IBasicItem item) + public void OnUnEquip(IBasicItem item) { currentUXEquip.SetTexture(null); } @@ -56,7 +56,7 @@ namespace BITFALL private void Start() { playerService.OnPlayerInitialized += OnStartLocalPlayer; - OnDeEquip(null); + OnUnEquip(null); foreach (var x in dictionary) { x.Value.visualElement.RegisterCallback(evt => @@ -80,7 +80,7 @@ namespace BITFALL entity.Inject(this); _entityEquipment.OnEquip += OnEquip; - _entityEquipment.OnDeEquip += OnDeEquip; + _entityEquipment.OnUnEquip += OnUnEquip; _equipSelector.OnUpdateEquip += OnUpdateEquip; } } diff --git a/Assets/BITFALL/BITConstant.cs b/Assets/BITFALL/BITConstant.cs index cb9fd2a3d..2986367fd 100644 --- a/Assets/BITFALL/BITConstant.cs +++ b/Assets/BITFALL/BITConstant.cs @@ -1,5 +1,7 @@ +using System; using System.Collections; using System.Collections.Generic; +using System.ComponentModel; namespace BITFALL { @@ -46,6 +48,23 @@ namespace BITFALL public const string Horizontal = nameof(Horizontal); public const string SqrMagnitude = nameof(SqrMagnitude); } + public static class Command + { + public interface ICommand + { + + } + [Serializable] + public struct MoveCommand:ICommand + { + + } + [Serializable] + public struct AttackCommand:ICommand + { + + } + } } } diff --git a/Assets/BITFALL/Bullet/Bullet.cs b/Assets/BITFALL/Bullet/Bullet.cs index 41a5d2087..f18c9bf41 100644 --- a/Assets/BITFALL/Bullet/Bullet.cs +++ b/Assets/BITFALL/Bullet/Bullet.cs @@ -13,6 +13,7 @@ namespace BITFALL public float3 pos; public quaternion rot; public float3 forward; + public float CreateTime = BITApp.Time.DeltaTime; public int InitialForce; public int startSpeed; public int initialDamage; diff --git a/Assets/BITFALL/Entities/Equipment/IEntityEquipment.cs b/Assets/BITFALL/Entities/Equipment/IEntityEquipment.cs index 03b94a18d..005fec67a 100644 --- a/Assets/BITFALL/Entities/Equipment/IEntityEquipment.cs +++ b/Assets/BITFALL/Entities/Equipment/IEntityEquipment.cs @@ -9,7 +9,9 @@ namespace BITFALL.Entities.Equipment public interface IEntityEquipment { event Action OnEquip; - event Action OnDeEquip; + event Action OnUnEquip; + event Action OnEquipAddressable; + event Action OnUnEquipAddressable; bool IsSupportItem(IBasicItem item); void EntryEquip(int index); void EntryEquip(Func item); diff --git a/Assets/BITFALL/Entities/Improvised/ImprovisedServiceInterface.cs b/Assets/BITFALL/Entities/Improvised/ImprovisedServiceInterface.cs index ae127db46..1e316d73d 100644 --- a/Assets/BITFALL/Entities/Improvised/ImprovisedServiceInterface.cs +++ b/Assets/BITFALL/Entities/Improvised/ImprovisedServiceInterface.cs @@ -5,8 +5,6 @@ using BITKit; namespace BITFALL.Entities.Improvised { - [Serializable] - public sealed class Improvisable:IProperty{} public interface ImprovisedServiceInterface { public bool IsImprovised { get; } diff --git a/Assets/BITKit/Core/Applation/BITApp.cs b/Assets/BITKit/Core/Applation/BITApp.cs index d95e6f395..c33c0f875 100644 --- a/Assets/BITKit/Core/Applation/BITApp.cs +++ b/Assets/BITKit/Core/Applation/BITApp.cs @@ -26,6 +26,7 @@ namespace BITKit } public static class Time { + public static float ElapsedTime { get; internal set; } public static float DeltaTime { get; internal set; } public static double TimeAsDouble { get; internal set; } diff --git a/Assets/BITKit/Core/ECS/EntityComponentSystem.cs b/Assets/BITKit/Core/ECS/EntityComponentSystem.cs index 2c04a8672..858895127 100644 --- a/Assets/BITKit/Core/ECS/EntityComponentSystem.cs +++ b/Assets/BITKit/Core/ECS/EntityComponentSystem.cs @@ -18,6 +18,7 @@ namespace BITKit.Core.Entites bool RegisterComponent(T component); IServiceProvider ServiceProvider { get; } void Inject(object obj); + } /// /// 基本实体组件 diff --git a/Assets/BITKit/Core/Group/ActivableGroup.cs b/Assets/BITKit/Core/Group/ActivableGroup.cs index 529545c3c..8f1a16c71 100644 --- a/Assets/BITKit/Core/Group/ActivableGroup.cs +++ b/Assets/BITKit/Core/Group/ActivableGroup.cs @@ -87,30 +87,30 @@ namespace BITKit { var currentIndex = m_index; m_index = index; - if (currentIndex is not -1 && list.TryGetElementAt(currentIndex, out var element)) + if (currentIndex is not -1 && list.TryGetElementAt(currentIndex, out var currentElement)) { - element.Exit(); + currentElement.Exit(); try { - await element.ExitAsync(); + await currentElement.ExitAsync(); } catch (OperationCanceledException) { } - element.IsEntered = false; - OnExit?.Invoke(element); + currentElement.IsEntered = false; + OnExit?.Invoke(currentElement); } - if (index is not -1 && list.TryGetElementAt(index, out element)) + if (index is not -1 && list.TryGetElementAt(index, out var nextElement)) { - element.IsEntered = true; - element.Entry(); + nextElement.IsEntered = true; + nextElement.Entry(); try { - await element.EntryAsync(); + await nextElement.EntryAsync(); } catch (OperationCanceledException){} - OnEntry?.Invoke(element); + OnEntry?.Invoke(nextElement); } } completed = true; diff --git a/Assets/BITKit/Core/InputSystem/IPlayerInputSystem.cs b/Assets/BITKit/Core/InputSystem/IPlayerInputSystem.cs new file mode 100644 index 000000000..6f7b38c11 --- /dev/null +++ b/Assets/BITKit/Core/InputSystem/IPlayerInputSystem.cs @@ -0,0 +1,7 @@ +using System.Collections; +using System.Collections.Generic; + +namespace BITKit.UniversalInputSystem +{ + +} diff --git a/Assets/BITKit/Core/Interfaces/IStateMachine.cs b/Assets/BITKit/Core/Interfaces/IStateMachine.cs index 7f744855e..1146809e7 100644 --- a/Assets/BITKit/Core/Interfaces/IStateMachine.cs +++ b/Assets/BITKit/Core/Interfaces/IStateMachine.cs @@ -3,6 +3,25 @@ using System.Collections.Generic; namespace BITKit.StateMachine { + public struct EmptyState:IState + { + public bool Enabled { get; set; } + public void Initialize() + { + } + + public void OnStateEntry(IState old) + { + } + + public void OnStateUpdate(float deltaTime) + { + } + + public void OnStateExit(IState old, IState newState) + { + } + } public interface IState { bool Enabled { get; set; } diff --git a/Assets/BITKit/Unity/Animations/References/EmetyAnimations/Empty_Fire.anim b/Assets/BITKit/Unity/Animations/References/EmetyAnimations/Empty_Fire.anim new file mode 100644 index 000000000..60ff4cb88 --- /dev/null +++ b/Assets/BITKit/Unity/Animations/References/EmetyAnimations/Empty_Fire.anim @@ -0,0 +1,53 @@ +%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: Empty_Fire + 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: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + 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: [] diff --git a/Assets/BITKit/Unity/Scripts/BITAppForUnity.cs b/Assets/BITKit/Unity/Scripts/BITAppForUnity.cs index 73ebb99cd..b2f947f06 100644 --- a/Assets/BITKit/Unity/Scripts/BITAppForUnity.cs +++ b/Assets/BITKit/Unity/Scripts/BITAppForUnity.cs @@ -130,6 +130,7 @@ namespace BITKit private void Update() { + BITApp.Time.ElapsedTime = Time.time; BITApp.Time.DeltaTime = Time.deltaTime; BITApp.Time.TimeAsDouble = Time.timeAsDouble; } diff --git a/Assets/BITKit/Unity/Scripts/Entity/Components/Animator/EntityAnimator.cs b/Assets/BITKit/Unity/Scripts/Entity/Components/Animator/EntityAnimator.cs index 6246336fa..94fcb0bd5 100644 --- a/Assets/BITKit/Unity/Scripts/Entity/Components/Animator/EntityAnimator.cs +++ b/Assets/BITKit/Unity/Scripts/Entity/Components/Animator/EntityAnimator.cs @@ -1,12 +1,14 @@ using System.Collections.Generic; using UnityEngine; using System.Linq; +using BITKit.Animations; + namespace BITKit.Entities { public sealed class EntityAnimator : EntityComponent { - [SerializeField] private Animator[] animators; + [SerializeField] private UnityAnimator[] animators; [SerializeReference, SubclassSelector] private References[] animationKeyWords; [SerializeReference, SubclassSelector] private References _rootVelocity; [SerializeReference, SubclassSelector] private References[] boolParameters; @@ -23,13 +25,13 @@ namespace BITKit.Entities private void Play(string animationName) { + if (enabled is false) return; if (animationKeyWords.Length is 0 || keyWords.Contains(animationName)) { animators.ForEach(x => { if (!x.isActiveAndEnabled) return; - animationName = animationName.Replace(".", "_"); - x.SetTrigger(animationName); + x.Play(animationName); }); } } @@ -40,7 +42,7 @@ namespace BITKit.Entities animators.ForEach(x => { if (x.isActiveAndEnabled) - x.SetBool(boolPar, entity.Get(boolPar)); + x.animator.SetBool(boolPar, entity.Get(boolPar)); }); } foreach (var floatPar in floatParameters) @@ -48,14 +50,18 @@ namespace BITKit.Entities animators.ForEach(x => { if (x.isActiveAndEnabled) - x.SetFloat(floatPar, entity.Get(floatPar)); + x.animator.SetFloat(floatPar, entity.Get(floatPar)); }); } } + private void OnAnimatorMove() { - entity.Set(_rootVelocity, animators[0].velocity); + if (enabled is false) return; + if (_rootVelocity is not null && entity is not null) + entity.Set(_rootVelocity, animators[0].animator.velocity); } + // ReSharper disable once UnusedMember.Local private void AnimationEvent(string eventName) { diff --git a/Assets/BITKit/Unity/Scripts/Entity/Components/Health/AutoHealComponent.cs b/Assets/BITKit/Unity/Scripts/Entity/Components/Health/AutoHealComponent.cs index 456c108db..442421e53 100644 --- a/Assets/BITKit/Unity/Scripts/Entity/Components/Health/AutoHealComponent.cs +++ b/Assets/BITKit/Unity/Scripts/Entity/Components/Health/AutoHealComponent.cs @@ -14,17 +14,14 @@ namespace BITKit private readonly ValidHandle allowHeal = new(); [Inject] private IHealth _health; - public override void Initialize(IEntity _entity) - { - base.Initialize(_entity); - _health.OnSetAlive += OnSetAlive; - _health.OnSetHealthPoint += OnSetHP; - _entity.RegisterCallback(this); - } - public override void OnStart() { _health = entity.Get(); + + _health.OnSetAlive += OnSetAlive; + _health.OnSetHealthPoint += OnSetHP; + + entity.RegisterCallback(this); } private void Update() diff --git a/Assets/BITKit/Unity/Scripts/Entity/Components/Health/AutoRespawnComponent.cs b/Assets/BITKit/Unity/Scripts/Entity/Components/Health/AutoRespawnComponent.cs index c5ae31694..800b2de27 100644 --- a/Assets/BITKit/Unity/Scripts/Entity/Components/Health/AutoRespawnComponent.cs +++ b/Assets/BITKit/Unity/Scripts/Entity/Components/Health/AutoRespawnComponent.cs @@ -37,6 +37,7 @@ namespace BITKit destroyCancellationToken.ThrowIfCancellationRequested(); Execute(); } + catch(MissingReferenceException){} catch (OperationCanceledException){} } } diff --git a/Assets/BITKit/Unity/Scripts/Entity/Components/InputSystem/BITKit.Entities.InputSystem.asmdef b/Assets/BITKit/Unity/Scripts/Entity/Components/InputSystem/BITKit.Entities.InputSystem.asmdef new file mode 100644 index 000000000..2cd7cd698 --- /dev/null +++ b/Assets/BITKit/Unity/Scripts/Entity/Components/InputSystem/BITKit.Entities.InputSystem.asmdef @@ -0,0 +1,4 @@ +{ + "name": "BITKit.Entities.InputSystem", + "references":[ "GUID:14fe60d984bf9f84eac55c6ea033a8f4", "GUID:f6155d9ae143f3949ac54e8355593d6c", "GUID:7efac18f239530141802fb139776f333", "GUID:709caf8d7fb6ef24bbba0ab9962a3ad0" ] +} diff --git a/Assets/BITKit/Unity/Scripts/Entity/Components/InputSystem/EntityInputSystem.cs b/Assets/BITKit/Unity/Scripts/Entity/Components/InputSystem/EntityInputSystem.cs new file mode 100644 index 000000000..ba9d81c38 --- /dev/null +++ b/Assets/BITKit/Unity/Scripts/Entity/Components/InputSystem/EntityInputSystem.cs @@ -0,0 +1,68 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEditor; +using UnityEditor.UIElements; +using UnityEngine; +using UnityEngine.UIElements; + +namespace BITKit.Entities.InputSystem +{ + public class EntityInputSystem : EntityComponent + { + protected readonly InputActionGroup inputActionGroup = new() + { + allowGlobalActivation = true + }; + [Inject(true)] + private IHealth _health; + [Inject(true)] + private IEntityOverride _override; + + #if UNITY_EDITOR + [SerializeField,HideInInspector] internal bool Allow; + #endif + public override void Initialize(IEntity _entity) + { + base.Initialize(_entity); + _entity.AddService(inputActionGroup); + } + + public override void OnAwake() + { + base.OnAwake(); + inputActionGroup.allowInput.AddListener(x=>Allow=x); + if (_health is not null) + { + _health.OnSetAlive += x => + { + inputActionGroup.allowInput.SetElements(_health,x); + }; + } + if (_override is not null) + { + _override.OnOverride += x => + { + inputActionGroup.allowInput.SetDisableElements(_override,x); + }; + } + } + } + #if UNITY_EDITOR + [CustomEditor(typeof(EntityInputSystem))] + public sealed class EntityInputSystemInspector : BITInspector + { + public override VisualElement CreateInspectorGUI() + { + FillDefaultInspector(); + var checkBox = root.Create(); + checkBox.label = "Allow Input"; + checkBox.SetEnabled(false); + + checkBox.BindProperty(serializedObject.FindProperty(nameof(EntityInputSystem.Allow))); + + return root; + } + } + #endif +} + diff --git a/Assets/BITKit/Unity/Scripts/Entity/Components/Interactive/EntityInteractive.cs b/Assets/BITKit/Unity/Scripts/Entity/Components/Interactive/EntityInteractive.cs index 71466cd1c..aa52997a0 100644 --- a/Assets/BITKit/Unity/Scripts/Entity/Components/Interactive/EntityInteractive.cs +++ b/Assets/BITKit/Unity/Scripts/Entity/Components/Interactive/EntityInteractive.cs @@ -17,8 +17,6 @@ namespace BITKit.Entities.Player private IntervalUpdate cd = new(0.08f); [Inject] private IHealth _health; - [Inject] - private InputActionGroup _inputActionReference; public override void OnStart() { diff --git a/Assets/BITKit/Unity/Scripts/Entity/Components/VFX/BITKit.Entities.VFX.asmdef b/Assets/BITKit/Unity/Scripts/Entity/Components/VFX/BITKit.Entities.VFX.asmdef new file mode 100644 index 000000000..8424a3500 --- /dev/null +++ b/Assets/BITKit/Unity/Scripts/Entity/Components/VFX/BITKit.Entities.VFX.asmdef @@ -0,0 +1,20 @@ +{ + "name": "BITKit.Entities.VFX", + "rootNamespace": "", + "references": [ + "GUID:14fe60d984bf9f84eac55c6ea033a8f4", + "GUID:709caf8d7fb6ef24bbba0ab9962a3ad0", + "GUID:ea5474181b324dd49a5976cd68f44f18", + "GUID:d525ad6bd40672747bde77962f1c401e", + "GUID:49b49c76ee64f6b41bf28ef951cb0e50" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/BITKit/Unity/Scripts/Entity/Components/VFX/EntityVFXPlayer.cs b/Assets/BITKit/Unity/Scripts/Entity/Components/VFX/EntityVFXPlayer.cs new file mode 100644 index 000000000..3a367d0b3 --- /dev/null +++ b/Assets/BITKit/Unity/Scripts/Entity/Components/VFX/EntityVFXPlayer.cs @@ -0,0 +1,27 @@ +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; + +namespace BITKit.Entities.VFX +{ + public class EntityVFXPlayer : EntityComponent + { + [SerializeReference,SubclassSelector] private IReference[] vfxReferences; + [SerializeField] private VFXPlayer vfxPlayer; + private readonly List keyWords=new(); + public override void OnAwake() + { + base.OnAwake(); + keyWords.AddRange(vfxReferences.Select(x=>x.Value)); + entity.AddListener(Constant.Animation.Play, Play); + } + + private void Play(string animationName) + { + if (isActiveAndEnabled is false) return; + if (keyWords.Contains(animationName) is false) return; + vfxPlayer.Execute(); + } + } +} diff --git a/Assets/BITKit/Unity/Scripts/Entity/Core/Entity.cs b/Assets/BITKit/Unity/Scripts/Entity/Core/Entity.cs index f678d224a..27615a26a 100644 --- a/Assets/BITKit/Unity/Scripts/Entity/Core/Entity.cs +++ b/Assets/BITKit/Unity/Scripts/Entity/Core/Entity.cs @@ -62,11 +62,28 @@ namespace BITKit.Entities else if(attribute?.CanBeNull is false) { BIT4Log.Warning($"{name}未找到{obj.GetType().Name}需要的{type.FullName}"); - BIT4Log.Warning(genericEvent.GetDiagnostics()); + //BIT4Log.Warning(genericEvent.GetDiagnostics()); } } } + public void AddService(T service) + { + AddService(typeof(T),service); + } + + public void AddService(object service) + { + AddService(service.GetType(),service); + } + + public void AddService(Type type, object service) + { + genericEvent.Set(type,service); + genericEvent.Set(type.FullName, service); + genericEvent.SetDirect(type.FullName,service); + } + private CancellationToken _cancellationToken; private bool isInitialized; private Core.Entites.IEntityComponent[] _components => entityComponents.Cast().ToArray(); @@ -85,6 +102,7 @@ namespace BITKit.Entities try { var monoBehaviours = GetComponentsInChildren(true); + entityComponents.ForEach(x => x.Initialize(this)); foreach (var x in monoBehaviours) { foreach (var att in x @@ -95,9 +113,7 @@ namespace BITKit.Entities .OfType() ) { - genericEvent.Set(att.Type,x); - genericEvent.Set(att.Type.FullName, x); - genericEvent.SetDirect(att.Type.FullName,x); + AddService(att.Type, x); } genericEvent.Set(x.GetType(),x); } @@ -105,7 +121,7 @@ namespace BITKit.Entities { Inject(x); } - entityComponents.ForEach(x => x.Initialize(this)); + entityComponents.ForEach(x => x.OnAwake()); entityComponents.ForEach(x => x.OnStart()); diff --git a/Assets/BITKit/Unity/Scripts/Entity/Core/IEntity.cs b/Assets/BITKit/Unity/Scripts/Entity/Core/IEntity.cs index 4b3549c59..274545a26 100644 --- a/Assets/BITKit/Unity/Scripts/Entity/Core/IEntity.cs +++ b/Assets/BITKit/Unity/Scripts/Entity/Core/IEntity.cs @@ -11,6 +11,9 @@ namespace BITKit.Entities public interface IEntity :BITKit.Core.Entites.IEntity,IGenericEvent, IDatabase, IProcessor, ICallback { IEntityComponent[] entityComponents { get; set; } + void AddService(T service); + void AddService(object service); + void AddService(Type type, object service); } public class IEntityReader : NetMessageReader { diff --git a/Assets/BITKit/Unity/Scripts/Extensions/GameObjectExtensions.cs b/Assets/BITKit/Unity/Scripts/Extensions/GameObjectExtensions.cs new file mode 100644 index 000000000..26c0f0832 --- /dev/null +++ b/Assets/BITKit/Unity/Scripts/Extensions/GameObjectExtensions.cs @@ -0,0 +1,14 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace BITKit +{ + public static class GameObjectExtensions + { + public static T GetOrAddComponent(this GameObject gameObject) where T : Component + { + return gameObject.TryGetComponent(out var t) ? t : gameObject.AddComponent(); + } + } +} diff --git a/Assets/BITKit/Unity/Scripts/Physics/PhysicsBasedAnimation.cs b/Assets/BITKit/Unity/Scripts/Physics/PhysicsBasedAnimation.cs index 79ba474af..9377b7fb9 100644 --- a/Assets/BITKit/Unity/Scripts/Physics/PhysicsBasedAnimation.cs +++ b/Assets/BITKit/Unity/Scripts/Physics/PhysicsBasedAnimation.cs @@ -28,7 +28,11 @@ namespace BITKit.Physics { foreach (var x in jointConfigures) { - x.InitialRotation=x.animate.localRotation; + x.InitialRotation= x.animate.localRotation; + if (x.animate.localRotation != x.joint.transform.localRotation) + { + BIT4Log.Log($"{x.animate.name}初始旋转与关节旋转不一致,将会导致动画不正确"); + } } } private void FixedUpdate() diff --git a/Assets/BITKit/Unity/Scripts/Utility/Editor/BITInspector.cs b/Assets/BITKit/Unity/Scripts/Utility/Editor/BITInspector.cs index c88272e79..234811838 100644 --- a/Assets/BITKit/Unity/Scripts/Utility/Editor/BITInspector.cs +++ b/Assets/BITKit/Unity/Scripts/Utility/Editor/BITInspector.cs @@ -134,6 +134,13 @@ namespace BITKit protected static void FillDefaultInspector(VisualElement container, SerializedObject serializedObject, bool hideScript) { container.Clear(); + + if (serializedObject.targetObject is null) + { + var label = container.Create