diff --git a/client/Assets/Ether/Scenes/Boot.unity b/client/Assets/Ether/Scenes/Boot.unity index f1466fe..ce473e5 100644 --- a/client/Assets/Ether/Scenes/Boot.unity +++ b/client/Assets/Ether/Scenes/Boot.unity @@ -600,6 +600,22 @@ PrefabInstance: propertyPath: serializationData.Prefab value: objectReference: {fileID: 3652203899854131026, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} + - target: {fileID: 3652203899854131026, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} + propertyPath: serializationData.PrefabModifications.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3652203899854131026, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} + propertyPath: serializationData.PrefabModifications.Array.data[0] + value: '"path":"allStates","length":1' + objectReference: {fileID: 0} + - target: {fileID: 3652203899854131026, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} + propertyPath: serializationData.PrefabModifications.Array.data[1] + value: '"path":"allStates.[0]","value":{"$id":0,"$type":"Ether.IdleState, Ether"}' + objectReference: {fileID: 0} + - target: {fileID: 3652203899854131026, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} + propertyPath: serializationData.PrefabModificationsReferencedUnityObjects.Array.size + value: 0 + objectReference: {fileID: 0} - target: {fileID: 4650152669287310831, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} propertyPath: m_Controller value: @@ -610,7 +626,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4897292196941797631, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5331904816632057308, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} propertyPath: _serializedBlackboard @@ -662,52 +678,36 @@ PrefabInstance: propertyPath: previewProgress value: 0 objectReference: {fileID: 0} + - target: {fileID: 8283022809456686519, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} + propertyPath: allAnimation.Array.size + value: 2 + objectReference: {fileID: 0} - target: {fileID: 8283022809456686519, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} propertyPath: serializationData.Prefab value: objectReference: {fileID: 8283022809456686519, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} + - target: {fileID: 8283022809456686519, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} + propertyPath: allAnimation.Array.data[0] + value: + objectReference: {fileID: 11400000, guid: 6bb26e5b81e57284aa2c1a41c990cf6c, type: 2} + - target: {fileID: 8283022809456686519, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} + propertyPath: allAnimation.Array.data[1] + value: + objectReference: {fileID: 11400000, guid: 2d73a032c498a904495086f56105eb89, type: 2} - target: {fileID: 8283022809456686519, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} propertyPath: serializationData.PrefabModifications.Array.size - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 8283022809456686519, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} propertyPath: serializationData.PrefabModifications.Array.data[0] value: '"path":"allAnimationSet","value":{"$id":0,"$type":"System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[UnityEngine.Object, UnityEngine.CoreModule]], mscorlib","comparer":{"$id":1,"$type":"System.Collections.Generic.GenericEqualityComparer`1[[System.String, - mscorlib]], mscorlib"},"$rlength":2,"$rcontent":[{"$k":"Walk","$v":$eref:0},{"$k":"Idle","$v":$eref:1}]}' + mscorlib]], mscorlib"},"$rlength":0,"$rcontent":[]}' objectReference: {fileID: 0} - - target: {fileID: 8283022809456686519, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} - propertyPath: serializationData.PrefabModifications.Array.data[1] - value: '"path":"allAnimationSet.{\"Idle\"}","value":$eref:1' - objectReference: {fileID: 0} - - target: {fileID: 8283022809456686519, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} - propertyPath: serializationData.PrefabModifications.Array.data[2] - value: '"path":"allAnimationSet.{\"Walk\"}","value":$eref:0' - objectReference: {fileID: 0} - - target: {fileID: 8283022809456686519, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} - propertyPath: serializationData.ReferencedUnityObjects.Array.size - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 8283022809456686519, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} - propertyPath: serializationData.ReferencedUnityObjects.Array.data[0] - value: - objectReference: {fileID: 11400000, guid: 2d73a032c498a904495086f56105eb89, type: 2} - - target: {fileID: 8283022809456686519, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} - propertyPath: serializationData.ReferencedUnityObjects.Array.data[1] - value: - objectReference: {fileID: 11400000, guid: 6bb26e5b81e57284aa2c1a41c990cf6c, type: 2} - target: {fileID: 8283022809456686519, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} propertyPath: serializationData.PrefabModificationsReferencedUnityObjects.Array.size value: 0 objectReference: {fileID: 0} - - target: {fileID: 8283022809456686519, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} - propertyPath: serializationData.PrefabModificationsReferencedUnityObjects.Array.data[0] - value: - objectReference: {fileID: 11400000, guid: 2d73a032c498a904495086f56105eb89, type: 2} - - target: {fileID: 8283022809456686519, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} - propertyPath: serializationData.PrefabModificationsReferencedUnityObjects.Array.data[1] - value: - objectReference: {fileID: 11400000, guid: 6bb26e5b81e57284aa2c1a41c990cf6c, type: 2} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -715,9 +715,6 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 4897292196941797631, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} insertIndex: -1 addedObject: {fileID: 549239030} - - targetCorrespondingSourceObject: {fileID: 4897292196941797631, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} - insertIndex: -1 - addedObject: {fileID: 549239031} m_SourcePrefab: {fileID: 100100000, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} --- !u!95 &549239010 stripped Animator: @@ -836,21 +833,6 @@ MonoBehaviour: Name: Level: 0 JobList: [] ---- !u!114 &549239031 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 64648080} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e741851cba3ad425c91ecf922cc6b379, type: 3} - m_Name: - m_EditorClassIdentifier: - _data: - _json: '{"declarations":{"Kind":"Object","collection":{"$content":[],"$version":"A"},"$version":"A"}}' - _objectReferences: [] --- !u!1 &635917027 stripped GameObject: m_CorrespondingSourceObject: {fileID: 491595545510713278, guid: 2d40455ce379bd946bbf5e5e4e71d04c, type: 3} @@ -966,6 +948,38 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 3145399188952011017, guid: 2d40455ce379bd946bbf5e5e4e71d04c, type: 3} m_PrefabInstance: {fileID: 5978091752429385269} m_PrefabAsset: {fileID: 0} +--- !u!1 &1260057673 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7919838309581199394, guid: c309ebf7d22bfc644b409dbe21ff4a7c, type: 3} + m_PrefabInstance: {fileID: 757682347168729909} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1260057674 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3293909171636214029, guid: c309ebf7d22bfc644b409dbe21ff4a7c, type: 3} + m_PrefabInstance: {fileID: 757682347168729909} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1260057675 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1554488281934383637, guid: c309ebf7d22bfc644b409dbe21ff4a7c, type: 3} + m_PrefabInstance: {fileID: 757682347168729909} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1260057673} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6ad980451443d70438faac0bc6c235a0, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1260057676 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4274627413389625020, guid: c309ebf7d22bfc644b409dbe21ff4a7c, type: 3} + m_PrefabInstance: {fileID: 757682347168729909} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1260057673} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1422880104 stripped GameObject: m_CorrespondingSourceObject: {fileID: 1723145820396879019, guid: c309ebf7d22bfc644b409dbe21ff4a7c, type: 3} @@ -1054,7 +1068,7 @@ MonoBehaviour: openPrefabs: 0 prefabs: [] idRef: - _Keys: 5337fb48ba082f4c11da0277d9afca7edd7b5efceef80727d52bb9c665d7aa545cd63732fbb03921f9fbdfe7d589f4265fc87a4a912787717f7186df3643453fed272c5aecffe812e387642fb5503d06d362220ad1fe5b4de27d054df1dabd62b18c3b97fd14986685d215c868729107c05703bcb18424275266b4f8129b12635882ddde307e8172e3b977a1034eb51fa8fc8664117feb6e01cb08d748b7900e9e1ea5806706dd7405d661b4ab5e5235590b7edfd2fb0b53c80735ccfd696e64b779c0dd0bc978512705a1c4e2c93d5fe2c181c2c64ec35d45c66a241e3041716dd34732a6b98e01cbd5afbfeb312b053d1dcbb8111980158f100aa834627e4e801055f30791b7341e456a049e475a770f909ec304057d79ada23f483cc8ca68a89fc00479e1f3312a0028a97c7a4b2a6c819aa3c3ba497973315f552eff8f180fd25cff8755fd1011962244d1d95b638f4099a91e4ca23e50fe914a6209ac2b97ebb968a060ab16c1b221ea5070373eda76fec8762d5571f49656ecf638ff62d1f6b9ba3ae62d1e6bdbc9e041900521c75371ec0be3b43a412a74090abf1f074e7ce6a54883fc0db720cbad08c94c639135b34aa9eb6d12437efc655b372853453e6e3a55a027496ae3a9ef7e20e402b5d008a7cfecc425fcf5080c775dd4384c2a712b5ae01c3bc1829056e9b44c5820c42d7dafd45d5adcc628f903af460cf08fc4576ef0a36bee44e64d5c6e3b46574f134ccfa976207934f9def7eac0113c84477978a3c70f6899906bed0ffd6d751eafac3d6d2447e85c2f5c167d9c0384d511d727c2cd05e9dd4c96c61df268c873abe96692b05757716de38c950616027318e701d9b938ecb4951bb9ba0d366ac7258a2985691686682e9830b1917de563993936da6a10468c034e026b62639dc8b2ac456fbf7723d09295f7ad97624613ff1c54476d705d14449c821b131a07cbfc67fee538755cdde99ab82be6680a5f6ae99581481c36224f312a22f407428870d44ed09b2b4b74c0765dd2b877f02ea94021220d33ece7cd246af8b57fd2f15730ba121939122e745391a4007138f8e7660277c15242bf5b938578430c391e5a3a632fb61ad82900ced1cb051b7217f8c22ab3374c83b49d7fd2ad83627cd647659343dc08bf32c2d38870dc75bb3f059c7005377919f242e732c912295962b558ec95502ec6107ea38af52b12d928c592a8e6f27e0dc07d8686c33b0b20982cea2534624f9134d75f8693ee2239cff0f5fb807f3f55334a2c17caa776b3767c0e37bf135bc67502740f93f75eafa04cb6d3460f60196c3f597e8e665a23b1ec03ef03a57a446b458e7d0cb1172ba87d767df1a36d9ae3d95b009325360fa897c07ffa4d54052d06c17461220bc94f6dbe5127015ebaf1802a8b0f6825c2ce9fd80ffe2b31d1caceff9721320657a9839a1db2693492aa1edd5882c558622b6b535eaca0471cb1fb55dd68bd17fd7eacb11eb855737eaf76d3b6eaf219fa2f7b7056b2b419b0815cd4519ebc77de1077d40bd55e63f12c1838809e9611491ef1473787b9325cfd99288f98c11f3c73436baefd5f19622eb6d67711374e186e8a32ac753f565645780e3c36d37612c802f2a5d49d477d0be409d0e3bb4bc64a0f210e8e734f4d653d0b8992aa2c5a40c4af0e44a943d142b5a19036867377d3b80ed94d987cac4c5ac0686e4215a047516fe1f3c27ea0cc50cbd9d1be1721357da3b547fa58d8415a5a9e6aac3f84ca40d887f5547d113aafa59d63567c0b719f33f09e6058b307b8ddb1e2e336e0efb9f06f1a701676046d8568ab443b97d665100adf30232a99257f3d76cb0de21a3952559af20ffe76560af31a3f08c27c45db7cd22c4021dd1a083fef53007ffe182fa6b29101b094595704ae26143d58ae6b7306af7169480d973327703234d0382ce97e8411277b7d417c980367728e4801be365469460d88fb486fa2554d7452269e75e95b2c62bc0877910b0133d9513bc0912023ebb830194c652175f3c199300f6e42648381f1f3bd803b0f48d9c3af1db83e226a8aeda95afd570c932cf20362dba53a6a12ee736e972b1ab892d073a171583b8376c6848099092dddf34a7bf7030024d6cb0047b1faff623fa7a295d00000064af80f37d21c9503852d86d9a22abb021d1b5062e1a6124b6e540b5ca7d76b2e1b3b328757beff0677b100da75263956b91b4cc203f3e35d193c3581efc6a353c357be66f733ab5e1c4aeb2fa637d5471bb516c2232d310d1f8fa193f481f63d5653181e67d25e12c6aade4dde120451127d9ca5dd65776bda4eb7986de8956554adda521fb7e048570488ce0b7eec316b0d5a8ee264e445cb84f8b58af77f22eb875f7412a88f365ee4fbe1ee4577593be82c608e0782489320889abe2abe5f7b991c7be087e114646fd00297fca81004ae0e8cdc204f0d0ba7e2f220f477765ea59aabd604874c0717c3fdd884df6a88886093c6b4c45bb6f17977952cca6f08a55b0d9d02c608355b85c45c513570884c7ba8550b3c12960a0a1a75f049331ecc0acdd62e327911bf278db968f841bf4d8ffabf8ba5451c183fb24342b85b19801c4aa39a042ec8a05db28e0e1a02e355119389252f0f591dbdc030f0901013078ccc4b04b01137a92d6b870e692f6ab708d93f674846f2d59ea253ecce47326d9f87814db7170623c932539b966786ec29e8f9694f54bf46bf21a2536422e26d7792f7ab9245eeae1ed7a4fcb9581b026aad68a74169ccc6a2e25a30e93c0b114160e092e4044de14fbc5a3a8e1644ca435d7429d6566f7f8b7effe078348d946e883e6c4446a04c3283029ce36e857a7288c964c853d0098c760c4f810caf8309cfc3ab56792cad997d645d1d4a98ef392298615c27130308122790ba14532d96ac61dfba3c394160521a423a4bb1403cef4fcffe4d679763d3485ad74f0469aafbcc4e1806823ca06a3f4f091ba0f3ec9f7f225e1b5347730bd4414e6e0e4380a01924105867b12666446ab2228de94dc0fe0a1c77a6755ed061f1675daf8e91147244ee5a6dbfbb048efc1562c8d65ca7d941dc5086f8535260f432754ac8b7b5d89daf2dd7a82dbdc52106569f0467c8b1f0c8106be28f7af19bfa7872b9443abaa07565858ad031131e8b59ffa9f1645bfa263a6e38b50af2cbc4735d59b4f4233364018e0142272096fc76911684b85569e26d2080347d14948c45c65d8d6dd37f7c3446f0f25c3c4e5a273c3e78db470c1d39c3dd2a5d011913238d8761c3088fa3129a4ffd465c3faa2e260db9520d678c45c1ab560aaae0cd5e0516eac4af1e30536699be08f129227bcd047cf12c99ce0a14a683b4e6aebd7ae4a3b58dd69121072399128c567bab688ada3da663db316a48e0d956a1e539135739254d7395a53be37514c6ac5b606605e5c23f149b21078eb4ba0a47349a08d326e28fa1f9dc0ccbfd3b1139944213808dae43dd050045181edb2750af8316f0e2662cc20ff802c2cf0a11d73340068f5976457aa9d432269da6bfd4045c7bb798052468382d3ad47a6dd7ab69cb5b551824da527fbc158075635561ac4b41ee869f95102c085c823527695bba8f465e0ab3ae9e894738240f5c22637d637fc5afe925c9364a280fc75b88a626703bc19847df76d43f042d57d0f45c4aef271678782df4c7d4228b9f7cb63d38233cc5b151be74e5eb3aa4ba393fccbd2126fc0cfca62fe90f2ab9e025e1f4ea9025333bbd5b95f4ad6ea3cc576426e1e81cde1f5c7887c0e301de18b37e04d89113092d0ba01a81aa391dbc2fb6e751263255fcfc69d508ac3aa024a7efd4778b76cf42f87835c7b66e709235368eb4882223daa28b53508471468e532ab47f0a6d66564e9c6ca58c14863b08a2927fdf62deceb0f52aeaae700baa148b6f6ef70e7938631afddb717cba378d4f3ea9525b78bf8e07f80cc2215c41200f6b433e45d720a54fd113b7217a79f2f38ec9d330ba0773223a66de286ed1c4e99b4196058ceed11e38e59f39d2a75d920706af5f5941576339d09f7a65cfef3aa09aea0a1750273e3e2a4a62efead736424b5675a087a4e7ab70507b139c1eed21a6f35eb8ac4ed28eeeeb243a5060e8cc236e2307a51040a646114ff2abdda7efd63878cc7f25231d65e81d89270062be64cf5642fbba2c4143ff034116aa7dac96353293c5b2273e343f4f1f3cd7513b607353b2de17b32a1b2b04b774c76eaf8db8177b03fbfa51f49a2dc6c6cc8fa925ac21e6f52161bb7f4f1e03ce210c79e6a66ebf2e9b1f9f95b50ab83ed2b8e8d08d26534da4626ebaa6746fd65e6ec5d0ea313cb9ee438866e90a91342d0a27242d1e44be48457f877747a52cbf9ab3a615424e12d6246ac9183a6366881f61a55d49a93fb2841930b04b41a6e7b52584be15e014a7c505ad767ba60ea7e50f97a900308a0d8b0c6fd67ec221e2c3e163141902736c8650c93332515aac9c4e0dd43f8a8b7c7900b5aa3ff08288c669a111629f6f52722d54496a9a45d1f20176a046f3f4c242bc68b13bf39b370acf82ec0a8a347326357b1e76aedd2746ada665774911898664ed33036499d5b4e24f6c73beb52e8a969c562d28de1cb7bee4532ec29242bf76f5043e8550928aa329142ffc7cf00e3a548e54bc5c5e86d07b447ffe4ec2031277fc7915f43742cb0c87298d62a2c43236523fe227ec2171986043ba76e8554b787a71a28f2d16d9f60c065ab5cbde56d77a65a77e6b400ac70e2f380db2490200bd103c486e34fb31f3183ef89c42dbbbb57f108e7589acb72c7c25a800905102d16165bf51f7adaa8f3877a0e1439e80ea3951ddf265d724317c32505015b6bf576450970e4284aa712f052f091e31323e36d91d7d8e5f1f5d50a3aa7a1168eb46681cd457e4d528371bae88e84a929b3320da960b5e4ef3b13195764439c6aac92b3a10c494ae2493614f0a835f9e7bea2bae8465b761771e1a07922b1defd50b0673d613ba276b2409d0203eff29e03c0ff783f2232fe0a83d10c3b2db2e521604db50027c3573e051365b5c733fb81d6c3257656553540603ba8f7628657e4f55cd54df43c3b8ec44a6ea49630169264237ac5d1056050a1cf1fdd616875c7b087c2620e04af4974329a0a57d4c248c0c8c314b119418943d615da7f686e7273a7093212b0f15322fa7e9955af25d5507feaea1d92eb27a742fe126c2b3d4a159f2488d81562866563e8097849eeb6f58ecd72bfa2ce1195889e51444f8c9e5140fb32b3c6cb4fd5049763f1a4fd9a5798ddc05fe83b8e701e9195bed35873b6fc268f8bdb31bb55cf571774150345a3f9128845ad1f35f47c9afde3f214119299102e43777eefa6da8e7e991bb2c07412953589906e3d04f2e16f575b2abce4d5220a4912471fc3c64ba862a770a882f4e51738c2c590a79b0063398b90e3762877638145fb6fd55a7dd2eb14caea379b825027e4e54fd577f2bfc9ea542541e21a61fe5a795570539aa26bb7819164bb2362d5e9fbb80131aaa732f14011f43172b412aa495f6719fa841816935e569f6e490d4b141dd2cc3367ab0bff8fd2a7d7d2eca2202cc29c4db45dcaf129f62a1e0fd35f118af59c85f7e7ffc7c1e1f48516eb08735585623980e3901709e2b587e08dc21a4ed2bb395e93d4c0a994355122d7033ae2c27114bc44284000f2239c8cb3516cc004a800a14d9b574a00f70eb9d6e9de31940f08021fa263e6e53df14d40b2eb6384e53d5bac8a57c0246445320e13077a80560bcb8e93ebcb24e1f16e3e9f0f4fa42cd41873c3524c363c1a380b34cee7b79c51558617bdca8586f5d1400adf16e204f9df49dc52c564d20ab8b641df5f81471c9d04807848c3ddf47968b3336427bb0ef0528fbcacf23b06cdcdb239b2604d5ca15cd3aa28f431a5413311b82bc58cdb0d9d7dbf3cd1e201e14b85d641868aa71ffb9a90d3f7bcd66b4baf8c43956758cdf800624c01ba6024c3a627c19739e45f1a9b702d00801070db3114a2c4b6bd0ba54f84778388aab1db48a9d673fc6166bbb2789e26fc1a2660daeac0649faf9fa6707d64b6166e2b1f7cd04285a322e865109a79f12716f50ba50b6473feb93043d6065a90be1fad1166cefb344eb101815ad1eff2f57040a191e5ac20ad2088593680fca198e8d0e19e73d7a444259e9eae728d07161a8289676b23815a5484266925aef4f14311b813b226b6c84f0f51f1d327a49b205564b6549cd0cb9213c4f19be34192c0c845c0bba817be3b9dbbc8254215a0260f4f58eb0c915f6df786ceac69a10646fad234c6ff66ff14893d9f62c1f05a83fd80fbbbc4c353b98948c1cc26d370a90bbfc623953548b6cbe870d85dd50381a05aac059d51b38918e7c12ea4b11e7dbf73fa93f38653c17f7112a61e303bb9f33f3c8cf675f22ac6fe87d1cfa07e1a06da861c4f16775912fe15edc1412ac45830a0c449c6d5168cd282f347f301d2763dae60f57166ffe9adef6ab6a67cc3b8cc89463743036231c5e33180424b0282faae8e56e5ae1308ebb1c3e0803ff29e4da2ff93f0319ded11de79e8f31746b2a87341c76309acaf36f1034d21a6013b56a66ac66089e71c5fc9ab14372223013c067032a769fa63e0ea248927bb6fd8f540b8a6538fbde173da886691786819041479281630440b29741977e69ccdbc588ebeccd173e279524d9d4c2477ff3913793722370fd06e9cbd7490358b855ffecabe3df3c43bb30b4bd367a5940e612cde871c74cd59a2652f6c42a2300791f70093d46179a9f77e3e6b1647edca52c91f5ad253fb2d7b6bfa0e0d051f8fdbb9997bd8903dfeefd0ed8f196590c3d8f1f409ca443c7722f31d4691f2f3c56a87c0010076cee9bdda18caf3170c57f718b721ab368a7523339f26fa4788673faf0a647ac11bb49755ceb58aa10db1cef6628bf3b2ad17b0827619f551f9f95c90e90e5c77944fc92ab05f7ba3ed9a8307b02d460548d028d799fb6a200f5a05a25d962413d5ce59283aaa5bf40038a3485fa1c6f723bb3b2137d0a1812fa5a6ffe300065513bc9252c87f6242458e0fa03e32e7575909382f5f4670875fdb4871802dc38020f793e3bbd63054572714463efebd1331b059163818fa22cc0af283b7d3d273519fcf36aef39b72c72c3999953939a11e353fefc4ad580611b6a7a0e3ac9c7519a7a7decdf3b235343410e410af72754b7c5e12fc4dc7f1083aab17b41560e3b7515ff26ea51cd59d055c0731c3d93244326c400abf71543fb6d69348aa81265b0b6330a08ff95086cc4ffe6630dd33fc12a4198e4f0197effbc2157bb02e479682622d3719e2c4244336b1808d02007bf57094b1654b5602f4ef53bdf123c6ae0867d3dea00cd22030123e7a4cd7930dc289764f8986213903d5cdc570f9d5671d5f98f4e5df2407718b1e88762fb02c7255fb77ad87147246acc285caa790c9b3288312b161e3ae62725eeb5b5642c425aa47c6e54d1488a96252d99bdcb7526dd1b6f2bd61446da537ed4d7c7c610c49eace82da7a17ffbc5e0363cb7602525f3502cfee2bc6d1ec003982b8d0c79238ed806c629ba27692d0f9d88344a5f45417ae8ce793608c5e1bdf30f11775ed6d7466d48908244ea9d8af62c915f073b2f320b2dea2f6339f4c98d71719279d37732fa7d99fd7efa527c1204447226bbdaae09a5e9cb791a49949127347b39967143da3848c814ef6cfd6b9ec0ec7c67f0494b209b1e15acb913c72e8ea62fcdb6a775874c5e035e3c08ee19c8e858a2e8d5c814d0e605532d86f15c8f437dedd3c6ab989dfb4cb0b2111c6dcf04745f93dab94722e403cfa1c8b5d350603206742413706c0f041476e79e40366722ce046c364a76ca0fb7cadbf6d446786052de16f8abf104355c20592ec5b93d05f81418311cd6187056eba45a6fe7d05ad957464164d3745a83f476e49b4d05451a1d1e32146fbc45c297acc6a29ef30fe05dc9cf8acaa9341cbecdd33846310a01c1b0a0b466f56965fe7f32d852471bff983b07e82b301cc8521656a1e80c7b9a5d3a1f12aca547aecd9574b589a46e06e9d2d18139f32b0d33269daf60384d0bfa977a182709520d0b4b493f5b2e3eaea850b8153bf92bb099ee217af8680e06e380b0211e862d0dda3b891156136961644b57b1f063471cfc2c268cf260708e827bdf893f72034b4483f5f460286d273052294d9d772b599b2fb707d1b837adea73980d148609adbd9bd79b109e44d4be4dbc4589bd0ff4af7912ef44041d04445e202b3f8511ab487c8f029f8f48feea8bc61e747d36577c73427167060e3d472ba94e82e614bda19971f9b2ee6b3fc10fd9d0ca3c71c82878a7b3c78311508bcd49ca38967f2e60f68224f4c3096bdf02b0572d3e730ab97076fa8ec70be277de921a5b5e78578faa6fd4ba4d44ec821392ca34687dcb415484a90c7a5f99ea9fac1631ee10808a58c782ce9f506c2c627ca159d516e05b5c5cafe22164f7f52916e55fd11d8edcedab73cf00671f5a0f2a9108fe3feb7633452a6d9f62980c4188084ac933fd7feec56c29a3115bf43c54d3f6d300f4692b6e2c8cf2037c4f437f11886f69dcbcd3eee5c62c13e6ba5fe0560cca71e142949e1e5b07758f0eb7e31adcff2d7b2dd06f363e192cc3e7ab19142da66f7b2da0ace2f1777fb65d5fd70f49f93dba8c5b83dc3aa75ed7979ef9f9df75444bd99713c3acb5764aaf452721bde30ce1e85e88d122924a2a017c85708e866b2c5cdc161ff3fe0ed6e4382df4803c19341c4e9ad42e36698e12ccc097dfdb6a6a71705158786d29aed933c22812c0090abcbe54be3650542cbc756ccff38a62f2134fb2a3d8684fb384325ab3957e7b52c3b5da2187ab5fc3c5269c0201595d6396cf15c20e6532546ea03903f5a13ec50e416d569a7b6b34aa5e74cd84ed76829262cef172a92dbddc1a3be453b94efee81a5ef50e5a745973200b6d50a74b5833a6035f8dfd1cac9df2ea8e187218e05ee7cf49973b62a8b1a203d5c5d41f413b6b78128a1430f710132777c8ac26d303c7d805523d47655d253e6c63c61e89ca3c42063ce07ea9f1a900df7149715dc8d5d98cac241101dbeb4b9b2a3b6d4af5b14204ef2c0ea7969c35399faa23a62a402a5095e37ff5e4bdd22e1b0d3f02c1f231c670a6564c8de82f30575e7a2a00ac3787fbf8321d01288ea3b1b84595f31fb073a57d4cbdc804d037bb3902b9243eaf9bc4b431c38db2ce8012e224460e3285e5575a4d6777609578803e27c5d52b818df6562e3fedece5f3afcc3055d7e8ba12401862caf115122549aa44cbda92553e63b13d9c9eb908958ba615db38c4888d09f456dd34eb6a178c2120dd57fc3b57dd3c36ec9941cc1847a673a5a211c051677a440f8e4b55cad5724bed9b4631b74977752f07a9b29877496acd0d2ac6d99eba76b5fb2c394e64161db62925a3f6fefb11d09706e47b707c199a94ce1843a22b7eaa656be364129e09 + _Keys: 5337fb48ba082f4c11da0277d9afca7edd7b5efceef80727d52bb9c665d7aa545cd63732fbb03921f9fbdfe7d589f4265fc87a4a912787717f7186df3643453fed272c5aecffe812e387642fb5503d06d362220ad1fe5b4de27d054df1dabd62b18c3b97fd14986685d215c868729107c05703bcb18424275266b4f8129b12635882ddde307e8172e3b977a1034eb51fa8fc8664117feb6e01cb08d748b7900e9e1ea5806706dd7405d661b4ab5e5235590b7edfd2fb0b53c80735ccfd696e64b779c0dd0bc978512705a1c4e2c93d5fe2c181c2c64ec35d45c66a241e3041716dd34732a6b98e01cbd5afbfeb312b053d1dcbb8111980158f100aa834627e4e801055f30791b7341e456a049e475a770f909ec304057d79ada23f483cc8ca68a89fc00479e1f3312a0028a97c7a4b2a6c819aa3c3ba497973315f552eff8f180fd25cff8755fd1011962244d1d95b638f4099a91e4ca23e50fe914a6209ac2b97ebb968a060ab16c1b221ea5070373eda76fec8762d5571f49656ecf638ff62d1f6b9ba3ae62d1e6bdbc9e041900521c75371ec0be3b43a412a74090abf1f074e7ce6a54883fc0db720cbad08c94c639135b34aa9eb6d12437efc655b372853453e6e3a55a027496ae3a9ef7e20e402b5d008a7cfecc425fcf5080c775dd4384c2a712b5ae01c3bc1829056e9b44c5820c42d7dafd45d5adcc628f903af460cf08fc4576ef0a36bee44e64d5c6e3b46574f134ccfa976207934f9def7eac0113c84477978a3c70f6899906bed0ffd6d751eafac3d6d2447e85c2f5c167d9c0384d511d727c2cd05e9dd4c96c61df268c873abe96692b05757716de38c950616027318e701d9b938ecb4951bb9ba0d366ac7258a2985691686682e9830b1917de563993936da6a10468c034e026b62639dc8b2ac456fbf7723d09295f7ad97624613ff1c54476d705d14449c821b131a07cbfc67fee538755cdde99ab82be6680a5f6ae99581481c36224f312a22f407428870d44ed09b2b4b74c0765dd2b877f02ea94021220d33ece7cd246af8b57fd2f15730ba121939122e745391a4007138f8e7660277c15242bf5b938578430c391e5a3a632fb61ad82900ced1cb051b7217f8c22ab3374c83b49d7fd2ad83627cd647659343dc08bf32c2d38870dc75bb3f059c7005377919f242e732c912295962b558ec95502ec6107ea38af52b12d928c592a8e6f27e0dc07d8686c33b0b20982cea2534624f9134d75f8693ee2239cff0f5fb807f3f55334a2c17caa776b3767c0e37bf135bc67502740f93f75eafa04cb6d3460f60196c3f597e8e665a23b1ec03ef03a57a446b458e7d0cb1172ba87d767df1a36d9ae3d95b009325360fa897c07ffa4d54052d06c17461220bc94f6dbe5127015ebaf1802a8b0f6825c2ce9fd80ffe2b31d1caceff9721320657a9839a1db2693492aa1edd5882c558622b6b535eaca0471cb1fb55dd68bd17fd7eacb11eb855737eaf76d3b6eaf219fa2f7b7056b2b419b0815cd4519ebc77de1077d40bd55e63f12c1838809e9611491ef1473787b9325cfd99288f98c11f3c73436baefd5f19622eb6d67711374e186e8a32ac753f565645780e3c36d37612c802f2a5d49d477d0be409d0e3bb4bc64a0f210e8e734f4d653d0b8992aa2c5a40c4af0e44a943d142b5a19036867377d3b80ed94d987cac4c5ac0686e4215a047516fe1f3c27ea0cc50cbd9d1be1721357da3b547fa58d8415a5a9e6aac3f84ca40d887f5547d113aafa59d63567c0b719f33f09e6058b307b8ddb1e2e336e0efb9f06f1a701676046d8568ab443b97d665100adf30232a99257f3d76cb0de21a3952559af20ffe76560af31a3f08c27c45db7cd22c4021dd1a083fef53007ffe182fa6b29101b094595704ae26143d58ae6b7306af7169480d973327703234d0382ce97e8411277b7d417c980367728e4801be365469460d88fb486fa2554d7452269e75e95b2c62bc0877910b0133d9513bc0912023ebb830194c652175f3c199300f6e42648381f1f3bd803b0f48d9c3af1db83e226a8aeda95afd570c932cf20362dba53a6a12ee736e972b1ab892d073a171583b8376c6848099092dddf34a7bf7030024d6cb0047b1faff623fa7a295d00000064af80f37d21c9503852d86d9a22abb021d1b5062e1a6124b6e540b5ca7d76b2e1b3b328757beff0677b100da75263956b91b4cc203f3e35d193c3581efc6a353c357be66f733ab5e1c4aeb2fa637d5471bb516c2232d310d1f8fa193f481f63d5653181e67d25e12c6aade4dde120451127d9ca5dd65776bda4eb7986de8956554adda521fb7e048570488ce0b7eec316b0d5a8ee264e445cb84f8b58af77f22eb875f7412a88f365ee4fbe1ee4577593be82c608e0782489320889abe2abe5f7b991c7be087e114646fd00297fca81004ae0e8cdc204f0d0ba7e2f220f477765ea59aabd604874c0717c3fdd884df6a88886093c6b4c45bb6f17977952cca6f08a55b0d9d02c608355b85c45c513570884c7ba8550b3c12960a0a1a75f049331ecc0acdd62e327911bf278db968f841bf4d8ffabf8ba5451c183fb24342b85b19801c4aa39a042ec8a05db28e0e1a02e355119389252f0f591dbdc030f0901013078ccc4b04b01137a92d6b870e692f6ab708d93f674846f2d59ea253ecce47326d9f87814db7170623c932539b966786ec29e8f9694f54bf46bf21a2536422e26d7792f7ab9245eeae1ed7a4fcb9581b026aad68a74169ccc6a2e25a30e93c0b114160e092e4044de14fbc5a3a8e1644ca435d7429d6566f7f8b7effe078348d946e883e6c4446a04c3283029ce36e857a7288c964c853d0098c760c4f810caf8309cfc3ab56792cad997d645d1d4a98ef392298615c27130308122790ba14532d96ac61dfba3c394160521a423a4bb1403cef4fcffe4d679763d3485ad74f0469aafbcc4e1806823ca06a3f4f091ba0f3ec9f7f225e1b5347730bd4414e6e0e4380a01924105867b12666446ab2228de94dc0fe0a1c77a6755ed061f1675daf8e91147244ee5a6dbfbb048efc1562c8d65ca7d941dc5086f8535260f432754ac8b7b5d89daf2dd7a82dbdc52106569f0467c8b1f0c8106be28f7af19bfa7872b9443abaa07565858ad031131e8b59ffa9f1645bfa263a6e38b50af2cbc4735d59b4f4233364018e0142272096fc76911684b85569e26d2080347d14948c45c65d8d6dd37f7c3446f0f25c3c4e5a273c3e78db470c1d39c3dd2a5d011913238d8761c3088fa3129a4ffd465c3faa2e260db9520d678c45c1ab560aaae0cd5e0516eac4af1e30536699be08f129227bcd047cf12c99ce0a14a683b4e6aebd7ae4a3b58dd69121072399128c567bab688ada3da663db316a48e0d956a1e539135739254d7395a53be37514c6ac5b606605e5c23f149b21078eb4ba0a47349a08d326e28fa1f9dc0ccbfd3b1139944213808dae43dd050045181edb2750af8316f0e2662cc20ff802c2cf0a11d73340068f5976457aa9d432269da6bfd4045c7bb798052468382d3ad47a6dd7ab69cb5b551824da527fbc158075635561ac4b41ee869f95102c085c823527695bba8f465e0ab3ae9e894738240f5c22637d637fc5afe925c9364a280fc75b88a626703bc19847df76d43f042d57d0f45c4aef271678782df4c7d4228b9f7cb63d38233cc5b151be74e5eb3aa4ba393fccbd2126fc0cfca62fe90f2ab9e025e1f4ea9025333bbd5b95f4ad6ea3cc576426e1e81cde1f5c7887c0e301de18b37e04d89113092d0ba01a81aa391dbc2fb6e751263255fcfc69d508ac3aa024a7efd4778b76cf42f87835c7b66e709235368eb4882223daa28b53508471468e532ab47f0a6d66564e9c6ca58c14863b08a2927fdf62deceb0f52aeaae700baa148b6f6ef70e7938631afddb717cba378d4f3ea9525b78bf8e07f80cc2215c41200f6b433e45d720a54fd113b7217a79f2f38ec9d330ba0773223a66de286ed1c4e99b4196058ceed11e38e59f39d2a75d920706af5f5941576339d09f7a65cfef3aa09aea0a1750273e3e2a4a62efead736424b5675a087a4e7ab70507b139c1eed21a6f35eb8ac4ed28eeeeb243a5060e8cc236e2307a51040a646114ff2abdda7efd63878cc7f25231d65e81d89270062be64cf5642fbba2c4143ff034116aa7dac96353293c5b2273e343f4f1f3cd7513b607353b2de17b32a1b2b04b774c76eaf8db8177b03fbfa51f49a2dc6c6cc8fa925ac21e6f52161bb7f4f1e03ce210c79e6a66ebf2e9b1f9f95b50ab83ed2b8e8d08d26534da4626ebaa6746fd65e6ec5d0ea313cb9ee438866e90a91342d0a27242d1e44be48457f877747a52cbf9ab3a615424e12d6246ac9183a6366881f61a55d49a93fb2841930b04b41a6e7b52584be15e014a7c505ad767ba60ea7e50f97a900308a0d8b0c6fd67ec221e2c3e163141902736c8650c93332515aac9c4e0dd43f8a8b7c7900b5aa3ff08288c669a111629f6f52722d54496a9a45d1f20176a046f3f4c242bc68b13bf39b370acf82ec0a8a347326357b1e76aedd2746ada665774911898664ed33036499d5b4e24f6c73beb52e8a969c562d28de1cb7bee4532ec29242bf76f5043e8550928aa329142ffc7cf00e3a548e54bc5c5e86d07b447ffe4ec2031277fc7915f43742cb0c87298d62a2c43236523fe227ec2171986043ba76e8554b787a71a28f2d16d9f60c065ab5cbde56d77a65a77e6b400ac70e2f380db2490200bd103c486e34fb31f3183ef89c42dbbbb57f108e7589acb72c7c25a800905102d16165bf51f7adaa8f3877a0e1439e80ea3951ddf265d724317c32505015b6bf576450970e4284aa712f052f091e31323e36d91d7d8e5f1f5d50a3aa7a1168eb46681cd457e4d528371bae88e84a929b3320da960b5e4ef3b13195764439c6aac92b3a10c494ae2493614f0a835f9e7bea2bae8465b761771e1a07922b1defd50b0673d613ba276b2409d0203eff29e03c0ff783f2232fe0a83d10c3b2db2e521604db50027c3573e051365b5c733fb81d6c3257656553540603ba8f7628657e4f55cd54df43c3b8ec44a6ea49630169264237ac5d1056050a1cf1fdd616875c7b087c2620e04af4974329a0a57d4c248c0c8c314b119418943d615da7f686e7273a7093212b0f15322fa7e9955af25d5507feaea1d92eb27a742fe126c2b3d4a159f2488d81562866563e8097849eeb6f58ecd72bfa2ce1195889e51444f8c9e5140fb32b3c6cb4fd5049763f1a4fd9a5798ddc05fe83b8e701e9195bed35873b6fc268f8bdb31bb55cf571774150345a3f9128845ad1f35f47c9afde3f214119299102e43777eefa6da8e7e991bb2c07412953589906e3d04f2e16f575b2abce4d5220a4912471fc3c64ba862a770a882f4e51738c2c590a79b0063398b90e3762877638145fb6fd55a7dd2eb14caea379b825027e4e54fd577f2bfc9ea542541e21a61fe5a795570539aa26bb7819164bb2362d5e9fbb80131aaa732f14011f43172b412aa495f6719fa841816935e569f6e490d4b141dd2cc3367ab0bff8fd2a7d7d2eca2202cc29c4db45dcaf129f62a1e0fd35f118af59c85f7e7ffc7c1e1f48516eb08735585623980e3901709e2b587e08dc21a4ed2bb395e93d4c0a994355122d7033ae2c27114bc44284000f2239c8cb3516cc004a800a14d9b574a00f70eb9d6e9de31940f08021fa263e6e53df14d40b2eb6384e53d5bac8a57c0246445320e13077a80560bcb8e93ebcb24e1f16e3e9f0f4fa42cd41873c3524c363c1a380b34cee7b79c51558617bdca8586f5d1400adf16e204f9df49dc52c564d20ab8b641df5f81471c9d04807848c3ddf47968b3336427bb0ef0528fbcacf23b06cdcdb239b2604d5ca15cd3aa28f431a5413311b82bc58cdb0d9d7dbf3cd1e201e14b85d641868aa71ffb9a90d3f7bcd66b4baf8c43956758cdf800624c01ba6024c3a627c19739e45f1a9b702d00801070db3114a2c4b6bd0ba54f84778388aab1db48a9d673fc6166bbb2789e26fc1a2660daeac0649faf9fa6707d64b6166e2b1f7cd04285a322e865109a79f12716f50ba50b6473feb93043d6065a90be1fad1166cefb344eb101815ad1eff2f57040a191e5ac20ad2088593680fca198e8d0e19e73d7a444259e9eae728d07161a8289676b23815a5484266925aef4f14311b813b226b6c84f0f51f1d327a49b205564b6549cd0cb9213c4f19be34192c0c845c0bba817be3b9dbbc8254215a0260f4f58eb0c915f6df786ceac69a10646fad234c6ff66ff14893d9f62c1f05a83fd80fbbbc4c353b98948c1cc26d370a90bbfc623953548b6cbe870d85dd50381a05aac059d51b38918e7c12ea4b11e7dbf73fa93f38653c17f7112a61e303bb9f33f3c8cf675f22ac6fe87d1cfa07e1a06da861c4f16775912fe15edc1412ac45830a0c449c6d5168cd282f347f301d2763dae60f57166ffe9adef6ab6a67cc3b8cc89463743036231c5e33180424b0282faae8e56e5ae1308ebb1c3e0803ff29e4da2ff93f0319ded11de79e8f31746b2a87341c76309acaf36f1034d21a6013b56a66ac66089e71c5fc9ab14372223013c067032a769fa63e0ea248927bb6fd8f540b8a6538fbde173da886691786819041479281630440b29741977e69ccdbc588ebeccd173e279524d9d4c2477ff3913793722370fd06e9cbd7490358b855ffecabe3df3c43bb30b4bd367a5940e612cde871c74cd59a2652f6c42a2300791f70093d46179a9f77e3e6b1647edca52c91f5ad253fb2d7b6bfa0e0d051f8fdbb9997bd8903dfeefd0ed8f196590c3d8f1f409ca443c7722f31d4691f2f3c56a87c0010076cee9bdda18caf3170c57f718b721ab368a7523339f26fa4788673faf0a647ac11bb49755ceb58aa10db1cef6628bf3b2ad17b0827619f551f9f95c90e90e5c77944fc92ab05f7ba3ed9a8307b02d460548d028d799fb6a200f5a05a25d962413d5ce59283aaa5bf40038a3485fa1c6f723bb3b2137d0a1812fa5a6ffe300065513bc9252c87f6242458e0fa03e32e7575909382f5f4670875fdb4871802dc38020f793e3bbd63054572714463efebd1331b059163818fa22cc0af283b7d3d273519fcf36aef39b72c72c3999953939a11e353fefc4ad580611b6a7a0e3ac9c7519a7a7decdf3b235343410e410af72754b7c5e12fc4dc7f1083aab17b41560e3b7515ff26ea51cd59d055c0731c3d93244326c400abf71543fb6d69348aa81265b0b6330a08ff95086cc4ffe6630dd33fc12a4198e4f0197effbc2157bb02e479682622d3719e2c4244336b1808d02007bf57094b1654b5602f4ef53bdf123c6ae0867d3dea00cd22030123e7a4cd7930dc289764f8986213903d5cdc570f9d5671d5f98f4e5df2407718b1e88762fb02c7255fb77ad87147246acc285caa790c9b3288312b161e3ae62725eeb5b5642c425aa47c6e54d1488a96252d99bdcb7526dd1b6f2bd61446da537ed4d7c7c610c49eace82da7a17ffbc5e0363cb7602525f3502cfee2bc6d1ec003982b8d0c79238ed806c629ba27692d0f9d88344a5f45417ae8ce793608c5e1bdf30f11775ed6d7466d48908244ea9d8af62c915f073b2f320b2dea2f6339f4c98d71719279d37732fa7d99fd7efa527c1204447226bbdaae09a5e9cb791a49949127347b39967143da3848c814ef6cfd6b9ec0ec7c67f0494b209b1e15acb913c72e8ea62fcdb6a775874c5e035e3c08ee19c8e858a2e8d5c814d0e605532d86f15c8f437dedd3c6ab989dfb4cb0b2111c6dcf04745f93dab94722e403cfa1c8b5d350603206742413706c0f041476e79e40366722ce046c364a76ca0fb7cadbf6d446786052de16f8abf104355c20592ec5b93d05f81418311cd6187056eba45a6fe7d05ad957464164d3745a83f476e49b4d05451a1d1e32146fbc45c297acc6a29ef30fe05dc9cf8acaa9341cbecdd33846310a01c1b0a0b466f56965fe7f32d852471bff983b07e82b301cc8521656a1e80c7b9a5d3a1f12aca547aecd9574b589a46e06e9d2d18139f32b0d33269daf60384d0bfa977a182709520d0b4b493f5b2e3eaea850b8153bf92bb099ee217af8680e06e380b0211e862d0dda3b891156136961644b57b1f063471cfc2c268cf260708e827bdf893f72034b4483f5f460286d273052294d9d772b599b2fb707d1b837adea73980d148609adbd9bd79b109e44d4be4dbc4589bd0ff4af7912ef44041d04445e202b3f8511ab487c8f029f8f48feea8bc61e747d36577c73427167060e3d472ba94e82e614bda19971f9b2ee6b3fc10fd9d0ca3c71c82878a7b3c78311508bcd49ca38967f2e60f68224f4c3096bdf02b0572d3e730ab97076fa8ec70be277de921a5b5e78578faa6fd4ba4d44ec821392ca34687dcb415484a90c7a5f99ea9fac1631ee10808a58c782ce9f506c2c627ca159d516e05b5c5cafe22164f7f52916e55fd11d8edcedab73cf00671f5a0f2a9108fe3feb7633452a6d9f62980c4188084ac933fd7feec56c29a3115bf43c54d3f6d300f4692b6e2c8cf2037c4f437f11886f69dcbcd3eee5c62c13e6ba5fe0560cca71e142949e1e5b07758f0eb7e31adcff2d7b2dd06f363e192cc3e7ab19142da66f7b2da0ace2f1777fb65d5fd70f49f93dba8c5b83dc3aa75ed7979ef9f9df75444bd99713c3acb5764aaf452721bde30ce1e85e88d122924a2a017c85708e866b2c5cdc161ff3fe0ed6e4382df4803c19341c4e9ad42e36698e12ccc097dfdb6a6a71705158786d29aed933c22812c0090abcbe54be3650542cbc756ccff38a62f2134fb2a3d8684fb384325ab3957e7b52c3b5da2187ab5fc3c5269c0201595d6396cf15c20e6532546ea03903f5a13ec50e416d569a7b6b34aa5e74cd84ed76829262cef172a92dbddc1a3be453b94efee81a5ef50e5a745973200b6d50a74b5833a6035f8dfd1cac9df2ea8e187218e05ee7cf49973b62a8b1a203d5c5d41f413b6b78128a1430f710132777c8ac26d303c7d805523d47655d253e6c63c61e89ca3c42063ce07ea9f1a900df7149715dc8d5d98cac241101dbeb4b9b2a3b6d4af5b14204ef2c0ea7969c35399faa23a62a402a5095e37ff5e4bdd22e1b0d3f02c1f231c670a6564c8de82f30575e7a2a00ac3787fbf8321d01288ea3b1b84595f31fb073a57d4cbdc804d037bb3902b9243eaf9bc4b431c38db2ce8012e224460e3285e5575a4d6777609578803e27c5d52b818df6562e3fedece5f3afcc3055d7e8ba12401862caf115122549aa44cbda92553e63b13d9c9eb908958ba615db38c4888d09f456dd34eb6a178c2120dd57fc3b57dd3c36ec9941cc1847a673a5a211c051677a440f8e4b55cad5724bed9b4631b74977752f07a9b29877496acd0d2ac6d99eba76b5fb2c394e64161db62925a3f6fefb119a94ce1843a22b7eaa656be364129e09f4dc4d3d5f308d7be4480268b741a16879ee17f20a84535dc7054db71264314ef106bd1b362f8f026395e7ceb4d7ed34485444349701d4792fab03647e448d497a5176b18386315882e5aa6093deee62f3820066a966e60f3144eb8b2b2a841ef961ab9d9fc34f3d22ecb2b25673e551445ea8ffbb0b0d1f37867f3f9aa62c579f73a60b7574fe2f33c28896199866415e99ce8ad283d912ab732bdabc71277bbf5a50ca1af1c7316179ccf882770530133e1fff285d7a21b24648175f27135bd29dea4b4fd29423785becfb9126a41dd57218d3a9b0d17873d8f182de6eb81ed7ac56bded4a6f2df08b07f11ca6a01c33dc33b9b033e1115854d10e65dfa4397134b1e0725d0b264ca8906d7cb432613a5a6bdb032ffa098e6865987861c830d1be80170b3f562a2ff292f85c8c6a0b8733d40a74c8355ed14492253c5c605270c03e3a344a6d050540ac109c02ad002f33a32608a8dc06a7e1ac58b35e89060ba7b3d92cf0e034450b5051411063707a2d550703cb5f219517297cdfd0fe737e7ace7f282e743ead901d02a8753b6a81c42d1e4b6ef52a07d56e44195c13140ac3d4c742e34856a1935a72ad5c7920dcbefa1aa3df2813900686ad40cfdb09a4320c6b4902ac64f37b8348ec7d8362b171de27a8d14816ede7574969f5972d48af3184b0f2292512960d1e6270ff0d761703310f4c9e2de9f558315af5ce02e555003c4bffb15c66fbeaed3bd64b5c189a2cae0e9ae104effb9159b5a5801c39f5fc478ec3a67667a7cb1361b0f13fbf4be74037df0b7e37052b47910a120a7c06b546da03ce24bf5deb4a990a9a60132ee8ff733fac58ea7d1189975ee55b6a3e67a504549b457dc381d9f4c1e42c6ccb35622212973caa370fd0af77de4132e172b018ba3d2ab72ade671396506293460893f9d4521a8e25793b46ed122afc68bd1f23e76471c567167f64b6db3f89723d696e4a475c90573f3e3379703517b3637b537085551e68306e412c4a4500b8c4b82a7c994e21608fcba8263e4a091f68e7e6a96d07bc84ef4b9b18887bf2345d5699a2105a4723a073edbdcd6617edcd2e816d19427656a2688fe17644c5422e79c88abb5d1d56275a77092201b7896289e6b7fc7be5e41fbdff5835279ae5afaa8e549d5ea92b112a46beca6ccc5fe0e7bc00d40db94c6b1b9501a17674b10ca3473270620098ccef6be5663cd99f63664072c80c7f22172942dd964deb759a380522746c _Values: - {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} @@ -1897,9 +1911,119 @@ MonoBehaviour: - {fileID: 5309184992511707585, guid: 2d40455ce379bd946bbf5e5e4e71d04c, type: 3} - {fileID: 549239011} - {fileID: 2975532688965488616, guid: 0aaca3e185238014bba82a38ce55f4fc, type: 3} - - {fileID: 549239031} - {fileID: 11500000, guid: e741851cba3ad425c91ecf922cc6b379, type: 3} - {fileID: 11500000, guid: efe58df89b5b74a97a123b5ed2b70422, type: 3} + - {fileID: 1696162570} + - {fileID: 1696162569} + - {fileID: 1422880104} + - {fileID: 1696162572} + - {fileID: 1873844830} + - {fileID: 1696162568} + - {fileID: 1696162571} + - {fileID: 2035179971} + - {fileID: 1873844829} + - {fileID: 1873844833} + - {fileID: 1873844832} + - {fileID: 1873844831} + - {fileID: 2035179970} + - {fileID: 2035179972} + - {fileID: 549239010} + - {fileID: 549239026} + - {fileID: 549239024} + - {fileID: 549239029} + - {fileID: 549239027} + - {fileID: 549239022} + - {fileID: 549239021} + - {fileID: 549239011} + - {fileID: 549239020} + - {fileID: 549239030} + - {fileID: 549239025} + - {fileID: 549239023} + - {fileID: 64648080} + - {fileID: 549239028} + - {fileID: 549239020} + - {fileID: 549239010} + - {fileID: 549239021} + - {fileID: 549239029} + - {fileID: 549239011} + - {fileID: 549239028} + - {fileID: 549239023} + - {fileID: 549239024} + - {fileID: 549239026} + - {fileID: 549239030} + - {fileID: 64648080} + - {fileID: 549239027} + - {fileID: 549239025} + - {fileID: 549239022} + - {fileID: 72992900} + - {fileID: 72992897} + - {fileID: 306672552} + - {fileID: 306672551} + - {fileID: 344948064} + - {fileID: 5978091752429385271} + - {fileID: 635917030} + - {fileID: 344948065} + - {fileID: 5978091752429385270} + - {fileID: 635917027} + - {fileID: 306672550} + - {fileID: 306672553} + - {fileID: 344948072} + - {fileID: 344948071} + - {fileID: 884736906} + - {fileID: 344948070} + - {fileID: 344948069} + - {fileID: 344948067} + - {fileID: 344948066} + - {fileID: 72992899} + - {fileID: 884736908} + - {fileID: 174903069} + - {fileID: 174903068} + - {fileID: 635917028} + - {fileID: 72992898} + - {fileID: 344948076} + - {fileID: 344948074} + - {fileID: 344948073} + - {fileID: 174903066} + - {fileID: 174903067} + - {fileID: 306672549} + - {fileID: 635917029} + - {fileID: 884736907} + - {fileID: 344948077} + - {fileID: 344948068} + - {fileID: 5978091752429385272} + - {fileID: 72992896} + - {fileID: 549239029} + - {fileID: 549239020} + - {fileID: 549239027} + - {fileID: 549239022} + - {fileID: 549239021} + - {fileID: 549239024} + - {fileID: 549239025} + - {fileID: 549239011} + - {fileID: 549239023} + - {fileID: 549239026} + - {fileID: 549239028} + - {fileID: 549239010} + - {fileID: 549239030} + - {fileID: 64648080} + - {fileID: 549239028} + - {fileID: 549239020} + - {fileID: 549239022} + - {fileID: 549239029} + - {fileID: 549239021} + - {fileID: 549239024} + - {fileID: 549239025} + - {fileID: 549239011} + - {fileID: 549239023} + - {fileID: 549239026} + - {fileID: 549239027} + - {fileID: 549239010} + - {fileID: 549239030} + - {fileID: 64648080} + - {fileID: 1260057673} + - {fileID: 1260057674} + - {fileID: 1260057676} + - {fileID: 1260057675} --- !u!4 &1650476989 Transform: m_ObjectHideFlags: 0 @@ -2068,6 +2192,10 @@ PrefabInstance: propertyPath: m_Name value: MainCamera objectReference: {fileID: 0} + - target: {fileID: 1537198884145590035, guid: c309ebf7d22bfc644b409dbe21ff4a7c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 1554488281934383637, guid: c309ebf7d22bfc644b409dbe21ff4a7c, type: 3} propertyPath: m_ScreenX value: 0.5 @@ -2096,6 +2224,10 @@ PrefabInstance: propertyPath: key value: MainCamera objectReference: {fileID: 0} + - target: {fileID: 4131232015906472687, guid: c309ebf7d22bfc644b409dbe21ff4a7c, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} - target: {fileID: 4131232015906472687, guid: c309ebf7d22bfc644b409dbe21ff4a7c, type: 3} propertyPath: dontDestroy value: 0 @@ -2103,7 +2235,7 @@ PrefabInstance: - target: {fileID: 4131232015906472687, guid: c309ebf7d22bfc644b409dbe21ff4a7c, type: 3} propertyPath: serializationData.Prefab value: - objectReference: {fileID: 0} + objectReference: {fileID: 4131232015906472687, guid: c309ebf7d22bfc644b409dbe21ff4a7c, type: 3} - target: {fileID: 5378738873782904110, guid: c309ebf7d22bfc644b409dbe21ff4a7c, type: 3} propertyPath: m_AssetsPPU value: 16 diff --git a/client/Assets/Ether/Scripts/Module/Extension/Common/CommonExtension.cs b/client/Assets/Ether/Scripts/Module/Extension/Common/CommonExtension.cs index e138736..b193316 100644 --- a/client/Assets/Ether/Scripts/Module/Extension/Common/CommonExtension.cs +++ b/client/Assets/Ether/Scripts/Module/Extension/Common/CommonExtension.cs @@ -12,7 +12,12 @@ using System; using System.Collections; using System.Collections.Generic; using TMPro; + +#if UNITY_EDITOR +using UnityEditor; +#endif using UnityEngine; +using UnityEngine.UI; namespace Ether { @@ -105,9 +110,72 @@ namespace Ether #endregion + + #if UNITY_EDITOR + public static void CreateComponent(GameObject selectObject, Action callBack, params Type[] types) where T : Component + { + GameObject gameObject; + + Type[] typesArray = new Type[types.Length + 1]; + + for (int i = 0; i < types.Length; i++) + { + typesArray[i] = types[i]; + } + + typesArray[types.Length] = typeof(T); + + if (selectObject != null) + { + Debug.Log($"选择物体:{selectObject.name}"); + + // 获取物体的根 Canvas + Canvas rootCanvas = selectObject.GetComponentInParent(); + Transform parentTransform; + + if (rootCanvas != null) + { + parentTransform = selectObject.transform; + } + else + { + var canvas = ObjectFactory.CreateGameObject("Canvas", typeof(Canvas), typeof(CanvasScaler), typeof(GraphicRaycaster)); + var eventSystem = ObjectFactory.CreateGameObject("EventSystem", typeof(UnityEngine.EventSystems.EventSystem), typeof(UnityEngine.EventSystems.StandaloneInputModule)); + + parentTransform = canvas.transform; + } + + gameObject = ObjectFactory.CreateGameObject($"New {typeof(T).Name}", typesArray); + gameObject.transform.SetParent(parentTransform, false); + } + else + { + var canvas = ObjectFactory.CreateGameObject("Canvas", typeof(Canvas), typeof(CanvasScaler), typeof(GraphicRaycaster)); + var eventSystem = ObjectFactory.CreateGameObject("EventSystem", typeof(UnityEngine.EventSystems.EventSystem), typeof(UnityEngine.EventSystems.StandaloneInputModule)); + + canvas.GetComponent().renderMode = RenderMode.ScreenSpaceOverlay; + Transform parentTransform = canvas.transform; + gameObject = ObjectFactory.CreateGameObject($"New {typeof(T).Name}", typesArray); + gameObject.transform.SetParent(parentTransform, false); + } + + gameObject.transform.localPosition = Vector3.zero; + gameObject.transform.localScale = new Vector3(1, 1, 1); + callBack?.Invoke(gameObject); + + EditorUtility.FocusProjectWindow(); + Selection.activeObject = gameObject; + EditorGUIUtility.PingObject(Selection.activeObject); + } + #endif + /// /// 设置物体显示和隐藏 /// + public static void SetVisible(this Component component, bool visible, Action callback = null) + { + SetVisible(component.gameObject, visible, callback); + } public static void SetVisible(this GameObject go, bool visible, Action callback = null) { if (!go) @@ -128,7 +196,7 @@ namespace Ether else { AnimController anim = go.GetComponent(); - if (anim != null) + if (anim) { anim.PlayDisableAnim(() => { diff --git a/client/Assets/Ether/Scripts/Module/Extension/UGUI/Button/ButtonEx.cs b/client/Assets/Ether/Scripts/Module/Extension/UGUI/Button/ButtonEx.cs index ac9f02a..6fb8056 100644 --- a/client/Assets/Ether/Scripts/Module/Extension/UGUI/Button/ButtonEx.cs +++ b/client/Assets/Ether/Scripts/Module/Extension/UGUI/Button/ButtonEx.cs @@ -441,53 +441,16 @@ namespace Ether #endregion #if UNITY_EDITOR - [MenuItem("GameObject/UIEx/ButtonEx", priority = 0)] + [MenuItem("GameObject/UIEx/ButtonEx", priority = -998)] private static void CreateButtonEx(MenuCommand menuCmd) { GameObject selection = Selection.activeGameObject; - - GameObject gameObject; - - if (selection != null) + + CommonExtension.CreateComponent(selection, (obj) => { - Debug.Log($"选择物体:{selection.name}"); + + }, typeof(Image)); - // 获取物体的根 Canvas - Canvas rootCanvas = selection.GetComponentInParent(); - Transform parentTransform; - - if (rootCanvas != null) - { - parentTransform = selection.transform; - } - else - { - var canvas = ObjectFactory.CreateGameObject("Canvas", typeof(Canvas), typeof(CanvasScaler), typeof(GraphicRaycaster)); - var eventSystem = ObjectFactory.CreateGameObject("EventSystem", typeof(UnityEngine.EventSystems.EventSystem), typeof(UnityEngine.EventSystems.StandaloneInputModule)); - - parentTransform = canvas.transform; - } - - gameObject = ObjectFactory.CreateGameObject("New ButtonEx", typeof(Image), typeof(ButtonEx)); - gameObject.transform.SetParent(parentTransform, false); - } - else - { - var canvas = ObjectFactory.CreateGameObject("Canvas", typeof(Canvas), typeof(CanvasScaler), typeof(GraphicRaycaster)); - var eventSystem = ObjectFactory.CreateGameObject("EventSystem", typeof(UnityEngine.EventSystems.EventSystem), typeof(UnityEngine.EventSystems.StandaloneInputModule)); - - canvas.GetComponent().renderMode = RenderMode.ScreenSpaceOverlay; - Transform parentTransform = canvas.transform; - gameObject = ObjectFactory.CreateGameObject("New ButtonEx", typeof(Image), typeof(ButtonEx)); - gameObject.transform.SetParent(parentTransform, false); - } - - gameObject.transform.localPosition = Vector3.zero; - gameObject.transform.localScale = new Vector3(1, 1, 1); - - EditorUtility.FocusProjectWindow(); - Selection.activeObject = gameObject; - EditorGUIUtility.PingObject(Selection.activeObject); } #endif diff --git a/client/Assets/Ether/Scripts/Module/Extension/UGUI/Image.meta b/client/Assets/Ether/Scripts/Module/Extension/UGUI/Image.meta new file mode 100644 index 0000000..6991e0b --- /dev/null +++ b/client/Assets/Ether/Scripts/Module/Extension/UGUI/Image.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 02a47ea2a30a43f4be3ce83dfe1b5859 +timeCreated: 1730342329 \ No newline at end of file diff --git a/client/Assets/Ether/Scripts/Module/Extension/UGUI/Image/ImageEx.cs b/client/Assets/Ether/Scripts/Module/Extension/UGUI/Image/ImageEx.cs new file mode 100644 index 0000000..0894037 --- /dev/null +++ b/client/Assets/Ether/Scripts/Module/Extension/UGUI/Image/ImageEx.cs @@ -0,0 +1,30 @@ + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace Ether +{ + public class ImageEx : Image + { + +#if UNITY_EDITOR + [MenuItem("GameObject/UIEx/ImageEx", priority = -1000)] + private static void CreateButtonEx(MenuCommand menuCmd) + { + GameObject selection = Selection.activeGameObject; + + CommonExtension.CreateComponent(selection, (obj) => + { + obj.GetComponent().raycastTarget = false; + }); + + } + +#endif + } +} diff --git a/client/Assets/Ether/Scripts/Module/Extension/UGUI/Image/ImageEx.cs.meta b/client/Assets/Ether/Scripts/Module/Extension/UGUI/Image/ImageEx.cs.meta new file mode 100644 index 0000000..133c371 --- /dev/null +++ b/client/Assets/Ether/Scripts/Module/Extension/UGUI/Image/ImageEx.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 70e78a4898214182969b5f5c1049ac6e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Ether/Scripts/Module/Extension/UGUI/InputFielld.meta b/client/Assets/Ether/Scripts/Module/Extension/UGUI/InputFielld.meta new file mode 100644 index 0000000..47b9a31 --- /dev/null +++ b/client/Assets/Ether/Scripts/Module/Extension/UGUI/InputFielld.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: db4d6bc81622597438b97a60f098cce7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Ether/Scripts/Module/Extension/UGUI/InputFielld/InputFielldEx.cs b/client/Assets/Ether/Scripts/Module/Extension/UGUI/InputFielld/InputFielldEx.cs new file mode 100644 index 0000000..955d5c5 --- /dev/null +++ b/client/Assets/Ether/Scripts/Module/Extension/UGUI/InputFielld/InputFielldEx.cs @@ -0,0 +1,30 @@ + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace Ether +{ + public class InputFielldEx : InputField + { + +#if UNITY_EDITOR + [MenuItem("GameObject/UIEx/InputFielldEx", priority = -996)] + private static void CreateButtonEx(MenuCommand menuCmd) + { + GameObject selection = Selection.activeGameObject; + + CommonExtension.CreateComponent(selection, (obj) => + { + + }); + + } + +#endif + } +} diff --git a/client/Assets/Ether/Scripts/Module/Extension/UGUI/InputFielld/InputFielldEx.cs.meta b/client/Assets/Ether/Scripts/Module/Extension/UGUI/InputFielld/InputFielldEx.cs.meta new file mode 100644 index 0000000..a2778a7 --- /dev/null +++ b/client/Assets/Ether/Scripts/Module/Extension/UGUI/InputFielld/InputFielldEx.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e8808c5ebbc3a734f8e70b53850b6f9c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Ether/Scripts/Module/Extension/UGUI/ScrollView/ScrollViewGridEx.cs b/client/Assets/Ether/Scripts/Module/Extension/UGUI/ScrollView/ScrollViewGridEx.cs index dd49d71..a42caa9 100644 --- a/client/Assets/Ether/Scripts/Module/Extension/UGUI/ScrollView/ScrollViewGridEx.cs +++ b/client/Assets/Ether/Scripts/Module/Extension/UGUI/ScrollView/ScrollViewGridEx.cs @@ -286,84 +286,48 @@ namespace Ether } #if UNITY_EDITOR - [MenuItem("GameObject/UIEx/ScrollViewEx/ScrollViewGridEx", priority = 1)] + [MenuItem("GameObject/UIEx/ScrollViewEx/ScrollViewGridEx", priority = -990)] private static void CreateScrollViewEx(MenuCommand menuCmd) { GameObject selection = Selection.activeGameObject; - - GameObject gameObject; - - if (selection != null) + + CommonExtension.CreateComponent(selection, (obj) => { - Debug.Log($"选择物体:{selection.name}"); + obj.SetWidth(800); + obj.SetHeight(600); - // 获取物体的根 Canvas - Canvas rootCanvas = selection.GetComponentInParent(); - Transform parentTransform; + GameObject viewport = ObjectFactory.CreateGameObject("Viewport", typeof(Image), typeof(Mask)); + viewport.transform.SetParent(obj.transform, false); + RectTransform viewportRect = viewport.GetComponent(); + viewportRect.anchorMin = new Vector2(0, 0); + viewportRect.anchorMax = new Vector2(1, 1); + viewportRect.pivot = new Vector2(0, 1); + viewport.SetWidth(0); + viewport.SetHeight(0); + Mask viewportMask = viewport.GetComponent(); + viewportMask.showMaskGraphic = false; - if (rootCanvas != null) - { - parentTransform = selection.transform; - } - else - { - var canvas = ObjectFactory.CreateGameObject("Canvas", typeof(Canvas), typeof(CanvasScaler), typeof(GraphicRaycaster)); - var eventSystem = ObjectFactory.CreateGameObject("EventSystem", typeof(UnityEngine.EventSystems.EventSystem), typeof(UnityEngine.EventSystems.StandaloneInputModule)); + GameObject content = ObjectFactory.CreateGameObject("Content", typeof(RectTransform)); + content.transform.SetParent(viewport.transform, false); + RectTransform contentRect = content.GetComponent(); + contentRect.anchorMin = new Vector2(0, 1); + contentRect.anchorMax = new Vector2(0, 1); + contentRect.pivot = new Vector2(0, 1); + content.SetWidth(800); + content.SetHeight(600); - parentTransform = canvas.transform; - } + ScrollRect scrollRect = obj.GetComponent(); + scrollRect.content = contentRect; + scrollRect.viewport = viewportRect; + scrollRect.horizontal = false; + scrollRect.vertical = true; - gameObject = ObjectFactory.CreateGameObject("New ScrollViewEx", typeof(ScrollViewGridEx), typeof(ScrollRect), typeof(Canvas)); - gameObject.transform.SetParent(parentTransform, false); - } - else - { - var canvas = ObjectFactory.CreateGameObject("Canvas", typeof(Canvas), typeof(CanvasScaler), typeof(GraphicRaycaster)); - var eventSystem = ObjectFactory.CreateGameObject("EventSystem", typeof(UnityEngine.EventSystems.EventSystem), typeof(UnityEngine.EventSystems.StandaloneInputModule)); + ScrollViewGridEx scrollViewEx = obj.GetComponent(); + scrollViewEx.content = contentRect; - canvas.GetComponent().renderMode = RenderMode.ScreenSpaceOverlay; - Transform parentTransform = canvas.transform; - gameObject = ObjectFactory.CreateGameObject("New ScrollViewEx", typeof(ScrollViewGridEx), typeof(ScrollRect), typeof(Canvas)); - gameObject.transform.SetParent(parentTransform, false); - } + }, typeof(Canvas)); - gameObject.transform.localPosition = Vector3.zero; - gameObject.transform.localScale = new Vector3(1, 1, 1); - gameObject.SetWidth(800); - gameObject.SetHeight(600); - GameObject viewport = ObjectFactory.CreateGameObject("Viewport", typeof(Image), typeof(Mask)); - viewport.transform.SetParent(gameObject.transform, false); - RectTransform viewportRect = viewport.GetComponent(); - viewportRect.anchorMin = new Vector2(0, 0); - viewportRect.anchorMax = new Vector2(1, 1); - viewportRect.pivot = new Vector2(0, 1); - viewport.SetWidth(0); - viewport.SetHeight(0); - Mask viewportMask = viewport.GetComponent(); - viewportMask.showMaskGraphic = false; - - GameObject content = ObjectFactory.CreateGameObject("Content", typeof(RectTransform)); - content.transform.SetParent(viewport.transform, false); - RectTransform contentRect = content.GetComponent(); - contentRect.anchorMin = new Vector2(0, 1); - contentRect.anchorMax = new Vector2(0, 1); - contentRect.pivot = new Vector2(0, 1); - content.SetWidth(800); - content.SetHeight(600); - - ScrollRect scrollRect = gameObject.GetComponent(); - scrollRect.content = contentRect; - scrollRect.viewport = viewportRect; - scrollRect.horizontal = false; - scrollRect.vertical = true; - - ScrollViewGridEx scrollViewEx = gameObject.GetComponent(); - scrollViewEx.content = contentRect; - - EditorUtility.FocusProjectWindow(); - Selection.activeObject = gameObject; - EditorGUIUtility.PingObject(Selection.activeObject); } #endif diff --git a/client/Assets/Ether/Scripts/Module/Extension/UGUI/Text/TextEx.cs b/client/Assets/Ether/Scripts/Module/Extension/UGUI/Text/TextEx.cs index 4a83219..0fe242f 100644 --- a/client/Assets/Ether/Scripts/Module/Extension/UGUI/Text/TextEx.cs +++ b/client/Assets/Ether/Scripts/Module/Extension/UGUI/Text/TextEx.cs @@ -12,7 +12,11 @@ using System.Collections; using System.Collections.Generic; using System.Text.RegularExpressions; using TMPro; +using UnityEngine.UI; using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif namespace Ether { @@ -74,5 +78,19 @@ namespace Ether { textPreprocessor = new TextExPreprocesser(); } + +#if UNITY_EDITOR + [MenuItem("GameObject/UIEx/TextEx", priority = -999)] + private static void CreateToggleEx(MenuCommand menuCmd) + { + GameObject selection = Selection.activeGameObject; + + CommonExtension.CreateComponent(selection, (obj) => + { + obj.GetComponent().raycastTarget = false; + }); + } + +#endif } } diff --git a/client/Assets/Ether/Scripts/Module/Extension/UGUI/Toggle/ToggleEx.cs b/client/Assets/Ether/Scripts/Module/Extension/UGUI/Toggle/ToggleEx.cs index 30545fc..5e83212 100644 --- a/client/Assets/Ether/Scripts/Module/Extension/UGUI/Toggle/ToggleEx.cs +++ b/client/Assets/Ether/Scripts/Module/Extension/UGUI/Toggle/ToggleEx.cs @@ -2,6 +2,9 @@ using Sirenix.OdinInspector; using System.Collections; using System.Collections.Generic; +#if UNITY_EDITOR +using UnityEditor; +#endif using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; @@ -71,7 +74,7 @@ namespace Ether checkRoot?.SetActive(isOn); uncheckRoot?.SetActive(!isOn); - if (isOn && toggleGroup != null) + if (isOn && toggleGroup) { toggleGroup.SetToggleSelected(this); } @@ -137,6 +140,21 @@ namespace Ether { } + + +#if UNITY_EDITOR + [MenuItem("GameObject/UIEx/ToggleEx", priority = -997)] + private static void CreateToggleEx(MenuCommand menuCmd) + { + GameObject selection = Selection.activeGameObject; + + CommonExtension.CreateComponent(selection, (obj) => + { + obj.GetComponent().color = new Color(1, 1, 1, 0); + }, typeof(Image)); + } + +#endif } } diff --git a/client/Assets/Resources/Config/GlobalSettings.asset b/client/Assets/Resources/Config/GlobalSettings.asset index 7d1987e..1c123d7 100644 --- a/client/Assets/Resources/Config/GlobalSettings.asset +++ b/client/Assets/Resources/Config/GlobalSettings.asset @@ -12,5 +12,5 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c5ac578b65530ce44be05b4dd02c3247, type: 3} m_Name: GlobalSettings m_EditorClassIdentifier: - startFrame: LoginFrame - startScence: Login + startFrame: + startScence: Boot