From b18fc0191273dba7da3f2cf8da15a6495b1793c6 Mon Sep 17 00:00:00 2001 From: BobSong <605277374@qq.com> Date: Thu, 12 Mar 2026 00:22:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Plugins/FairyGUI.meta | 8 + Assets/Plugins/FairyGUI/Editor.meta | 8 + Assets/Plugins/FairyGUI/Examples.meta | 9 + Assets/Plugins/FairyGUI/Examples/Bag.meta | 9 + .../Plugins/FairyGUI/Examples/Bag/BagMain.cs | 36 + .../FairyGUI/Examples/Bag/BagMain.cs.meta | 12 + .../FairyGUI/Examples/Bag/BagWindow.cs | 49 + .../FairyGUI/Examples/Bag/BagWindow.cs.meta | 12 + .../FairyGUI/Examples/Bag/IconManager.cs | 188 + .../FairyGUI/Examples/Bag/IconManager.cs.meta | 12 + .../FairyGUI/Examples/Bag/MyGLoader.cs | 33 + .../FairyGUI/Examples/Bag/MyGLoader.cs.meta | 12 + Assets/Plugins/FairyGUI/Examples/Basics.meta | 9 + .../FairyGUI/Examples/Basics/BasicsMain.cs | 441 + .../Examples/Basics/BasicsMain.cs.meta | 12 + .../FairyGUI/Examples/Basics/Window1.cs | 29 + .../FairyGUI/Examples/Basics/Window1.cs.meta | 12 + .../FairyGUI/Examples/Basics/Window2.cs | 39 + .../FairyGUI/Examples/Basics/Window2.cs.meta | 12 + .../FairyGUI/Examples/BundleUsage.meta | 9 + .../Examples/BundleUsage/BundleUsageMain.cs | 86 + .../BundleUsage/BundleUsageMain.cs.meta | 12 + .../Plugins/FairyGUI/Examples/Cooldown.meta | 9 + .../Examples/Cooldown/CooldownMain.cs | 57 + .../Examples/Cooldown/CooldownMain.cs.meta | 12 + Assets/Plugins/FairyGUI/Examples/Curve.meta | 9 + .../FairyGUI/Examples/Curve/CurveMain.cs | 58 + .../FairyGUI/Examples/Curve/CurveMain.cs.meta | 12 + .../Plugins/FairyGUI/Examples/CutScene.meta | 9 + .../Examples/CutScene/CutSceneMain.cs | 28 + .../Examples/CutScene/CutSceneMain.cs.meta | 12 + .../Examples/CutScene/LevelManager.cs | 82 + .../Examples/CutScene/LevelManager.cs.meta | 12 + Assets/Plugins/FairyGUI/Examples/Editor.meta | 9 + .../Examples/Editor/BuildAssetBundles.cs | 33 + .../Examples/Editor/BuildAssetBundles.cs.meta | 12 + .../FairyGUI/Examples/EmitNumbers.meta | 9 + .../Examples/EmitNumbers/EmitComponent.cs | 94 + .../EmitNumbers/EmitComponent.cs.meta | 12 + .../Examples/EmitNumbers/EmitManager.cs | 50 + .../Examples/EmitNumbers/EmitManager.cs.meta | 12 + .../Examples/EmitNumbers/EmitNumbersMain.cs | 44 + .../EmitNumbers/EmitNumbersMain.cs.meta | 12 + Assets/Plugins/FairyGUI/Examples/Emoji.meta | 9 + .../FairyGUI/Examples/Emoji/EmojiMain.cs | 196 + .../FairyGUI/Examples/Emoji/EmojiMain.cs.meta | 12 + .../FairyGUI/Examples/Emoji/EmojiParser.cs | 31 + .../Examples/Emoji/EmojiParser.cs.meta | 12 + .../Plugins/FairyGUI/Examples/Extension.meta | 9 + .../Examples/Extension/ExtensionMain.cs | 55 + .../Examples/Extension/ExtensionMain.cs.meta | 12 + .../FairyGUI/Examples/Extension/MailItem.cs | 41 + .../Examples/Extension/MailItem.cs.meta | 12 + Assets/Plugins/FairyGUI/Examples/Filter.meta | 9 + .../FairyGUI/Examples/Filter/FilterMain.cs | 78 + .../Examples/Filter/FilterMain.cs.meta | 12 + Assets/Plugins/FairyGUI/Examples/Gesture.meta | 9 + .../FairyGUI/Examples/Gesture/GestureMain.cs | 115 + .../Examples/Gesture/GestureMain.cs.meta | 12 + Assets/Plugins/FairyGUI/Examples/Guide.meta | 9 + .../FairyGUI/Examples/Guide/GuideMain.cs | 44 + .../FairyGUI/Examples/Guide/GuideMain.cs.meta | 12 + Assets/Plugins/FairyGUI/Examples/HeadBar.meta | 9 + .../FairyGUI/Examples/HeadBar/HeadBarMain.cs | 34 + .../Examples/HeadBar/HeadBarMain.cs.meta | 12 + Assets/Plugins/FairyGUI/Examples/HitTest.meta | 9 + .../FairyGUI/Examples/HitTest/HitTestMain.cs | 40 + .../Examples/HitTest/HitTestMain.cs.meta | 12 + .../Plugins/FairyGUI/Examples/Joystick.meta | 9 + .../Examples/Joystick/JoystickMain.cs | 42 + .../Examples/Joystick/JoystickMain.cs.meta | 12 + .../Examples/Joystick/JoystickModule.cs | 159 + .../Examples/Joystick/JoystickModule.cs.meta | 12 + .../Plugins/FairyGUI/Examples/LoopList.meta | 9 + .../Examples/LoopList/LoopListMain.cs | 63 + .../Examples/LoopList/LoopListMain.cs.meta | 12 + .../FairyGUI/Examples/ModalWaiting.meta | 9 + .../Examples/ModalWaiting/ModalWaitingMain.cs | 47 + .../ModalWaiting/ModalWaitingMain.cs.meta | 12 + .../FairyGUI/Examples/ModalWaiting/Window4.cs | 20 + .../Examples/ModalWaiting/Window4.cs.meta | 12 + Assets/Plugins/FairyGUI/Examples/Model.meta | 9 + .../FairyGUI/Examples/Model/ModelMain.cs | 30 + .../FairyGUI/Examples/Model/ModelMain.cs.meta | 12 + .../Plugins/FairyGUI/Examples/Particles.meta | 9 + .../Examples/Particles/CoolComponent.cs | 16 + .../Examples/Particles/CoolComponent.cs.meta | 12 + .../Examples/Particles/ParticlesMain.cs | 37 + .../Examples/Particles/ParticlesMain.cs.meta | 12 + .../Plugins/FairyGUI/Examples/Perspetive.meta | 9 + .../Examples/Perspetive/PerspectiveMain.cs | 29 + .../Perspetive/PerspectiveMain.cs.meta | 12 + .../FairyGUI/Examples/PullToRefresh.meta | 9 + .../PullToRefresh/PullToRefreshMain.cs | 98 + .../PullToRefresh/PullToRefreshMain.cs.meta | 12 + .../PullToRefresh/ScrollPaneHeader.cs | 37 + .../PullToRefresh/ScrollPaneHeader.cs.meta | 12 + .../FairyGUI/Examples/RenderTexture.meta | 9 + .../Examples/RenderTexture/RenderImage.cs | 292 + .../RenderTexture/RenderImage.cs.meta | 12 + .../RenderTexture/RenderTextureMain.cs | 28 + .../RenderTexture/RenderTextureMain.cs.meta | 12 + .../Examples/RenderTexture/Window3.cs | 52 + .../Examples/RenderTexture/Window3.cs.meta | 12 + .../Plugins/FairyGUI/Examples/Resources.meta | 9 + .../FairyGUI/Examples/Resources/Cooldown.meta | 9 + .../Examples/Resources/Cooldown/k0.png | Bin 0 -> 6451 bytes .../Examples/Resources/Cooldown/k0.png.meta | 56 + .../Examples/Resources/Cooldown/k1.png | Bin 0 -> 17540 bytes .../Examples/Resources/Cooldown/k1.png.meta | 56 + .../FairyGUI/Examples/Resources/Curve.meta | 9 + .../Examples/Resources/Curve/New Material.mat | 108 + .../Resources/Curve/New Material.mat.meta | 8 + .../Examples/Resources/Curve/aomian.FBX | Bin 0 -> 20416 bytes .../Examples/Resources/Curve/aomian.FBX.meta | 95 + .../Examples/Resources/EffectExamples.meta | 10 + .../EffectExamples/FireExplosionEffects.meta | 10 + .../FireExplosionEffects/Materials.meta | 10 + .../Materials/EmbersParticle.mat | 139 + .../Materials/EmbersParticle.mat.meta | 8 + .../Materials/FlameRoundYellowParticle.mat | 142 + .../FlameRoundYellowParticle.mat.meta | 8 + .../FireExplosionEffects/Textures.meta | 10 + .../Textures/FlameRoundParticleSheet.tif | Bin 0 -> 2099472 bytes .../Textures/FlameRoundParticleSheet.tif.meta | 68 + .../Resources/EffectExamples/Shared.meta | 10 + .../EffectExamples/Shared/Prefabs.meta | 10 + .../Shared/Prefabs/ParticlesLight.prefab | 76 + .../Shared/Prefabs/ParticlesLight.prefab.meta | 8 + .../FairyGUI/Examples/Resources/Flame.prefab | 10071 ++++++++++++++++ .../Examples/Resources/Flame.prefab.meta | 8 + .../FairyGUI/Examples/Resources/Fonts.meta | 9 + .../Resources/Fonts/LiberationSans SDF.asset | 1602 +++ .../Fonts/LiberationSans SDF.asset.meta | 8 + .../Resources/Fonts/LiberationSans.ttf | Bin 0 -> 350200 bytes .../Resources/Fonts/LiberationSans.ttf.meta | 19 + .../Examples/Resources/Fonts/afont.ttf | Bin 0 -> 772192 bytes .../Examples/Resources/Fonts/afont.ttf.meta | 22 + .../FairyGUI/Examples/Resources/Gesture.meta | 9 + .../Resources/Gesture/Globe Material.mat | 77 + .../Resources/Gesture/Globe Material.mat.meta | 8 + .../Examples/Resources/Gesture/globe.png | Bin 0 -> 7656786 bytes .../Examples/Resources/Gesture/globe.png.meta | 56 + .../FairyGUI/Examples/Resources/Icons.meta | 9 + .../FairyGUI/Examples/Resources/Icons/i0.png | Bin 0 -> 20244 bytes .../Examples/Resources/Icons/i0.png.meta | 54 + .../FairyGUI/Examples/Resources/Icons/i1.png | Bin 0 -> 19414 bytes .../Examples/Resources/Icons/i1.png.meta | 54 + .../FairyGUI/Examples/Resources/Icons/i2.png | Bin 0 -> 20536 bytes .../Examples/Resources/Icons/i2.png.meta | 54 + .../FairyGUI/Examples/Resources/Icons/i3.png | Bin 0 -> 25074 bytes .../Examples/Resources/Icons/i3.png.meta | 54 + .../FairyGUI/Examples/Resources/Icons/i4.png | Bin 0 -> 17390 bytes .../Examples/Resources/Icons/i4.png.meta | 54 + .../FairyGUI/Examples/Resources/Icons/i5.png | Bin 0 -> 7715 bytes .../Examples/Resources/Icons/i5.png.meta | 54 + .../FairyGUI/Examples/Resources/Icons/i6.png | Bin 0 -> 16015 bytes .../Examples/Resources/Icons/i6.png.meta | 54 + .../FairyGUI/Examples/Resources/Icons/i7.png | Bin 0 -> 19068 bytes .../Examples/Resources/Icons/i7.png.meta | 54 + .../FairyGUI/Examples/Resources/Icons/i8.png | Bin 0 -> 20445 bytes .../Examples/Resources/Icons/i8.png.meta | 54 + .../FairyGUI/Examples/Resources/Icons/i9.png | Bin 0 -> 18053 bytes .../Examples/Resources/Icons/i9.png.meta | 54 + .../Examples/Resources/RenderTexture.meta | 9 + .../Resources/RenderTexture/FullScreen.shader | 69 + .../RenderTexture/FullScreen.shader.meta | 5 + .../RenderTexture/RenderImageCamera.prefab | 77 + .../RenderImageCamera.prefab.meta | 4 + .../FairyGUI/Examples/Resources/Role.meta | 9 + .../Examples/Resources/Role/Materials.meta | 9 + .../Role/Materials/Role-Diffuse.shader | 122 + .../Role/Materials/Role-Diffuse.shader.meta | 10 + .../Resources/Role/Materials/U1NPC0040.mat | 95 + .../Role/Materials/U1NPC0040.mat.meta | 8 + .../Resources/Role/Materials/U1NPC0041.mat | 97 + .../Role/Materials/U1NPC0041.mat.meta | 10 + .../Examples/Resources/Role/Textures.meta | 7 + .../Resources/Role/Textures/U1NPC0040.tga | Bin 0 -> 262188 bytes .../Role/Textures/U1NPC0040.tga.meta | 47 + .../Resources/Role/npc-with-hud.prefab | 3364 ++++++ .../Resources/Role/npc-with-hud.prefab.meta | 8 + .../FairyGUI/Examples/Resources/Role/npc.FBX | Bin 0 -> 1729712 bytes .../Examples/Resources/Role/npc.FBX.meta | 332 + .../Examples/Resources/Role/npc.prefab | 2795 +++++ .../Examples/Resources/Role/npc.prefab.meta | 10 + .../FairyGUI/Examples/Resources/Role/npc2.FBX | Bin 0 -> 1729712 bytes .../Examples/Resources/Role/npc2.FBX.meta | 309 + .../Examples/Resources/Role/npc3.prefab | 2795 +++++ .../Examples/Resources/Role/npc3.prefab.meta | 10 + .../FairyGUI/Examples/Resources/UI.meta | 9 + .../Examples/Resources/UI/Bag_atlas0.png | Bin 0 -> 153146 bytes .../Examples/Resources/UI/Bag_atlas0.png.meta | 99 + .../Examples/Resources/UI/Bag_fui.bytes | Bin 0 -> 5752 bytes .../Examples/Resources/UI/Bag_fui.bytes.meta | 7 + .../Examples/Resources/UI/Basics_atlas0.png | Bin 0 -> 886386 bytes .../Resources/UI/Basics_atlas0.png.meta | 99 + .../Examples/Resources/UI/Basics_fui.bytes | Bin 0 -> 77984 bytes .../Resources/UI/Basics_fui.bytes.meta | 7 + .../Examples/Resources/UI/Basics_gojg7u.wav | Bin 0 -> 1172 bytes .../Resources/UI/Basics_gojg7u.wav.meta | 22 + .../Examples/Resources/UI/Basics_o4lt7w.wav | Bin 0 -> 510 bytes .../Resources/UI/Basics_o4lt7w.wav.meta | 22 + .../Resources/UI/BundleUsage_atlas0.png | Bin 0 -> 56655 bytes .../Resources/UI/BundleUsage_atlas0.png.meta | 99 + .../Resources/UI/BundleUsage_fui.bytes | Bin 0 -> 680 bytes .../Resources/UI/BundleUsage_fui.bytes.meta | 7 + .../Examples/Resources/UI/Cooldown_atlas0.png | Bin 0 -> 64228 bytes .../Resources/UI/Cooldown_atlas0.png.meta | 99 + .../Examples/Resources/UI/Cooldown_fui.bytes | Bin 0 -> 3318 bytes .../Resources/UI/Cooldown_fui.bytes.meta | 7 + .../Examples/Resources/UI/Curve_atlas0.png | Bin 0 -> 982807 bytes .../Resources/UI/Curve_atlas0.png.meta | 99 + .../Examples/Resources/UI/Curve_fui.bytes | Bin 0 -> 1543 bytes .../Resources/UI/Curve_fui.bytes.meta | 7 + .../Examples/Resources/UI/CutScene_atlas0.png | Bin 0 -> 48281 bytes .../Resources/UI/CutScene_atlas0.png.meta | 99 + .../Examples/Resources/UI/CutScene_fui.bytes | Bin 0 -> 3047 bytes .../Resources/UI/CutScene_fui.bytes.meta | 7 + .../Resources/UI/EmitNumbers_atlas0.png | Bin 0 -> 32172 bytes .../Resources/UI/EmitNumbers_atlas0.png.meta | 99 + .../Resources/UI/EmitNumbers_fui.bytes | Bin 0 -> 3119 bytes .../Resources/UI/EmitNumbers_fui.bytes.meta | 7 + .../Examples/Resources/UI/Emoji_atlas0.png | Bin 0 -> 397386 bytes .../Resources/UI/Emoji_atlas0.png.meta | 99 + .../Examples/Resources/UI/Emoji_fui.bytes | Bin 0 -> 16499 bytes .../Resources/UI/Emoji_fui.bytes.meta | 7 + .../Resources/UI/Extension_atlas0.png | Bin 0 -> 62522 bytes .../Resources/UI/Extension_atlas0.png.meta | 99 + .../Examples/Resources/UI/Extension_fui.bytes | Bin 0 -> 2445 bytes .../Resources/UI/Extension_fui.bytes.meta | 7 + .../Examples/Resources/UI/Filter_atlas0.png | Bin 0 -> 157949 bytes .../Resources/UI/Filter_atlas0.png.meta | 99 + .../Examples/Resources/UI/Filter_fui.bytes | Bin 0 -> 4128 bytes .../Resources/UI/Filter_fui.bytes.meta | 7 + .../Examples/Resources/UI/Gesture_fui.bytes | Bin 0 -> 503 bytes .../Resources/UI/Gesture_fui.bytes.meta | 7 + .../Examples/Resources/UI/Guide_atlas0.png | Bin 0 -> 117227 bytes .../Resources/UI/Guide_atlas0.png.meta | 99 + .../Examples/Resources/UI/Guide_fui.bytes | Bin 0 -> 3552 bytes .../Resources/UI/Guide_fui.bytes.meta | 7 + .../Examples/Resources/UI/HeadBar_atlas0.png | Bin 0 -> 36766 bytes .../Resources/UI/HeadBar_atlas0.png.meta | 99 + .../Examples/Resources/UI/HeadBar_fui.bytes | Bin 0 -> 1916 bytes .../Resources/UI/HeadBar_fui.bytes.meta | 7 + .../Examples/Resources/UI/HitTest_atlas0.png | Bin 0 -> 130942 bytes .../Resources/UI/HitTest_atlas0.png.meta | 99 + .../Examples/Resources/UI/HitTest_fui.bytes | Bin 0 -> 4715 bytes .../Resources/UI/HitTest_fui.bytes.meta | 7 + .../Examples/Resources/UI/Joystick_atlas0.png | Bin 0 -> 40748 bytes .../Resources/UI/Joystick_atlas0.png.meta | 99 + .../Examples/Resources/UI/Joystick_fui.bytes | Bin 0 -> 1214 bytes .../Resources/UI/Joystick_fui.bytes.meta | 7 + .../Examples/Resources/UI/LoopList_atlas0.png | Bin 0 -> 982807 bytes .../Resources/UI/LoopList_atlas0.png.meta | 99 + .../Examples/Resources/UI/LoopList_fui.bytes | Bin 0 -> 1526 bytes .../Resources/UI/LoopList_fui.bytes.meta | 7 + .../Resources/UI/ModalWaiting_atlas0.png | Bin 0 -> 90985 bytes .../Resources/UI/ModalWaiting_atlas0.png.meta | 99 + .../Resources/UI/ModalWaiting_fui.bytes | Bin 0 -> 4061 bytes .../Resources/UI/ModalWaiting_fui.bytes.meta | 7 + .../Examples/Resources/UI/Model_atlas0.png | Bin 0 -> 764651 bytes .../Resources/UI/Model_atlas0.png.meta | 99 + .../Examples/Resources/UI/Model_fui.bytes | Bin 0 -> 1086 bytes .../Resources/UI/Model_fui.bytes.meta | 7 + .../Resources/UI/Particles_atlas0.png | Bin 0 -> 764536 bytes .../Resources/UI/Particles_atlas0.png.meta | 99 + .../Examples/Resources/UI/Particles_fui.bytes | Bin 0 -> 1579 bytes .../Resources/UI/Particles_fui.bytes.meta | 7 + .../Resources/UI/Perspective_atlas0.png | Bin 0 -> 203758 bytes .../Resources/UI/Perspective_atlas0.png.meta | 99 + .../Resources/UI/Perspective_fui.bytes | Bin 0 -> 4106 bytes .../Resources/UI/Perspective_fui.bytes.meta | 7 + .../Resources/UI/PullToRefresh_atlas0.png | Bin 0 -> 19888 bytes .../UI/PullToRefresh_atlas0.png.meta | 99 + .../Resources/UI/PullToRefresh_fui.bytes | Bin 0 -> 3819 bytes .../Resources/UI/PullToRefresh_fui.bytes.meta | 7 + .../Resources/UI/RenderTexture_atlas0.png | Bin 0 -> 254358 bytes .../UI/RenderTexture_atlas0.png.meta | 99 + .../Resources/UI/RenderTexture_fui.bytes | Bin 0 -> 4209 bytes .../Resources/UI/RenderTexture_fui.bytes.meta | 7 + .../Resources/UI/ScrollPane_atlas0.png | Bin 0 -> 18347 bytes .../Resources/UI/ScrollPane_atlas0.png.meta | 99 + .../Resources/UI/ScrollPane_fui.bytes | Bin 0 -> 2815 bytes .../Resources/UI/ScrollPane_fui.bytes.meta | 7 + .../Resources/UI/TextMeshPro_atlas0.png | Bin 0 -> 13197 bytes .../Resources/UI/TextMeshPro_atlas0.png.meta | 153 + .../Resources/UI/TextMeshPro_fui.bytes | Bin 0 -> 1330 bytes .../Resources/UI/TextMeshPro_fui.bytes.meta | 7 + .../Resources/UI/Transition_atlas0.png | Bin 0 -> 1327482 bytes .../Resources/UI/Transition_atlas0.png.meta | 99 + .../Resources/UI/Transition_fui.bytes | Bin 0 -> 11630 bytes .../Resources/UI/Transition_fui.bytes.meta | 7 + .../Resources/UI/Transition_gkq03.wav | Bin 0 -> 21740 bytes .../Resources/UI/Transition_gkq03.wav.meta | 22 + .../Examples/Resources/UI/TreeView_atlas0.png | Bin 0 -> 42642 bytes .../Resources/UI/TreeView_atlas0.png.meta | 99 + .../Examples/Resources/UI/TreeView_fui.bytes | Bin 0 -> 3234 bytes .../Resources/UI/TreeView_fui.bytes.meta | 7 + .../Examples/Resources/UI/TurnCard_atlas0.png | Bin 0 -> 376677 bytes .../Resources/UI/TurnCard_atlas0.png.meta | 99 + .../Examples/Resources/UI/TurnCard_fui.bytes | Bin 0 -> 1283 bytes .../Resources/UI/TurnCard_fui.bytes.meta | 7 + .../Examples/Resources/UI/TurnPage_atlas0.png | Bin 0 -> 552677 bytes .../Resources/UI/TurnPage_atlas0.png.meta | 99 + .../Examples/Resources/UI/TurnPage_fui.bytes | Bin 0 -> 6517 bytes .../Resources/UI/TurnPage_fui.bytes.meta | 7 + .../Resources/UI/TypingEffect_atlas0.png | Bin 0 -> 19857 bytes .../Resources/UI/TypingEffect_atlas0.png.meta | 99 + .../Resources/UI/TypingEffect_fui.bytes | Bin 0 -> 2594 bytes .../Resources/UI/TypingEffect_fui.bytes.meta | 7 + .../Resources/UI/VirtualList_atlas0.png | Bin 0 -> 62522 bytes .../Resources/UI/VirtualList_atlas0.png.meta | 99 + .../Resources/UI/VirtualList_fui.bytes | Bin 0 -> 3471 bytes .../Resources/UI/VirtualList_fui.bytes.meta | 7 + Assets/Plugins/FairyGUI/Examples/Scenes.meta | 9 + .../Examples/Scenes/Example 01 - Basics.unity | 408 + .../Scenes/Example 01 - Basics.unity.meta | 4 + .../Examples/Scenes/Example 02 - Bag.unity | 379 + .../Scenes/Example 02 - Bag.unity.meta | 8 + .../Scenes/Example 03 - CoolDown.unity | 379 + .../Scenes/Example 03 - CoolDown.unity.meta | 8 + .../Examples/Scenes/Example 04 - Emoji.unity | 379 + .../Scenes/Example 04 - Emoji.unity.meta | 8 + .../Scenes/Example 05 - Joystick.unity | 447 + .../Scenes/Example 05 - Joystick.unity.meta | 8 + .../Scenes/Example 06 - HeadBar.unity | 6728 +++++++++++ .../Scenes/Example 06 - HeadBar.unity.meta | 8 + .../Scenes/Example 07 - EmitNumbers.unity | 6871 +++++++++++ .../Example 07 - EmitNumbers.unity.meta | 8 + .../Scenes/Example 08 - Transition.unity | 379 + .../Scenes/Example 08 - Transition.unity.meta | 8 + .../Scenes/Example 09 - Extension.unity | 379 + .../Scenes/Example 09 - Extension.unity.meta | 8 + .../Scenes/Example 10 - ModalWaiting.unity | 447 + .../Example 10 - ModalWaiting.unity.meta | 8 + .../Scenes/Example 11 - CutScene.unity | 289 + .../Scenes/Example 11 - CutScene.unity.meta | 8 + .../Scenes/Example 12 - RenderTexture.unity | 447 + .../Example 12 - RenderTexture.unity.meta | 8 + .../Scenes/Example 13 - Particles.unity | 447 + .../Scenes/Example 13 - Particles.unity.meta | 8 + .../Scenes/Example 14 - BundleUsage.unity | 247 + .../Example 14 - BundleUsage.unity.meta | 8 + .../Scenes/Example 15 - VirtualList.unity | 379 + .../Example 15 - VirtualList.unity.meta | 8 + .../Scenes/Example 16 - LoopList.unity | 379 + .../Scenes/Example 16 - LoopList.unity.meta | 8 + .../Examples/Scenes/Example 17 - Model.unity | 379 + .../Scenes/Example 17 - Model.unity.meta | 8 + .../Examples/Scenes/Example 18 - Guide.unity | 447 + .../Scenes/Example 18 - Guide.unity.meta | 8 + .../Scenes/Example 19 - HitTest.unity | 648 + .../Scenes/Example 19 - HitTest.unity.meta | 8 + .../Examples/Scenes/Example 20 - 3D UI.unity | 581 + .../Scenes/Example 20 - 3D UI.unity.meta | 8 + .../Scenes/Example 21 - Curve UI.unity | 426 + .../Scenes/Example 21 - Curve UI.unity.meta | 8 + .../Scenes/Example 22 - Gesture.unity | 515 + .../Scenes/Example 22 - Gesture.unity.meta | 8 + .../Examples/Scenes/Example 23 - Filter.unity | 379 + .../Scenes/Example 23 - Filter.unity.meta | 8 + .../Scenes/Example 24 - TurnCard.unity | 379 + .../Scenes/Example 24 - TurnCard.unity.meta | 8 + .../Scenes/Example 25 - TreeView.unity | 379 + .../Scenes/Example 25 - TreeView.unity.meta | 8 + .../Scenes/Example 26 - PullToRefresh.unity | 379 + .../Example 26 - PullToRefresh.unity.meta | 8 + .../Scenes/Example 27 - ScrollPane.unity | 379 + .../Scenes/Example 27 - ScrollPane.unity.meta | 8 + .../Scenes/Example 28 - TypingEffect.unity | 379 + .../Example 28 - TypingEffect.unity.meta | 8 + .../Scenes/Example 29 - TurnPage.unity | 379 + .../Scenes/Example 29 - TurnPage.unity.meta | 9 + .../Scenes/Example 30 - TextMeshPro.unity | 510 + .../Example 30 - TextMeshPro.unity.meta | 8 + .../FairyGUI/Examples/Scenes/scene1.unity | 6757 +++++++++++ .../Examples/Scenes/scene1.unity.meta | 8 + .../FairyGUI/Examples/Scenes/scene2.unity | 3633 ++++++ .../Examples/Scenes/scene2.unity.meta | 8 + .../Plugins/FairyGUI/Examples/ScrollPane.meta | 9 + .../Examples/ScrollPane/ScrollPaneMain.cs | 113 + .../ScrollPane/ScrollPaneMain.cs.meta | 12 + .../FairyGUI/Examples/TextMeshPro.meta | 8 + .../Examples/TextMeshPro/TextMeshProMain.cs | 9 + .../TextMeshPro/TextMeshProMain.cs.meta | 11 + .../Plugins/FairyGUI/Examples/Transition.meta | 9 + .../Examples/Transition/TransitionMain.cs | 105 + .../Transition/TransitionMain.cs.meta | 12 + .../Plugins/FairyGUI/Examples/TreeView.meta | 9 + .../Examples/TreeView/TreeViewMain.cs | 92 + .../Examples/TreeView/TreeViewMain.cs.meta | 12 + .../Plugins/FairyGUI/Examples/TurnCard.meta | 9 + .../FairyGUI/Examples/TurnCard/Card.cs | 73 + .../FairyGUI/Examples/TurnCard/Card.cs.meta | 12 + .../Examples/TurnCard/TurnCardMain.cs | 45 + .../Examples/TurnCard/TurnCardMain.cs.meta | 12 + .../Plugins/FairyGUI/Examples/TurnPage.meta | 10 + .../FairyGUI/Examples/TurnPage/BookPage.cs | 46 + .../Examples/TurnPage/BookPage.cs.meta | 13 + .../FairyGUI/Examples/TurnPage/FairyBook.cs | 1225 ++ .../Examples/TurnPage/FairyBook.cs.meta | 13 + .../Examples/TurnPage/TurnPageMain.cs | 78 + .../Examples/TurnPage/TurnPageMain.cs.meta | 13 + .../FairyGUI/Examples/TypingEffect.meta | 9 + .../Examples/TypingEffect/TypingEffectMain.cs | 44 + .../TypingEffect/TypingEffectMain.cs.meta | 12 + .../FairyGUI/Examples/VirtualList.meta | 9 + .../Examples/VirtualList/VirtualListMain.cs | 48 + .../VirtualList/VirtualListMain.cs.meta | 12 + Assets/Plugins/FairyGUI/Resources.meta | 9 + .../Plugins/FairyGUI/Resources/Shaders.meta | 9 + .../FairyGUI/Resources/Shaders/AddOn.meta | 9 + .../Shaders/AddOn/FairyGUI-BlurFilter.shader | 58 + .../AddOn/FairyGUI-BlurFilter.shader.meta | 9 + .../Resources/Shaders/FairyGUI-BMFont.shader | 148 + .../Shaders/FairyGUI-BMFont.shader.meta | 9 + .../Resources/Shaders/FairyGUI-Image.shader | 177 + .../Shaders/FairyGUI-Image.shader.meta | 9 + .../Resources/Shaders/FairyGUI-Text.shader | 145 + .../Shaders/FairyGUI-Text.shader.meta | 9 + Assets/Plugins/FairyGUI/Scripts.meta | 9 + Assets/Plugins/FairyGUI/Scripts/Core.meta | 9 + .../FairyGUI/Scripts/Core/BlendMode.cs | 110 + .../FairyGUI/Scripts/Core/BlendMode.cs.meta | 13 + .../FairyGUI/Scripts/Core/CaptureCamera.cs | 205 + .../Scripts/Core/CaptureCamera.cs.meta | 13 + .../FairyGUI/Scripts/Core/Container.cs | 1139 ++ .../FairyGUI/Scripts/Core/Container.cs.meta | 13 + .../FairyGUI/Scripts/Core/DisplayObject.cs | 1921 +++ .../Scripts/Core/DisplayObject.cs.meta | 13 + .../FairyGUI/Scripts/Core/GoWrapper.cs | 404 + .../FairyGUI/Scripts/Core/GoWrapper.cs.meta | 13 + .../FairyGUI/Scripts/Core/HitTest.meta | 9 + .../Scripts/Core/HitTest/ColliderHitTest.cs | 33 + .../Core/HitTest/ColliderHitTest.cs.meta | 13 + .../Scripts/Core/HitTest/HitTestContext.cs | 88 + .../Core/HitTest/HitTestContext.cs.meta | 13 + .../FairyGUI/Scripts/Core/HitTest/IHitTest.cs | 27 + .../Scripts/Core/HitTest/IHitTest.cs.meta | 13 + .../Core/HitTest/MeshColliderHitTest.cs | 43 + .../Core/HitTest/MeshColliderHitTest.cs.meta | 13 + .../Scripts/Core/HitTest/PixelHitTest.cs | 82 + .../Scripts/Core/HitTest/PixelHitTest.cs.meta | 13 + .../Scripts/Core/HitTest/RectHitTest.cs | 26 + .../Scripts/Core/HitTest/RectHitTest.cs.meta | 13 + .../Scripts/Core/HitTest/ShapeHitTest.cs | 44 + .../Scripts/Core/HitTest/ShapeHitTest.cs.meta | 11 + Assets/Plugins/FairyGUI/Scripts/Core/Image.cs | 436 + .../FairyGUI/Scripts/Core/Image.cs.meta | 13 + .../FairyGUI/Scripts/Core/MaterialManager.cs | 243 + .../Scripts/Core/MaterialManager.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/Core/Mesh.meta | 10 + .../Scripts/Core/Mesh/CompositeMesh.cs | 75 + .../Scripts/Core/Mesh/CompositeMesh.cs.meta | 13 + .../FairyGUI/Scripts/Core/Mesh/EllipseMesh.cs | 200 + .../Scripts/Core/Mesh/EllipseMesh.cs.meta | 13 + .../FairyGUI/Scripts/Core/Mesh/FillMesh.cs | 400 + .../Scripts/Core/Mesh/FillMesh.cs.meta | 13 + .../FairyGUI/Scripts/Core/Mesh/LineMesh.cs | 179 + .../Scripts/Core/Mesh/LineMesh.cs.meta | 13 + .../FairyGUI/Scripts/Core/Mesh/MeshFactory.cs | 15 + .../Scripts/Core/Mesh/MeshFactory.cs.meta | 13 + .../FairyGUI/Scripts/Core/Mesh/PlaneMesh.cs | 51 + .../Scripts/Core/Mesh/PlaneMesh.cs.meta | 13 + .../FairyGUI/Scripts/Core/Mesh/PolygonMesh.cs | 291 + .../Scripts/Core/Mesh/PolygonMesh.cs.meta | 13 + .../FairyGUI/Scripts/Core/Mesh/RectMesh.cs | 85 + .../Scripts/Core/Mesh/RectMesh.cs.meta | 13 + .../Scripts/Core/Mesh/RegularPolygonMesh.cs | 128 + .../Core/Mesh/RegularPolygonMesh.cs.meta | 13 + .../Scripts/Core/Mesh/RoundedRectMesh.cs | 177 + .../Scripts/Core/Mesh/RoundedRectMesh.cs.meta | 13 + .../Scripts/Core/Mesh/StraightLineMesh.cs | 90 + .../Core/Mesh/StraightLineMesh.cs.meta | 11 + .../Scripts/Core/Mesh/VertexBuffer.cs | 519 + .../Scripts/Core/Mesh/VertexBuffer.cs.meta | 13 + .../FairyGUI/Scripts/Core/MovieClip.cs | 414 + .../FairyGUI/Scripts/Core/MovieClip.cs.meta | 13 + .../FairyGUI/Scripts/Core/NAudioClip.cs | 75 + .../FairyGUI/Scripts/Core/NAudioClip.cs.meta | 13 + .../FairyGUI/Scripts/Core/NGraphics.cs | 880 ++ .../FairyGUI/Scripts/Core/NGraphics.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/Core/NTexture.cs | 555 + .../FairyGUI/Scripts/Core/NTexture.cs.meta | 13 + .../FairyGUI/Scripts/Core/ShaderConfig.cs | 103 + .../Scripts/Core/ShaderConfig.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/Core/Shape.cs | 250 + .../FairyGUI/Scripts/Core/Shape.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/Core/Stage.cs | 1815 +++ .../FairyGUI/Scripts/Core/Stage.cs.meta | 13 + .../FairyGUI/Scripts/Core/StageCamera.cs | 201 + .../FairyGUI/Scripts/Core/StageCamera.cs.meta | 13 + .../FairyGUI/Scripts/Core/StageEngine.cs | 51 + .../FairyGUI/Scripts/Core/StageEngine.cs.meta | 11 + Assets/Plugins/FairyGUI/Scripts/Core/Stats.cs | 29 + .../FairyGUI/Scripts/Core/Stats.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/Core/Text.meta | 9 + .../FairyGUI/Scripts/Core/Text/BaseFont.cs | 113 + .../Scripts/Core/Text/BaseFont.cs.meta | 13 + .../FairyGUI/Scripts/Core/Text/BitmapFont.cs | 174 + .../Scripts/Core/Text/BitmapFont.cs.meta | 13 + .../FairyGUI/Scripts/Core/Text/DynamicFont.cs | 377 + .../Scripts/Core/Text/DynamicFont.cs.meta | 13 + .../FairyGUI/Scripts/Core/Text/Emoji.cs | 48 + .../FairyGUI/Scripts/Core/Text/Emoji.cs.meta | 13 + .../FairyGUI/Scripts/Core/Text/FontManager.cs | 163 + .../Scripts/Core/Text/FontManager.cs.meta | 13 + .../FairyGUI/Scripts/Core/Text/IKeyboard.cs | 42 + .../Scripts/Core/Text/IKeyboard.cs.meta | 13 + .../Scripts/Core/Text/InputTextField.cs | 1732 +++ .../Scripts/Core/Text/InputTextField.cs.meta | 13 + .../FairyGUI/Scripts/Core/Text/RTLSupport.cs | 701 ++ .../Scripts/Core/Text/RTLSupport.cs.meta | 13 + .../Scripts/Core/Text/RichTextField.cs | 216 + .../Scripts/Core/Text/RichTextField.cs.meta | 13 + .../Scripts/Core/Text/SelectionShape.cs | 94 + .../Scripts/Core/Text/SelectionShape.cs.meta | 13 + .../FairyGUI/Scripts/Core/Text/TextField.cs | 1652 +++ .../Scripts/Core/Text/TextField.cs.meta | 13 + .../FairyGUI/Scripts/Core/Text/TextFormat.cs | 175 + .../Scripts/Core/Text/TextFormat.cs.meta | 13 + .../Scripts/Core/Text/TouchScreenKeyboard.cs | 65 + .../Core/Text/TouchScreenKeyboard.cs.meta | 13 + .../Scripts/Core/Text/TypingEffect.cs | 134 + .../Scripts/Core/Text/TypingEffect.cs.meta | 13 + .../FairyGUI/Scripts/Core/UpdateContext.cs | 319 + .../Scripts/Core/UpdateContext.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/Event.meta | 9 + .../FairyGUI/Scripts/Event/EventBridge.cs | 176 + .../Scripts/Event/EventBridge.cs.meta | 13 + .../FairyGUI/Scripts/Event/EventContext.cs | 105 + .../Scripts/Event/EventContext.cs.meta | 13 + .../FairyGUI/Scripts/Event/EventDispatcher.cs | 515 + .../Scripts/Event/EventDispatcher.cs.meta | 13 + .../FairyGUI/Scripts/Event/EventListener.cs | 267 + .../Scripts/Event/EventListener.cs.meta | 13 + .../Scripts/Event/IEventDispatcher.cs | 20 + .../Scripts/Event/IEventDispatcher.cs.meta | 13 + .../FairyGUI/Scripts/Event/InputEvent.cs | 175 + .../FairyGUI/Scripts/Event/InputEvent.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/Extensions.meta | 8 + .../Scripts/Extensions/DragonBones.meta | 8 + .../DragonBones/DragonBonesLoader.cs | 109 + .../DragonBones/DragonBonesLoader.cs.meta | 11 + .../FairyGUI/Scripts/Extensions/Spine.meta | 8 + .../Scripts/Extensions/Spine/SpineLoader.cs | 188 + .../Extensions/Spine/SpineLoader.cs.meta | 11 + .../Scripts/Extensions/TextMeshPro.meta | 8 + .../Extensions/TextMeshPro/Shaders.meta | 8 + .../TextMeshPro/Shaders/FairyGUI-TMP.shader | 478 + .../Shaders/FairyGUI-TMP.shader.meta | 9 + .../Scripts/Extensions/TextMeshPro/TMPFont.cs | 807 ++ .../Extensions/TextMeshPro/TMPFont.cs.meta | 11 + .../Extensions/TextMeshPro/TMPTextFormat.cs | 16 + .../TextMeshPro/TMPTextFormat.cs.meta | 11 + .../Scripts/Extensions/WebGLTextInput.meta | 8 + .../WebGLTextInput/WebGLTextInput.cs | 77 + .../WebGLTextInput/WebGLTextInput.cs.meta | 11 + .../WebGLTextInput/WebGLTextInput.jslib | 107 + .../WebGLTextInput/WebGLTextInput.jslib.meta | 36 + .../Plugins/FairyGUI/Scripts/FairyGUI.asmdef | 16 + .../FairyGUI/Scripts/FairyGUI.asmdef.meta | 7 + Assets/Plugins/FairyGUI/Scripts/Filter.meta | 9 + .../FairyGUI/Scripts/Filter/BlurFilter.cs | 103 + .../Scripts/Filter/BlurFilter.cs.meta | 13 + .../FairyGUI/Scripts/Filter/ColorFilter.cs | 238 + .../Scripts/Filter/ColorFilter.cs.meta | 13 + .../FairyGUI/Scripts/Filter/IFilter.cs | 24 + .../FairyGUI/Scripts/Filter/IFilter.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/Gesture.meta | 9 + .../Scripts/Gesture/LongPressGesture.cs | 155 + .../Scripts/Gesture/LongPressGesture.cs.meta | 13 + .../FairyGUI/Scripts/Gesture/PinchGesture.cs | 156 + .../Scripts/Gesture/PinchGesture.cs.meta | 13 + .../Scripts/Gesture/RotationGesture.cs | 169 + .../Scripts/Gesture/RotationGesture.cs.meta | 13 + .../FairyGUI/Scripts/Gesture/SwipeGesture.cs | 228 + .../Scripts/Gesture/SwipeGesture.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/Tween.meta | 10 + .../FairyGUI/Scripts/Tween/EaseManager.cs | 248 + .../Scripts/Tween/EaseManager.cs.meta | 13 + .../FairyGUI/Scripts/Tween/EaseType.cs | 141 + .../FairyGUI/Scripts/Tween/EaseType.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/Tween/GPath.cs | 475 + .../FairyGUI/Scripts/Tween/GPath.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/Tween/GTween.cs | 189 + .../FairyGUI/Scripts/Tween/GTween.cs.meta | 13 + .../FairyGUI/Scripts/Tween/GTweener.cs | 863 ++ .../FairyGUI/Scripts/Tween/GTweener.cs.meta | 13 + .../FairyGUI/Scripts/Tween/TweenManager.cs | 191 + .../Scripts/Tween/TweenManager.cs.meta | 13 + .../FairyGUI/Scripts/Tween/TweenPropType.cs | 103 + .../Scripts/Tween/TweenPropType.cs.meta | 13 + .../FairyGUI/Scripts/Tween/TweenValue.cs | 151 + .../FairyGUI/Scripts/Tween/TweenValue.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI.meta | 9 + .../Plugins/FairyGUI/Scripts/UI/Action.meta | 9 + .../Scripts/UI/Action/ChangePageAction.cs | 52 + .../UI/Action/ChangePageAction.cs.meta | 13 + .../Scripts/UI/Action/ControllerAction.cs | 68 + .../UI/Action/ControllerAction.cs.meta | 13 + .../Scripts/UI/Action/PlayTransitionAction.cs | 52 + .../UI/Action/PlayTransitionAction.cs.meta | 13 + .../Scripts/UI/AsyncCreationHelper.cs | 189 + .../Scripts/UI/AsyncCreationHelper.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/Controller.cs | 440 + .../FairyGUI/Scripts/UI/Controller.cs.meta | 13 + .../FairyGUI/Scripts/UI/DragDropManager.cs | 129 + .../Scripts/UI/DragDropManager.cs.meta | 13 + .../FairyGUI/Scripts/UI/EMRenderSupport.cs | 133 + .../Scripts/UI/EMRenderSupport.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/FieldTypes.cs | 304 + .../FairyGUI/Scripts/UI/FieldTypes.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI/GButton.cs | 657 + .../FairyGUI/Scripts/UI/GButton.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/GComboBox.cs | 629 + .../FairyGUI/Scripts/UI/GComboBox.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/GComponent.cs | 1726 +++ .../FairyGUI/Scripts/UI/GComponent.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI/GGraph.cs | 274 + .../FairyGUI/Scripts/UI/GGraph.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI/GGroup.cs | 538 + .../FairyGUI/Scripts/UI/GGroup.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI/GImage.cs | 170 + .../FairyGUI/Scripts/UI/GImage.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI/GLabel.cs | 235 + .../FairyGUI/Scripts/UI/GLabel.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI/GList.cs | 3067 +++++ .../Plugins/FairyGUI/Scripts/UI/GList.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI/GLoader.cs | 732 ++ .../FairyGUI/Scripts/UI/GLoader.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/GLoader3D.cs | 567 + .../FairyGUI/Scripts/UI/GLoader3D.cs.meta | 11 + .../Plugins/FairyGUI/Scripts/UI/GMovieClip.cs | 190 + .../FairyGUI/Scripts/UI/GMovieClip.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI/GObject.cs | 2187 ++++ .../FairyGUI/Scripts/UI/GObject.cs.meta | 13 + .../FairyGUI/Scripts/UI/GObjectPool.cs | 106 + .../FairyGUI/Scripts/UI/GObjectPool.cs.meta | 13 + .../FairyGUI/Scripts/UI/GProgressBar.cs | 311 + .../FairyGUI/Scripts/UI/GProgressBar.cs.meta | 13 + .../FairyGUI/Scripts/UI/GRichTextField.cs | 53 + .../Scripts/UI/GRichTextField.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI/GRoot.cs | 856 ++ .../Plugins/FairyGUI/Scripts/UI/GRoot.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/GScrollBar.cs | 226 + .../FairyGUI/Scripts/UI/GScrollBar.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI/GSlider.cs | 405 + .../FairyGUI/Scripts/UI/GSlider.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/GTextField.cs | 438 + .../FairyGUI/Scripts/UI/GTextField.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/GTextInput.cs | 243 + .../FairyGUI/Scripts/UI/GTextInput.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI/GTree.cs | 557 + .../Plugins/FairyGUI/Scripts/UI/GTree.cs.meta | 11 + .../Plugins/FairyGUI/Scripts/UI/GTreeNode.cs | 406 + .../FairyGUI/Scripts/UI/GTreeNode.cs.meta | 11 + Assets/Plugins/FairyGUI/Scripts/UI/Gears.meta | 9 + .../Scripts/UI/Gears/GearAnimation.cs | 109 + .../Scripts/UI/Gears/GearAnimation.cs.meta | 13 + .../FairyGUI/Scripts/UI/Gears/GearBase.cs | 203 + .../Scripts/UI/Gears/GearBase.cs.meta | 13 + .../FairyGUI/Scripts/UI/Gears/GearColor.cs | 142 + .../Scripts/UI/Gears/GearColor.cs.meta | 13 + .../FairyGUI/Scripts/UI/Gears/GearDisplay.cs | 68 + .../Scripts/UI/Gears/GearDisplay.cs.meta | 13 + .../FairyGUI/Scripts/UI/Gears/GearDisplay2.cs | 55 + .../Scripts/UI/Gears/GearDisplay2.cs.meta | 11 + .../FairyGUI/Scripts/UI/Gears/GearFontSize.cs | 65 + .../Scripts/UI/Gears/GearFontSize.cs.meta | 11 + .../FairyGUI/Scripts/UI/Gears/GearIcon.cs | 51 + .../Scripts/UI/Gears/GearIcon.cs.meta | 13 + .../FairyGUI/Scripts/UI/Gears/GearLook.cs | 152 + .../Scripts/UI/Gears/GearLook.cs.meta | 13 + .../FairyGUI/Scripts/UI/Gears/GearSize.cs | 163 + .../Scripts/UI/Gears/GearSize.cs.meta | 13 + .../FairyGUI/Scripts/UI/Gears/GearText.cs | 51 + .../Scripts/UI/Gears/GearText.cs.meta | 13 + .../FairyGUI/Scripts/UI/Gears/GearXY.cs | 177 + .../FairyGUI/Scripts/UI/Gears/GearXY.cs.meta | 13 + .../Scripts/UI/Gears/IAnimationGear.cs | 35 + .../Scripts/UI/Gears/IAnimationGear.cs.meta | 13 + .../FairyGUI/Scripts/UI/Gears/IColorGear.cs | 26 + .../Scripts/UI/Gears/IColorGear.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/IUISource.cs | 36 + .../FairyGUI/Scripts/UI/IUISource.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI/Margin.cs | 29 + .../FairyGUI/Scripts/UI/Margin.cs.meta | 13 + .../FairyGUI/Scripts/UI/PackageItem.cs | 87 + .../FairyGUI/Scripts/UI/PackageItem.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/PopupMenu.cs | 565 + .../FairyGUI/Scripts/UI/PopupMenu.cs.meta | 13 + .../FairyGUI/Scripts/UI/RelationItem.cs | 672 ++ .../FairyGUI/Scripts/UI/RelationItem.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/Relations.cs | 220 + .../FairyGUI/Scripts/UI/Relations.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/ScrollPane.cs | 2320 ++++ .../FairyGUI/Scripts/UI/ScrollPane.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/Transition.cs | 1771 +++ .../FairyGUI/Scripts/UI/Transition.cs.meta | 13 + .../FairyGUI/Scripts/UI/TranslationHelper.cs | 253 + .../Scripts/UI/TranslationHelper.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI/Tree.meta | 9 + .../FairyGUI/Scripts/UI/Tree/TreeNode.cs | 348 + .../FairyGUI/Scripts/UI/Tree/TreeNode.cs.meta | 13 + .../FairyGUI/Scripts/UI/Tree/TreeView.cs | 490 + .../FairyGUI/Scripts/UI/Tree/TreeView.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/UIConfig.cs | 470 + .../FairyGUI/Scripts/UI/UIConfig.cs.meta | 13 + .../FairyGUI/Scripts/UI/UIContentScaler.cs | 217 + .../Scripts/UI/UIContentScaler.cs.meta | 13 + .../FairyGUI/Scripts/UI/UIObjectFactory.cs | 211 + .../Scripts/UI/UIObjectFactory.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/UIPackage.cs | 1692 +++ .../FairyGUI/Scripts/UI/UIPackage.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/UI/UIPainter.cs | 335 + .../FairyGUI/Scripts/UI/UIPainter.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI/UIPanel.cs | 622 + .../FairyGUI/Scripts/UI/UIPanel.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/UI/Window.cs | 555 + .../FairyGUI/Scripts/UI/Window.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/Utils.meta | 9 + .../FairyGUI/Scripts/Utils/ByteBuffer.cs | 455 + .../FairyGUI/Scripts/Utils/ByteBuffer.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/Utils/Html.meta | 9 + .../FairyGUI/Scripts/Utils/Html/HtmlButton.cs | 99 + .../Scripts/Utils/Html/HtmlButton.cs.meta | 13 + .../Scripts/Utils/Html/HtmlElement.cs | 215 + .../Scripts/Utils/Html/HtmlElement.cs.meta | 13 + .../FairyGUI/Scripts/Utils/Html/HtmlImage.cs | 126 + .../Scripts/Utils/Html/HtmlImage.cs.meta | 13 + .../FairyGUI/Scripts/Utils/Html/HtmlInput.cs | 117 + .../Scripts/Utils/Html/HtmlInput.cs.meta | 13 + .../FairyGUI/Scripts/Utils/Html/HtmlLink.cs | 113 + .../Scripts/Utils/Html/HtmlLink.cs.meta | 13 + .../Scripts/Utils/Html/HtmlPageContext.cs | 179 + .../Utils/Html/HtmlPageContext.cs.meta | 13 + .../Scripts/Utils/Html/HtmlParseOptions.cs | 65 + .../Utils/Html/HtmlParseOptions.cs.meta | 13 + .../FairyGUI/Scripts/Utils/Html/HtmlParser.cs | 395 + .../Scripts/Utils/Html/HtmlParser.cs.meta | 13 + .../FairyGUI/Scripts/Utils/Html/HtmlSelect.cs | 102 + .../Scripts/Utils/Html/HtmlSelect.cs.meta | 13 + .../Scripts/Utils/Html/IHtmlObject.cs | 24 + .../Scripts/Utils/Html/IHtmlObject.cs.meta | 13 + .../Scripts/Utils/Html/IHtmlPageContext.cs | 15 + .../Utils/Html/IHtmlPageContext.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/Utils/Timers.cs | 282 + .../FairyGUI/Scripts/Utils/Timers.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/Utils/ToolSet.cs | 136 + .../FairyGUI/Scripts/Utils/ToolSet.cs.meta | 13 + .../FairyGUI/Scripts/Utils/UBBParser.cs | 226 + .../FairyGUI/Scripts/Utils/UBBParser.cs.meta | 13 + Assets/Plugins/FairyGUI/Scripts/Utils/XML.cs | 427 + .../FairyGUI/Scripts/Utils/XML.cs.meta | 13 + .../FairyGUI/Scripts/Utils/XMLIterator.cs | 485 + .../Scripts/Utils/XMLIterator.cs.meta | 13 + .../Plugins/FairyGUI/Scripts/Utils/XMLList.cs | 144 + .../FairyGUI/Scripts/Utils/XMLList.cs.meta | 13 + .../FairyGUI/Scripts/Utils/XMLUtils.cs | 133 + .../FairyGUI/Scripts/Utils/XMLUtils.cs.meta | 13 + .../FairyGUI/Scripts/Utils/ZipReader.cs | 114 + .../FairyGUI/Scripts/Utils/ZipReader.cs.meta | 13 + Assets/ResRaw/Fgui.meta | 8 + Assets/ResRaw/Fgui/Main_fui.bytes | Bin 0 -> 6119 bytes Assets/ResRaw/Fgui/Main_fui.bytes.meta | 7 + Assets/Resources.meta | 8 + Assets/Resources/fgui.meta | 8 + Assets/Scripts/UI.meta | 8 + Assets/Scripts/UI/Main.meta | 8 + Assets/Scripts/UI/Main/MainBinder.cs | 16 + Assets/Scripts/UI/Main/MainBinder.cs.meta | 2 + Assets/Scripts/UI/Main/UI_ComboBox1_popup.cs | 25 + .../UI/Main/UI_ComboBox1_popup.cs.meta | 2 + Assets/Scripts/UI/Main/UI_Main.cs | 35 + Assets/Scripts/UI/Main/UI_Main.cs.meta | 2 + Assets/Scripts/UI/Main/UI_ProtocolItem.cs | 27 + .../Scripts/UI/Main/UI_ProtocolItem.cs.meta | 2 + .../assets/{Package1 => Main}/BtnCommon.xml | 0 .../{Package1 => Main}/BtnCommonBig.xml | 0 .../assets/{Package1 => Main}/ComboBox1.xml | 0 .../{Package1 => Main}/ComboBox1_item.xml | 0 .../{Package1 => Main}/ComboBox1_popup.xml | 0 .../assets/{Package1 => Main}/CommonInput.xml | 0 .../assets/{Package1 => Main}/LogTag.xml | 0 .../assets/{Package1 => Main}/Main.xml | 0 .../{Package1 => Main}/ProtocolItem.xml | 0 .../assets/{Package1 => Main}/package.xml | 2 +- FGUIProject/settings/Publish.json | 35 + 790 files changed, 127129 insertions(+), 1 deletion(-) create mode 100644 Assets/Plugins/FairyGUI.meta create mode 100644 Assets/Plugins/FairyGUI/Editor.meta create mode 100644 Assets/Plugins/FairyGUI/Examples.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Bag.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Bag/BagMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Bag/BagMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Bag/BagWindow.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Bag/BagWindow.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Bag/IconManager.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Bag/IconManager.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Bag/MyGLoader.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Bag/MyGLoader.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Basics.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Basics/BasicsMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Basics/BasicsMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Basics/Window1.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Basics/Window1.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Basics/Window2.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Basics/Window2.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/BundleUsage.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/BundleUsage/BundleUsageMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/BundleUsage/BundleUsageMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Cooldown.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Cooldown/CooldownMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Cooldown/CooldownMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Curve.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Curve/CurveMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Curve/CurveMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/CutScene.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/CutScene/CutSceneMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/CutScene/CutSceneMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/CutScene/LevelManager.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/CutScene/LevelManager.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Editor.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Editor/BuildAssetBundles.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Editor/BuildAssetBundles.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/EmitNumbers.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitComponent.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitComponent.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitManager.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitManager.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitNumbersMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitNumbersMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Emoji.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Emoji/EmojiMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Emoji/EmojiMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Emoji/EmojiParser.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Emoji/EmojiParser.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Extension.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Extension/ExtensionMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Extension/ExtensionMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Extension/MailItem.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Extension/MailItem.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Filter.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Filter/FilterMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Filter/FilterMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Gesture.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Gesture/GestureMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Gesture/GestureMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Guide.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Guide/GuideMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Guide/GuideMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/HeadBar.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/HeadBar/HeadBarMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/HeadBar/HeadBarMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/HitTest.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/HitTest/HitTestMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/HitTest/HitTestMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Joystick.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Joystick/JoystickMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Joystick/JoystickMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Joystick/JoystickModule.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Joystick/JoystickModule.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/LoopList.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/LoopList/LoopListMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/LoopList/LoopListMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/ModalWaiting.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/ModalWaiting/ModalWaitingMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/ModalWaiting/ModalWaitingMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/ModalWaiting/Window4.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/ModalWaiting/Window4.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Model.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Model/ModelMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Model/ModelMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Particles.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Particles/CoolComponent.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Particles/CoolComponent.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Particles/ParticlesMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Particles/ParticlesMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Perspetive.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Perspetive/PerspectiveMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Perspetive/PerspectiveMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/PullToRefresh.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/PullToRefresh/PullToRefreshMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/PullToRefresh/PullToRefreshMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/PullToRefresh/ScrollPaneHeader.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/PullToRefresh/ScrollPaneHeader.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/RenderTexture.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderImage.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderImage.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderTextureMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderTextureMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/RenderTexture/Window3.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/RenderTexture/Window3.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Cooldown.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Cooldown/k0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Cooldown/k0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Cooldown/k1.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Cooldown/k1.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Curve.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Curve/New Material.mat create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Curve/New Material.mat.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Curve/aomian.FBX create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Curve/aomian.FBX.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Textures.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Textures/FlameRoundParticleSheet.tif create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Textures/FlameRoundParticleSheet.tif.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/Shared.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/Shared/Prefabs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/Shared/Prefabs/ParticlesLight.prefab create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/Shared/Prefabs/ParticlesLight.prefab.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Flame.prefab create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Flame.prefab.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Fonts.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Fonts/LiberationSans SDF.asset create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Fonts/LiberationSans SDF.asset.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Fonts/LiberationSans.ttf create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Fonts/LiberationSans.ttf.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Fonts/afont.ttf create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Fonts/afont.ttf.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Gesture.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Gesture/Globe Material.mat create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Gesture/Globe Material.mat.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Gesture/globe.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Gesture/globe.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i1.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i1.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i2.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i2.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i3.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i3.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i4.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i4.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i5.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i5.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i6.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i6.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i7.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i7.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i8.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i8.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i9.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Icons/i9.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/RenderTexture.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/RenderTexture/FullScreen.shader create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/RenderTexture/FullScreen.shader.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/RenderTexture/RenderImageCamera.prefab create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/RenderTexture/RenderImageCamera.prefab.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/Materials.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/Materials/Role-Diffuse.shader create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/Materials/Role-Diffuse.shader.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/Materials/U1NPC0040.mat create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/Materials/U1NPC0040.mat.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/Materials/U1NPC0041.mat create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/Materials/U1NPC0041.mat.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/Textures.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/Textures/U1NPC0040.tga create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/Textures/U1NPC0040.tga.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/npc-with-hud.prefab create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/npc-with-hud.prefab.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/npc.FBX create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/npc.FBX.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/npc.prefab create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/npc.prefab.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/npc2.FBX create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/npc2.FBX.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/npc3.prefab create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/Role/npc3.prefab.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Bag_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Bag_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Bag_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Bag_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Basics_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Basics_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Basics_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Basics_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Basics_gojg7u.wav create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Basics_gojg7u.wav.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Basics_o4lt7w.wav create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Basics_o4lt7w.wav.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/BundleUsage_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/BundleUsage_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/BundleUsage_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/BundleUsage_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Cooldown_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Cooldown_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Cooldown_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Cooldown_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Curve_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Curve_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Curve_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Curve_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/CutScene_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/CutScene_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/CutScene_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/CutScene_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/EmitNumbers_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/EmitNumbers_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/EmitNumbers_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/EmitNumbers_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Emoji_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Emoji_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Emoji_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Emoji_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Extension_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Extension_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Extension_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Extension_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Filter_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Filter_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Filter_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Filter_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Gesture_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Gesture_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Guide_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Guide_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Guide_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Guide_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/HeadBar_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/HeadBar_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/HeadBar_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/HeadBar_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/HitTest_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/HitTest_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/HitTest_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/HitTest_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Joystick_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Joystick_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Joystick_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Joystick_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/LoopList_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/LoopList_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/LoopList_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/LoopList_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/ModalWaiting_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/ModalWaiting_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/ModalWaiting_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/ModalWaiting_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Model_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Model_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Model_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Model_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Particles_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Particles_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Particles_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Particles_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Perspective_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Perspective_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Perspective_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Perspective_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/PullToRefresh_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/PullToRefresh_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/PullToRefresh_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/PullToRefresh_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/RenderTexture_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/RenderTexture_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/RenderTexture_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/RenderTexture_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/ScrollPane_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/ScrollPane_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/ScrollPane_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/ScrollPane_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TextMeshPro_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TextMeshPro_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TextMeshPro_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TextMeshPro_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Transition_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Transition_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Transition_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Transition_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Transition_gkq03.wav create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/Transition_gkq03.wav.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TreeView_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TreeView_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TreeView_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TreeView_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TurnCard_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TurnCard_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TurnCard_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TurnCard_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TurnPage_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TurnPage_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TurnPage_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TurnPage_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TypingEffect_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TypingEffect_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TypingEffect_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/TypingEffect_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/VirtualList_atlas0.png create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/VirtualList_atlas0.png.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/VirtualList_fui.bytes create mode 100644 Assets/Plugins/FairyGUI/Examples/Resources/UI/VirtualList_fui.bytes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 01 - Basics.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 01 - Basics.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 02 - Bag.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 02 - Bag.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 03 - CoolDown.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 03 - CoolDown.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 04 - Emoji.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 04 - Emoji.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 05 - Joystick.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 05 - Joystick.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 06 - HeadBar.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 06 - HeadBar.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 07 - EmitNumbers.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 07 - EmitNumbers.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 08 - Transition.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 08 - Transition.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 09 - Extension.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 09 - Extension.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 10 - ModalWaiting.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 10 - ModalWaiting.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 11 - CutScene.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 11 - CutScene.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 12 - RenderTexture.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 12 - RenderTexture.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 13 - Particles.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 13 - Particles.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 14 - BundleUsage.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 14 - BundleUsage.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 15 - VirtualList.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 15 - VirtualList.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 16 - LoopList.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 16 - LoopList.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 17 - Model.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 17 - Model.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 18 - Guide.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 18 - Guide.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 19 - HitTest.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 19 - HitTest.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 20 - 3D UI.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 20 - 3D UI.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 21 - Curve UI.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 21 - Curve UI.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 22 - Gesture.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 22 - Gesture.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 23 - Filter.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 23 - Filter.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 24 - TurnCard.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 24 - TurnCard.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 25 - TreeView.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 25 - TreeView.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 26 - PullToRefresh.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 26 - PullToRefresh.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 27 - ScrollPane.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 27 - ScrollPane.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 28 - TypingEffect.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 28 - TypingEffect.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 29 - TurnPage.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 29 - TurnPage.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 30 - TextMeshPro.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/Example 30 - TextMeshPro.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/scene1.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/scene1.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/scene2.unity create mode 100644 Assets/Plugins/FairyGUI/Examples/Scenes/scene2.unity.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/ScrollPane.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/ScrollPane/ScrollPaneMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/ScrollPane/ScrollPaneMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/TextMeshPro.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/TextMeshPro/TextMeshProMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/TextMeshPro/TextMeshProMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Transition.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/Transition/TransitionMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/Transition/TransitionMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/TreeView.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/TreeView/TreeViewMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/TreeView/TreeViewMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/TurnCard.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/TurnCard/Card.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/TurnCard/Card.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/TurnCard/TurnCardMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/TurnCard/TurnCardMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/TurnPage.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/TurnPage/BookPage.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/TurnPage/BookPage.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/TurnPage/FairyBook.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/TurnPage/FairyBook.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/TurnPage/TurnPageMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/TurnPage/TurnPageMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/TypingEffect.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/TypingEffect/TypingEffectMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/TypingEffect/TypingEffectMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/VirtualList.meta create mode 100644 Assets/Plugins/FairyGUI/Examples/VirtualList/VirtualListMain.cs create mode 100644 Assets/Plugins/FairyGUI/Examples/VirtualList/VirtualListMain.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Resources.meta create mode 100644 Assets/Plugins/FairyGUI/Resources/Shaders.meta create mode 100644 Assets/Plugins/FairyGUI/Resources/Shaders/AddOn.meta create mode 100644 Assets/Plugins/FairyGUI/Resources/Shaders/AddOn/FairyGUI-BlurFilter.shader create mode 100644 Assets/Plugins/FairyGUI/Resources/Shaders/AddOn/FairyGUI-BlurFilter.shader.meta create mode 100644 Assets/Plugins/FairyGUI/Resources/Shaders/FairyGUI-BMFont.shader create mode 100644 Assets/Plugins/FairyGUI/Resources/Shaders/FairyGUI-BMFont.shader.meta create mode 100644 Assets/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Image.shader create mode 100644 Assets/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Image.shader.meta create mode 100644 Assets/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Text.shader create mode 100644 Assets/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Text.shader.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/BlendMode.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/BlendMode.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/CaptureCamera.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/CaptureCamera.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Container.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Container.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/DisplayObject.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/DisplayObject.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/GoWrapper.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/GoWrapper.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/HitTest.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/HitTest/ColliderHitTest.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/HitTest/ColliderHitTest.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/HitTest/HitTestContext.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/HitTest/HitTestContext.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/HitTest/IHitTest.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/HitTest/IHitTest.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/HitTest/MeshColliderHitTest.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/HitTest/MeshColliderHitTest.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/HitTest/PixelHitTest.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/HitTest/PixelHitTest.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/HitTest/RectHitTest.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/HitTest/RectHitTest.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/HitTest/ShapeHitTest.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/HitTest/ShapeHitTest.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Image.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Image.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/MaterialManager.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/MaterialManager.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/CompositeMesh.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/CompositeMesh.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/EllipseMesh.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/EllipseMesh.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/FillMesh.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/FillMesh.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/LineMesh.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/LineMesh.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/MeshFactory.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/MeshFactory.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/PlaneMesh.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/PlaneMesh.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/PolygonMesh.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/PolygonMesh.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/RectMesh.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/RectMesh.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/RegularPolygonMesh.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/RegularPolygonMesh.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/RoundedRectMesh.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/RoundedRectMesh.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/StraightLineMesh.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/StraightLineMesh.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/VertexBuffer.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Mesh/VertexBuffer.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/MovieClip.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/MovieClip.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/NAudioClip.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/NAudioClip.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/NGraphics.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/NGraphics.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/NTexture.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/NTexture.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/ShaderConfig.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/ShaderConfig.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Shape.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Shape.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Stage.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Stage.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/StageCamera.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/StageCamera.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/StageEngine.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/StageEngine.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Stats.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Stats.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/BaseFont.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/BaseFont.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/BitmapFont.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/BitmapFont.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/DynamicFont.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/DynamicFont.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/Emoji.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/Emoji.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/FontManager.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/FontManager.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/IKeyboard.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/IKeyboard.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/InputTextField.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/InputTextField.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/RTLSupport.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/RTLSupport.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/RichTextField.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/RichTextField.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/SelectionShape.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/SelectionShape.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/TextField.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/TextField.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/TextFormat.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/TextFormat.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/TouchScreenKeyboard.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/TouchScreenKeyboard.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/TypingEffect.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/Text/TypingEffect.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/UpdateContext.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Core/UpdateContext.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Event.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Event/EventBridge.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Event/EventBridge.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Event/EventContext.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Event/EventContext.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Event/EventDispatcher.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Event/EventDispatcher.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Event/EventListener.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Event/EventListener.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Event/IEventDispatcher.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Event/IEventDispatcher.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Event/InputEvent.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Event/InputEvent.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/DragonBones.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/DragonBones/DragonBonesLoader.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/DragonBones/DragonBonesLoader.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/Spine.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/Spine/SpineLoader.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/Spine/SpineLoader.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPFont.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPFont.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPTextFormat.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPTextFormat.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.jslib create mode 100644 Assets/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.jslib.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/FairyGUI.asmdef create mode 100644 Assets/Plugins/FairyGUI/Scripts/FairyGUI.asmdef.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Filter.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Filter/BlurFilter.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Filter/BlurFilter.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Filter/ColorFilter.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Filter/ColorFilter.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Filter/IFilter.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Filter/IFilter.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Gesture.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Gesture/LongPressGesture.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Gesture/LongPressGesture.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Gesture/PinchGesture.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Gesture/PinchGesture.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Gesture/RotationGesture.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Gesture/RotationGesture.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Gesture/SwipeGesture.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Gesture/SwipeGesture.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/EaseManager.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/EaseManager.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/EaseType.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/EaseType.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/GPath.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/GPath.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/GTween.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/GTween.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/GTweener.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/GTweener.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/TweenManager.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/TweenManager.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/TweenPropType.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/TweenPropType.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/TweenValue.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Tween/TweenValue.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Action.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Action/ChangePageAction.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Action/ChangePageAction.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Action/ControllerAction.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Action/ControllerAction.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Action/PlayTransitionAction.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Action/PlayTransitionAction.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/AsyncCreationHelper.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/AsyncCreationHelper.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Controller.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Controller.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/DragDropManager.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/DragDropManager.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/EMRenderSupport.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/EMRenderSupport.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/FieldTypes.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/FieldTypes.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GButton.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GButton.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GComboBox.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GComboBox.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GComponent.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GComponent.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GGraph.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GGraph.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GGroup.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GGroup.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GImage.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GImage.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GLabel.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GLabel.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GList.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GList.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GLoader.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GLoader.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GLoader3D.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GLoader3D.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GMovieClip.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GMovieClip.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GObject.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GObject.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GObjectPool.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GObjectPool.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GProgressBar.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GProgressBar.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GRichTextField.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GRichTextField.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GRoot.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GRoot.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GScrollBar.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GScrollBar.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GSlider.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GSlider.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GTextField.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GTextField.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GTextInput.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GTextInput.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GTree.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GTree.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GTreeNode.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/GTreeNode.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearAnimation.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearAnimation.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearBase.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearBase.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearColor.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearColor.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay2.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay2.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearFontSize.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearFontSize.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearIcon.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearIcon.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearLook.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearLook.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearSize.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearSize.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearText.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearText.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearXY.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/GearXY.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/IAnimationGear.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/IAnimationGear.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/IColorGear.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Gears/IColorGear.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/IUISource.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/IUISource.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Margin.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Margin.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/PackageItem.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/PackageItem.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/PopupMenu.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/PopupMenu.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/RelationItem.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/RelationItem.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Relations.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Relations.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/ScrollPane.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/ScrollPane.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Transition.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Transition.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/TranslationHelper.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/TranslationHelper.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Tree.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Tree/TreeNode.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Tree/TreeNode.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Tree/TreeView.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Tree/TreeView.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/UIConfig.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/UIConfig.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/UIContentScaler.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/UIContentScaler.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/UIObjectFactory.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/UIObjectFactory.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/UIPackage.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/UIPackage.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/UIPainter.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/UIPainter.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/UIPanel.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/UIPanel.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Window.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/UI/Window.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/ByteBuffer.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/ByteBuffer.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlButton.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlButton.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlElement.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlElement.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlImage.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlImage.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlInput.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlInput.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlLink.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlLink.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlPageContext.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlPageContext.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParseOptions.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParseOptions.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParser.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParser.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlSelect.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/HtmlSelect.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlObject.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlObject.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlPageContext.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlPageContext.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Timers.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/Timers.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/ToolSet.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/ToolSet.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/UBBParser.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/UBBParser.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/XML.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/XML.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/XMLIterator.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/XMLIterator.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/XMLList.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/XMLList.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/XMLUtils.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/XMLUtils.cs.meta create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/ZipReader.cs create mode 100644 Assets/Plugins/FairyGUI/Scripts/Utils/ZipReader.cs.meta create mode 100644 Assets/ResRaw/Fgui.meta create mode 100644 Assets/ResRaw/Fgui/Main_fui.bytes create mode 100644 Assets/ResRaw/Fgui/Main_fui.bytes.meta create mode 100644 Assets/Resources.meta create mode 100644 Assets/Resources/fgui.meta create mode 100644 Assets/Scripts/UI.meta create mode 100644 Assets/Scripts/UI/Main.meta create mode 100644 Assets/Scripts/UI/Main/MainBinder.cs create mode 100644 Assets/Scripts/UI/Main/MainBinder.cs.meta create mode 100644 Assets/Scripts/UI/Main/UI_ComboBox1_popup.cs create mode 100644 Assets/Scripts/UI/Main/UI_ComboBox1_popup.cs.meta create mode 100644 Assets/Scripts/UI/Main/UI_Main.cs create mode 100644 Assets/Scripts/UI/Main/UI_Main.cs.meta create mode 100644 Assets/Scripts/UI/Main/UI_ProtocolItem.cs create mode 100644 Assets/Scripts/UI/Main/UI_ProtocolItem.cs.meta rename FGUIProject/assets/{Package1 => Main}/BtnCommon.xml (100%) rename FGUIProject/assets/{Package1 => Main}/BtnCommonBig.xml (100%) rename FGUIProject/assets/{Package1 => Main}/ComboBox1.xml (100%) rename FGUIProject/assets/{Package1 => Main}/ComboBox1_item.xml (100%) rename FGUIProject/assets/{Package1 => Main}/ComboBox1_popup.xml (100%) rename FGUIProject/assets/{Package1 => Main}/CommonInput.xml (100%) rename FGUIProject/assets/{Package1 => Main}/LogTag.xml (100%) rename FGUIProject/assets/{Package1 => Main}/Main.xml (100%) rename FGUIProject/assets/{Package1 => Main}/ProtocolItem.xml (100%) rename FGUIProject/assets/{Package1 => Main}/package.xml (95%) create mode 100644 FGUIProject/settings/Publish.json diff --git a/Assets/Plugins/FairyGUI.meta b/Assets/Plugins/FairyGUI.meta new file mode 100644 index 0000000..6b952de --- /dev/null +++ b/Assets/Plugins/FairyGUI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5af0671c5d1d6af44aa29e82ab32d444 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Editor.meta b/Assets/Plugins/FairyGUI/Editor.meta new file mode 100644 index 0000000..9e32d14 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8d62b02f274ce4253af1ef45831279e3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples.meta b/Assets/Plugins/FairyGUI/Examples.meta new file mode 100644 index 0000000..ac1ba24 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fd0c51d2146977c4aa7ab34e712a863d +folderAsset: yes +timeCreated: 1446193142 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Bag.meta b/Assets/Plugins/FairyGUI/Examples/Bag.meta new file mode 100644 index 0000000..4e90350 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Bag.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 458c4ffa8748140419a56ce3d93de74a +folderAsset: yes +timeCreated: 1446625368 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Bag/BagMain.cs b/Assets/Plugins/FairyGUI/Examples/Bag/BagMain.cs new file mode 100644 index 0000000..1f4d434 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Bag/BagMain.cs @@ -0,0 +1,36 @@ +using UnityEngine; +using FairyGUI; + +/// +/// A game bag demo, demonstrated how to customize loader to load icons not in the UI package. +/// +public class BagMain : MonoBehaviour +{ + GComponent _mainView; + BagWindow _bagWindow; + + void Awake() + { + //Register custom loader class + UIObjectFactory.SetLoaderExtension(typeof(MyGLoader)); + } + + void Start() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + GRoot.inst.SetContentScaleFactor(1136, 640); + _mainView = this.GetComponent().ui; + + _bagWindow = new BagWindow(); + _mainView.GetChild("bagBtn").onClick.Add(() => { _bagWindow.Show(); }); + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Bag/BagMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/Bag/BagMain.cs.meta new file mode 100644 index 0000000..e6ea036 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Bag/BagMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 72adad54c37cc25499988e9b785d5b90 +timeCreated: 1446194671 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Bag/BagWindow.cs b/Assets/Plugins/FairyGUI/Examples/Bag/BagWindow.cs new file mode 100644 index 0000000..6b809f6 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Bag/BagWindow.cs @@ -0,0 +1,49 @@ +using FairyGUI; +using UnityEngine; + +public class BagWindow : Window +{ + GList _list; + + public BagWindow() + { + } + + protected override void OnInit() + { + this.contentPane = UIPackage.CreateObject("Bag", "BagWin").asCom; + this.Center(); + this.modal = true; + + _list = this.contentPane.GetChild("list").asList; + _list.onClickItem.Add(__clickItem); + _list.itemRenderer = RenderListItem; + _list.numItems = 45; + } + + void RenderListItem(int index, GObject obj) + { + GButton button = (GButton)obj; + button.icon = "i" + UnityEngine.Random.Range(0, 10); + button.title = "" + UnityEngine.Random.Range(0, 100); + } + + override protected void DoShowAnimation() + { + this.SetScale(0.1f, 0.1f); + this.SetPivot(0.5f, 0.5f); + this.TweenScale(new Vector2(1, 1), 0.3f).OnComplete(this.OnShown); + } + + override protected void DoHideAnimation() + { + this.TweenScale(new Vector2(0.1f, 0.1f), 0.3f).OnComplete(this.HideImmediately); + } + + void __clickItem(EventContext context) + { + GButton item = (GButton)context.data; + this.contentPane.GetChild("n11").asLoader.url = item.icon; + this.contentPane.GetChild("n13").text = item.icon; + } +} diff --git a/Assets/Plugins/FairyGUI/Examples/Bag/BagWindow.cs.meta b/Assets/Plugins/FairyGUI/Examples/Bag/BagWindow.cs.meta new file mode 100644 index 0000000..879d477 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Bag/BagWindow.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 418d0818f0209ee42938610bc6cb82be +timeCreated: 1446193148 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Bag/IconManager.cs b/Assets/Plugins/FairyGUI/Examples/Bag/IconManager.cs new file mode 100644 index 0000000..8f82c6b --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Bag/IconManager.cs @@ -0,0 +1,188 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; +using FairyGUI; +#if UNITY_5_4_OR_NEWER +using UnityEngine.Networking; +#endif + +public delegate void LoadCompleteCallback(NTexture texture); +public delegate void LoadErrorCallback(string error); + +/// +/// Use to load icons from asset bundle, and pool them +/// +public class IconManager : MonoBehaviour +{ + static IconManager _instance; + public static IconManager inst + { + get + { + if (_instance == null) + { + GameObject go = new GameObject("IconManager"); + DontDestroyOnLoad(go); + _instance = go.AddComponent(); + } + return _instance; + } + } + + public const int POOL_CHECK_TIME = 30; + public const int MAX_POOL_SIZE = 10; + + List _items; + bool _started; + Hashtable _pool; + string _basePath; + + void Awake() + { + _items = new List(); + _pool = new Hashtable(); + _basePath = Application.streamingAssetsPath.Replace("\\", "/") + "/fairygui-examples/"; + if (Application.platform != RuntimePlatform.Android) + _basePath = "file:///" + _basePath; + + StartCoroutine(FreeIdleIcons()); + } + + public void LoadIcon(string url, + LoadCompleteCallback onSuccess, + LoadErrorCallback onFail) + { + LoadItem item = new LoadItem(); + item.url = url; + item.onSuccess = onSuccess; + item.onFail = onFail; + _items.Add(item); + if (!_started) + StartCoroutine(Run()); + } + + IEnumerator Run() + { + _started = true; + + LoadItem item = null; + while (true) + { + if (_items.Count > 0) + { + item = _items[0]; + _items.RemoveAt(0); + } + else + break; + + if (_pool.ContainsKey(item.url)) + { + //Debug.Log("hit " + item.url); + + NTexture texture = (NTexture)_pool[item.url]; + texture.refCount++; + + if (item.onSuccess != null) + item.onSuccess(texture); + + continue; + } + + string url = _basePath + item.url + ".ab"; +#if UNITY_2017_2_OR_NEWER +#if UNITY_2018_1_OR_NEWER + UnityWebRequest www = UnityWebRequestAssetBundle.GetAssetBundle(url); +#else + UnityWebRequest www = UnityWebRequest.GetAssetBundle(url); +#endif + yield return www.SendWebRequest(); + +#if UNITY_2020_2_OR_NEWER + if (www.result == UnityWebRequest.Result.Success) +#else + if (!www.isNetworkError && !www.isHttpError) +#endif + { + AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(www); +#else + WWW www = new WWW(url); + yield return www; + + if (string.IsNullOrEmpty(www.error)) + { + AssetBundle bundle = www.assetBundle; +#endif + + if (bundle == null) + { + Debug.LogWarning("Run Window->Build FairyGUI example Bundles first."); + if (item.onFail != null) + item.onFail(www.error); + continue; + } +#if (UNITY_5 || UNITY_5_3_OR_NEWER) + NTexture texture = new NTexture(bundle.LoadAllAssets()[0]); +#else + NTexture texture = new NTexture((Texture2D)bundle.mainAsset); +#endif + texture.refCount++; + bundle.Unload(false); + + _pool[item.url] = texture; + + if (item.onSuccess != null) + item.onSuccess(texture); + } + else + { + if (item.onFail != null) + item.onFail(www.error); + } + } + + _started = false; + } + + IEnumerator FreeIdleIcons() + { + yield return new WaitForSeconds(POOL_CHECK_TIME); //check the pool every 30 seconds + + int cnt = _pool.Count; + if (cnt > MAX_POOL_SIZE) + { + ArrayList toRemove = null; + foreach (DictionaryEntry de in _pool) + { + string key = (string)de.Key; + NTexture texture = (NTexture)de.Value; + if (texture.refCount == 0) + { + if (toRemove == null) + toRemove = new ArrayList(); + toRemove.Add(key); + texture.Dispose(); + + //Debug.Log("free icon " + de.Key); + + cnt--; + if (cnt <= 8) + break; + } + } + if (toRemove != null) + { + foreach (string key in toRemove) + _pool.Remove(key); + } + } + } + +} + +class LoadItem +{ + public string url; + public LoadCompleteCallback onSuccess; + public LoadErrorCallback onFail; +} diff --git a/Assets/Plugins/FairyGUI/Examples/Bag/IconManager.cs.meta b/Assets/Plugins/FairyGUI/Examples/Bag/IconManager.cs.meta new file mode 100644 index 0000000..57b4178 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Bag/IconManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b5725e4855896724d9bdeb29c68c6c92 +timeCreated: 1446193148 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Bag/MyGLoader.cs b/Assets/Plugins/FairyGUI/Examples/Bag/MyGLoader.cs new file mode 100644 index 0000000..67cff27 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Bag/MyGLoader.cs @@ -0,0 +1,33 @@ +using UnityEngine; +using FairyGUI; +using System.IO; + +/// +/// Extend the ability of GLoader +/// +public class MyGLoader : GLoader +{ + protected override void LoadExternal() + { + IconManager.inst.LoadIcon(this.url, OnLoadSuccess, OnLoadFail); + } + + protected override void FreeExternal(NTexture texture) + { + texture.refCount--; + } + + void OnLoadSuccess(NTexture texture) + { + if (string.IsNullOrEmpty(this.url)) + return; + + this.onExternalLoadSuccess(texture); + } + + void OnLoadFail(string error) + { + Debug.Log("load " + this.url + " failed: " + error); + this.onExternalLoadFailed(); + } +} diff --git a/Assets/Plugins/FairyGUI/Examples/Bag/MyGLoader.cs.meta b/Assets/Plugins/FairyGUI/Examples/Bag/MyGLoader.cs.meta new file mode 100644 index 0000000..2ed88c3 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Bag/MyGLoader.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ca2c5718cae50694a8291cc372ad458d +timeCreated: 1446193148 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Basics.meta b/Assets/Plugins/FairyGUI/Examples/Basics.meta new file mode 100644 index 0000000..e55613d --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Basics.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7afac4ff0289dac479c37c0cbf60f745 +folderAsset: yes +timeCreated: 1446194671 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Basics/BasicsMain.cs b/Assets/Plugins/FairyGUI/Examples/Basics/BasicsMain.cs new file mode 100644 index 0000000..e211ca1 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Basics/BasicsMain.cs @@ -0,0 +1,441 @@ +using UnityEngine; +using System.Collections.Generic; +using FairyGUI; + +public class BasicsMain : MonoBehaviour +{ + private GComponent _mainView; + private GObject _backBtn; + private GComponent _demoContainer; + private Controller _viewController; + private Dictionary _demoObjects; + + public Gradient lineGradient; + + void Awake() + { +#if (UNITY_5 || UNITY_5_3_OR_NEWER) + //Use the font names directly + UIConfig.defaultFont = "Microsoft YaHei"; +#else + //Need to put a ttf file into Resources folder. Here is the file name of the ttf file. + UIConfig.defaultFont = "afont"; +#endif + UIPackage.AddPackage("UI/Basics"); + + UIConfig.verticalScrollBar = "ui://Basics/ScrollBar_VT"; + UIConfig.horizontalScrollBar = "ui://Basics/ScrollBar_HZ"; + UIConfig.popupMenu = "ui://Basics/PopupMenu"; + UIConfig.buttonSound = (NAudioClip)UIPackage.GetItemAsset("Basics", "click"); + } + + void Start() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + _mainView = this.GetComponent().ui; + + _backBtn = _mainView.GetChild("btn_Back"); + _backBtn.visible = false; + _backBtn.onClick.Add(onClickBack); + + _demoContainer = _mainView.GetChild("container").asCom; + _viewController = _mainView.GetController("c1"); + + _demoObjects = new Dictionary(); + + int cnt = _mainView.numChildren; + for (int i = 0; i < cnt; i++) + { + GObject obj = _mainView.GetChildAt(i); + if (obj.group != null && obj.group.name == "btns") + obj.onClick.Add(runDemo); + } + } + + private void runDemo(EventContext context) + { + string type = ((GObject)(context.sender)).name.Substring(4); + GComponent obj; + if (!_demoObjects.TryGetValue(type, out obj)) + { + obj = UIPackage.CreateObject("Basics", "Demo_" + type).asCom; + _demoObjects[type] = obj; + } + + _demoContainer.RemoveChildren(); + _demoContainer.AddChild(obj); + _viewController.selectedIndex = 1; + _backBtn.visible = true; + + switch (type) + { + case "Graph": + PlayGraph(); + break; + + case "Button": + PlayButton(); + break; + + case "Text": + PlayText(); + break; + + case "Grid": + PlayGrid(); + break; + + case "Transition": + PlayTransition(); + break; + + case "Window": + PlayWindow(); + break; + + case "Popup": + PlayPopup(); + break; + + case "Drag&Drop": + PlayDragDrop(); + break; + + case "Depth": + PlayDepth(); + break; + + case "ProgressBar": + PlayProgressBar(); + break; + } + } + + private void onClickBack() + { + _viewController.selectedIndex = 0; + _backBtn.visible = false; + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } + + //----------------------------- + private void PlayGraph() + { + GComponent obj = _demoObjects["Graph"]; + + Shape shape; + + shape = obj.GetChild("pie").asGraph.shape; + EllipseMesh ellipse = shape.graphics.GetMeshFactory(); + ellipse.startDegree = 30; + ellipse.endDegreee = 300; + shape.graphics.SetMeshDirty(); + + shape = obj.GetChild("trapezoid").asGraph.shape; + PolygonMesh trapezoid = shape.graphics.GetMeshFactory(); + trapezoid.usePercentPositions = true; + trapezoid.points.Clear(); + trapezoid.points.Add(new Vector2(0f, 1f)); + trapezoid.points.Add(new Vector2(0.3f, 0)); + trapezoid.points.Add(new Vector2(0.7f, 0)); + trapezoid.points.Add(new Vector2(1f, 1f)); + trapezoid.texcoords.Clear(); + trapezoid.texcoords.AddRange(VertexBuffer.NormalizedUV); + shape.graphics.SetMeshDirty(); + shape.graphics.texture = (NTexture)UIPackage.GetItemAsset("Basics", "change"); + + shape = obj.GetChild("line").asGraph.shape; + LineMesh line = shape.graphics.GetMeshFactory(); + line.lineWidthCurve = AnimationCurve.Linear(0, 25, 1, 10); + line.roundEdge = true; + line.gradient = lineGradient; + line.path.Create(new GPathPoint[] { + new GPathPoint(new Vector3(0, 120, 0)), + new GPathPoint(new Vector3(20, 120, 0)), + new GPathPoint(new Vector3(100, 100, 0)), + new GPathPoint(new Vector3(180, 30, 0)), + new GPathPoint(new Vector3(100, 0, 0)), + new GPathPoint(new Vector3(20, 30, 0)), + new GPathPoint(new Vector3(100, 100, 0)), + new GPathPoint(new Vector3(180, 120, 0)), + new GPathPoint(new Vector3(200, 120, 0)), + }); + shape.graphics.SetMeshDirty(); + GTween.To(0, 1, 5).SetEase(EaseType.Linear).SetTarget(shape.graphics).OnUpdate((GTweener t) => + { + ((NGraphics)t.target).GetMeshFactory().fillEnd = t.value.x; + ((NGraphics)t.target).SetMeshDirty(); + }); + + shape = obj.GetChild("line2").asGraph.shape; + LineMesh line2 = shape.graphics.GetMeshFactory(); + line2.lineWidth = 3; + line2.roundEdge = true; + line2.path.Create(new GPathPoint[] { + new GPathPoint(new Vector3(0, 120, 0), GPathPoint.CurveType.Straight), + new GPathPoint(new Vector3(60, 30, 0), GPathPoint.CurveType.Straight), + new GPathPoint(new Vector3(80, 90, 0), GPathPoint.CurveType.Straight), + new GPathPoint(new Vector3(140, 30, 0), GPathPoint.CurveType.Straight), + new GPathPoint(new Vector3(160, 90, 0), GPathPoint.CurveType.Straight), + new GPathPoint(new Vector3(220, 30, 0), GPathPoint.CurveType.Straight) + }); + shape.graphics.SetMeshDirty(); + + GObject image = obj.GetChild("line3"); + LineMesh line3 = image.displayObject.graphics.GetMeshFactory(); + line3.lineWidth = 30; + line3.roundEdge = false; + line3.path.Create(new GPathPoint[] { + new GPathPoint(new Vector3(0, 30, 0), new Vector3(50, -30), new Vector3(150, -50)), + new GPathPoint(new Vector3(200, 30, 0), new Vector3(300, 130)), + new GPathPoint(new Vector3(400, 30, 0)) + }); + image.displayObject.graphics.SetMeshDirty(); + } + + //----------------------------- + private void PlayButton() + { + GComponent obj = _demoObjects["Button"]; + obj.GetChild("n34").onClick.Add(() => { UnityEngine.Debug.Log("click button"); }); + } + + //------------------------------ + private void PlayText() + { + GComponent obj = _demoObjects["Text"]; + obj.GetChild("n12").asRichTextField.onClickLink.Add((EventContext context) => + { + GRichTextField t = context.sender as GRichTextField; + t.text = "[img]ui://Basics/pet[/img][color=#FF0000]You click the link[/color]:" + context.data; + }); + obj.GetChild("n25").onClick.Add(() => + { + obj.GetChild("n24").text = obj.GetChild("n22").text; + }); + } + + //------------------------------ + private void PlayGrid() + { + GComponent obj = _demoObjects["Grid"]; + GList list1 = obj.GetChild("list1").asList; + list1.RemoveChildrenToPool(); + string[] testNames = System.Enum.GetNames(typeof(RuntimePlatform)); + Color[] testColor = new Color[] { Color.yellow, Color.red, Color.white, Color.cyan }; + int cnt = testNames.Length; + for (int i = 0; i < cnt; i++) + { + GButton item = list1.AddItemFromPool().asButton; + item.GetChild("t0").text = "" + (i + 1); + item.GetChild("t1").text = testNames[i]; + item.GetChild("t2").asTextField.color = testColor[UnityEngine.Random.Range(0, 4)]; + item.GetChild("star").asProgress.value = (int)((float)UnityEngine.Random.Range(1, 4) / 3f * 100); + } + + GList list2 = obj.GetChild("list2").asList; + list2.RemoveChildrenToPool(); + for (int i = 0; i < cnt; i++) + { + GButton item = list2.AddItemFromPool().asButton; + item.GetChild("cb").asButton.selected = false; + item.GetChild("t1").text = testNames[i]; + item.GetChild("mc").asMovieClip.playing = i % 2 == 0; + item.GetChild("t3").text = "" + UnityEngine.Random.Range(0, 10000); + } + } + + //------------------------------ + private void PlayTransition() + { + GComponent obj = _demoObjects["Transition"]; + obj.GetChild("n2").asCom.GetTransition("t0").Play(int.MaxValue, 0, null); + obj.GetChild("n3").asCom.GetTransition("peng").Play(int.MaxValue, 0, null); + + obj.onAddedToStage.Add(() => + { + obj.GetChild("n2").asCom.GetTransition("t0").Stop(); + obj.GetChild("n3").asCom.GetTransition("peng").Stop(); + }); + } + + //------------------------------ + private Window _winA; + private Window _winB; + private void PlayWindow() + { + GComponent obj = _demoObjects["Window"]; + obj.GetChild("n0").onClick.Add(() => + { + if (_winA == null) + _winA = new Window1(); + _winA.Show(); + }); + + obj.GetChild("n1").onClick.Add(() => + { + if (_winB == null) + _winB = new Window2(); + _winB.Show(); + }); + } + + //------------------------------ + private PopupMenu _pm; + private GComponent _popupCom; + private void PlayPopup() + { + if (_pm == null) + { + _pm = new PopupMenu(); + _pm.AddItem("Item 1", __clickMenu); + _pm.AddItem("Item 2", __clickMenu); + _pm.AddItem("Item 3", __clickMenu); + _pm.AddItem("Item 4", __clickMenu); + } + + if (_popupCom == null) + { + _popupCom = UIPackage.CreateObject("Basics", "Component12").asCom; + _popupCom.Center(); + } + GComponent obj = _demoObjects["Popup"]; + obj.GetChild("n0").onClick.Add((EventContext context) => + { + _pm.Show((GObject)context.sender, PopupDirection.Down); + }); + + obj.GetChild("n1").onClick.Add(() => + { + GRoot.inst.ShowPopup(_popupCom); + }); + + + obj.onRightClick.Add(() => + { + _pm.Show(); + }); + } + + private void __clickMenu(EventContext context) + { + GObject itemObject = (GObject)context.data; + UnityEngine.Debug.Log("click " + itemObject.text); + } + + //------------------------------ + Vector2 startPos; + private void PlayDepth() + { + GComponent obj = _demoObjects["Depth"]; + GComponent testContainer = obj.GetChild("n22").asCom; + GObject fixedObj = testContainer.GetChild("n0"); + fixedObj.sortingOrder = 100; + fixedObj.draggable = true; + + int numChildren = testContainer.numChildren; + int i = 0; + while (i < numChildren) + { + GObject child = testContainer.GetChildAt(i); + if (child != fixedObj) + { + testContainer.RemoveChildAt(i); + numChildren--; + } + else + i++; + } + startPos = new Vector2(fixedObj.x, fixedObj.y); + + obj.GetChild("btn0").onClick.Add(() => + { + GGraph graph = new GGraph(); + startPos.x += 10; + startPos.y += 10; + graph.xy = startPos; + graph.DrawRect(150, 150, 1, Color.black, Color.red); + obj.GetChild("n22").asCom.AddChild(graph); + }); + + obj.GetChild("btn1").onClick.Add(() => + { + GGraph graph = new GGraph(); + startPos.x += 10; + startPos.y += 10; + graph.xy = startPos; + graph.DrawRect(150, 150, 1, Color.black, Color.green); + graph.sortingOrder = 200; + obj.GetChild("n22").asCom.AddChild(graph); + }); + } + + //------------------------------ + private void PlayDragDrop() + { + GComponent obj = _demoObjects["Drag&Drop"]; + obj.GetChild("a").draggable = true; + + GButton b = obj.GetChild("b").asButton; + b.draggable = true; + b.onDragStart.Add((EventContext context) => + { + //Cancel the original dragging, and start a new one with a agent. + context.PreventDefault(); + + DragDropManager.inst.StartDrag(b, b.icon, b.icon, (int)context.data); + }); + + GButton c = obj.GetChild("c").asButton; + c.icon = null; + c.onDrop.Add((EventContext context) => + { + c.icon = (string)context.data; + }); + + GObject bounds = obj.GetChild("n7"); + Rect rect = bounds.TransformRect(new Rect(0, 0, bounds.width, bounds.height), GRoot.inst); + + //---!!Because at this time the container is on the right side of the stage and beginning to move to left(transition), so we need to caculate the final position + rect.x -= obj.parent.x; + //---- + + GButton d = obj.GetChild("d").asButton; + d.draggable = true; + d.dragBounds = rect; + } + + //------------------------------ + private void PlayProgressBar() + { + GComponent obj = _demoObjects["ProgressBar"]; + Timers.inst.Add(0.001f, 0, __playProgress); + obj.onRemovedFromStage.Add(() => { Timers.inst.Remove(__playProgress); }); + } + + void __playProgress(object param) + { + GComponent obj = _demoObjects["ProgressBar"]; + int cnt = obj.numChildren; + for (int i = 0; i < cnt; i++) + { + GProgressBar child = obj.GetChildAt(i) as GProgressBar; + if (child != null) + { + + child.value += 1; + if (child.value > child.max) + child.value = 0; + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Basics/BasicsMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/Basics/BasicsMain.cs.meta new file mode 100644 index 0000000..72dbdfb --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Basics/BasicsMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a7c649dfadf79df4a963190eded74b30 +timeCreated: 1446194671 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Basics/Window1.cs b/Assets/Plugins/FairyGUI/Examples/Basics/Window1.cs new file mode 100644 index 0000000..318878f --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Basics/Window1.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using FairyGUI; + +public class Window1 : Window +{ + public Window1() + { + } + + protected override void OnInit() + { + this.contentPane = UIPackage.CreateObject("Basics", "WindowA").asCom; + this.Center(); + } + + override protected void OnShown() + { + GList list = this.contentPane.GetChild("n6").asList; + list.RemoveChildrenToPool(); + + for (int i = 0; i < 6; i++) + { + GButton item = list.AddItemFromPool().asButton; + item.title = "" + i; + item.icon = UIPackage.GetItemURL("Basics", "r4"); + } + } +} diff --git a/Assets/Plugins/FairyGUI/Examples/Basics/Window1.cs.meta b/Assets/Plugins/FairyGUI/Examples/Basics/Window1.cs.meta new file mode 100644 index 0000000..d8c168c --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Basics/Window1.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f9e33dc08a51fd04883526e4f5129e42 +timeCreated: 1447054717 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Basics/Window2.cs b/Assets/Plugins/FairyGUI/Examples/Basics/Window2.cs new file mode 100644 index 0000000..df1a5ef --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Basics/Window2.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using FairyGUI; +using UnityEngine; + +public class Window2 : Window +{ + public Window2() + { + } + + protected override void OnInit() + { + this.contentPane = UIPackage.CreateObject("Basics", "WindowB").asCom; + this.Center(); + } + + override protected void DoShowAnimation() + { + this.SetScale(0.1f, 0.1f); + this.SetPivot(0.5f, 0.5f); + this.TweenScale(new Vector2(1, 1), 0.3f).OnComplete(this.OnShown); + } + + override protected void DoHideAnimation() + { + this.TweenScale(new Vector2(0.1f, 0.1f), 0.3f).OnComplete(this.HideImmediately); + } + + override protected void OnShown() + { + contentPane.GetTransition("t1").Play(); + } + + override protected void OnHide() + { + contentPane.GetTransition("t1").Stop(); + } +} diff --git a/Assets/Plugins/FairyGUI/Examples/Basics/Window2.cs.meta b/Assets/Plugins/FairyGUI/Examples/Basics/Window2.cs.meta new file mode 100644 index 0000000..70f78ff --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Basics/Window2.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f922289dfda2b1d4689eabfcdf6a5b91 +timeCreated: 1447054712 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/BundleUsage.meta b/Assets/Plugins/FairyGUI/Examples/BundleUsage.meta new file mode 100644 index 0000000..c7499fb --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/BundleUsage.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ae0ad495a670df246b212607e661ec96 +folderAsset: yes +timeCreated: 1446643487 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/BundleUsage/BundleUsageMain.cs b/Assets/Plugins/FairyGUI/Examples/BundleUsage/BundleUsageMain.cs new file mode 100644 index 0000000..a6bd420 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/BundleUsage/BundleUsageMain.cs @@ -0,0 +1,86 @@ +using System.Collections; +using UnityEngine; +using FairyGUI; +using System.Net; +using UnityEngine.Networking; +using System; + +/// +/// Demonstrated how to load UI package from assetbundle. The bundle can be build from the Window Menu->Build FairyGUI example bundles. +/// +class BundleUsageMain : MonoBehaviour +{ + GComponent _mainView; + + void Start() + { + Application.targetFrameRate = 60; + + Stage.inst.onKeyDown.Add(OnKeyDown); + + StartCoroutine(LoadUIPackage()); + } + + IEnumerator LoadUIPackage() + { + string url = Application.streamingAssetsPath.Replace("\\", "/") + "/fairygui-examples/bundleusage.ab"; + if (Application.isEditor) + { + UriBuilder uri = new UriBuilder(url); + uri.Scheme = "file"; + url = uri.ToString(); + } + +#if UNITY_2017_2_OR_NEWER + +#if UNITY_2018_1_OR_NEWER + UnityWebRequest www = UnityWebRequestAssetBundle.GetAssetBundle(url); +#else + UnityWebRequest www = UnityWebRequest.GetAssetBundle(url); +#endif + yield return www.SendWebRequest(); + +#if UNITY_2020_2_OR_NEWER + if (www.result == UnityWebRequest.Result.Success) +#else + if (!www.isNetworkError && !www.isHttpError) +#endif + { + AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(www); +#else + WWW www = new WWW(url); + yield return www; + + if (string.IsNullOrEmpty(www.error)) + { + AssetBundle bundle = www.assetBundle; +#endif + if (bundle == null) + { + Debug.LogWarning("Run Window->Build FairyGUI example Bundles first."); + yield return 0; + } + UIPackage.AddPackage(bundle); + + _mainView = UIPackage.CreateObject("BundleUsage", "Main").asCom; + _mainView.fairyBatching = true; + _mainView.MakeFullScreen(); + _mainView.AddRelation(GRoot.inst, RelationType.Size); + + GRoot.inst.AddChild(_mainView); + _mainView.GetTransition("t0").Play(); + } + else + { + Debug.LogWarning("Run Window->Build FairyGUI example Bundles first."); + } + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} diff --git a/Assets/Plugins/FairyGUI/Examples/BundleUsage/BundleUsageMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/BundleUsage/BundleUsageMain.cs.meta new file mode 100644 index 0000000..6eba8f8 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/BundleUsage/BundleUsageMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c34dde491ef252c49af798031b5a37de +timeCreated: 1446643490 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Cooldown.meta b/Assets/Plugins/FairyGUI/Examples/Cooldown.meta new file mode 100644 index 0000000..ae29f7a --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Cooldown.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ee28fce39e275054fad5911e3f98c5e2 +folderAsset: yes +timeCreated: 1447173764 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Cooldown/CooldownMain.cs b/Assets/Plugins/FairyGUI/Examples/Cooldown/CooldownMain.cs new file mode 100644 index 0000000..b540b93 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Cooldown/CooldownMain.cs @@ -0,0 +1,57 @@ +using UnityEngine; +using FairyGUI; +public class CooldownMain : MonoBehaviour +{ + GComponent _mainView; + + GButton _btn0; + GImage _mask0; + float _time1; + + GButton _btn1; + GImage _mask1; + float _time2; + + void Start() + { + Application.targetFrameRate = 60; + + Stage.inst.onKeyDown.Add(OnKeyDown); + + _mainView = this.gameObject.GetComponent().ui; + + _btn0 = _mainView.GetChild("b0").asButton; + _btn0.icon = "Cooldown/k0"; + _time1 = 5; + _mask0 = _btn0.GetChild("mask").asImage; + + _btn1 = _mainView.GetChild("b1").asButton; + _btn1.icon = "Cooldown/k1"; + _time2 = 10; + _mask1 = _btn1.GetChild("mask").asImage; + + } + + void Update() + { + _time1 -= Time.deltaTime; + if (_time1 < 0) + _time1 = 5; + _mask0.fillAmount = 1 - (5 - _time1) / 5f; + + _time2 -= Time.deltaTime; + if (_time2 < 0) + _time2 = 10; + _btn1.text = string.Empty + Mathf.RoundToInt(_time2); + _mask1.fillAmount = 1 - (10 - _time2) / 10f; + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Cooldown/CooldownMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/Cooldown/CooldownMain.cs.meta new file mode 100644 index 0000000..a26b879 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Cooldown/CooldownMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c59a131f345dd4e4895409b111e0c434 +timeCreated: 1447174165 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Curve.meta b/Assets/Plugins/FairyGUI/Examples/Curve.meta new file mode 100644 index 0000000..6c26a32 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Curve.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9255b3554fc92214b98dc85f52b3ebb2 +folderAsset: yes +timeCreated: 1461431337 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Curve/CurveMain.cs b/Assets/Plugins/FairyGUI/Examples/Curve/CurveMain.cs new file mode 100644 index 0000000..0b5803b --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Curve/CurveMain.cs @@ -0,0 +1,58 @@ +using UnityEngine; +using FairyGUI; + +public class CurveMain : MonoBehaviour +{ + GComponent _mainView; + GList _list; + + void Start() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + _mainView = this.GetComponent().ui; + + _list = _mainView.GetChild("list").asList; + _list.SetVirtualAndLoop(); + _list.itemRenderer = RenderListItem; + _list.numItems = 5; + _list.scrollPane.onScroll.Add(DoSpecialEffect); + + DoSpecialEffect(); + } + + void DoSpecialEffect() + { + //change the scale according to the distance to middle + float midX = _list.scrollPane.posX + _list.viewWidth / 2; + int cnt = _list.numChildren; + for (int i = 0; i < cnt; i++) + { + GObject obj = _list.GetChildAt(i); + float dist = Mathf.Abs(midX - obj.x - obj.width / 2); + if (dist > obj.width) //no intersection + obj.SetScale(1, 1); + else + { + float ss = 1 + (1 - dist / obj.width) * 0.24f; + obj.SetScale(ss, ss); + } + } + } + + void RenderListItem(int index, GObject obj) + { + GButton item = (GButton)obj; + item.SetPivot(0.5f, 0.5f); + item.icon = UIPackage.GetItemURL("Curve", "n" + (index + 1)); + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Curve/CurveMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/Curve/CurveMain.cs.meta new file mode 100644 index 0000000..aed15a3 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Curve/CurveMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d30b14c0ce756e2428ef9db93b692b69 +timeCreated: 1461431341 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/CutScene.meta b/Assets/Plugins/FairyGUI/Examples/CutScene.meta new file mode 100644 index 0000000..083adc2 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/CutScene.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0b781546cb2bc024a9f388f515ff11e4 +folderAsset: yes +timeCreated: 1446628629 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/CutScene/CutSceneMain.cs b/Assets/Plugins/FairyGUI/Examples/CutScene/CutSceneMain.cs new file mode 100644 index 0000000..a1cfafd --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/CutScene/CutSceneMain.cs @@ -0,0 +1,28 @@ +using System.Collections; +using UnityEngine; +using FairyGUI; + +/// +/// Demonstrated the simple flow of a game. +/// +public class CutSceneMain : MonoBehaviour +{ + void Start() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + UIPackage.AddPackage("UI/CutScene"); + + LevelManager.inst.Init(); + LevelManager.inst.LoadLevel("scene1"); + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/CutScene/CutSceneMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/CutScene/CutSceneMain.cs.meta new file mode 100644 index 0000000..0c9d223 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/CutScene/CutSceneMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f0c05fcb4b735cf4587717a360b2a231 +timeCreated: 1446628633 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/CutScene/LevelManager.cs b/Assets/Plugins/FairyGUI/Examples/CutScene/LevelManager.cs new file mode 100644 index 0000000..a08c2a1 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/CutScene/LevelManager.cs @@ -0,0 +1,82 @@ +using System.Collections; +using UnityEngine; +#if UNITY_5_3_OR_NEWER +using UnityEngine.SceneManagement; +#endif +using FairyGUI; + +public class LevelManager : MonoBehaviour +{ + static LevelManager _instance; + public static LevelManager inst + { + get + { + if (_instance == null) + { + GameObject go = new GameObject("LevelManager"); + DontDestroyOnLoad(go); + _instance = go.AddComponent(); + } + return _instance; + } + } + + GComponent _cutSceneView; + GComponent _mainView; + + public LevelManager() + { + } + + public void Init() + { + _cutSceneView = UIPackage.CreateObject("CutScene", "CutScene").asCom; + _cutSceneView.SetSize(GRoot.inst.width, GRoot.inst.height); + _cutSceneView.AddRelation(GRoot.inst, RelationType.Size); + + _mainView = UIPackage.CreateObject("CutScene", "Main").asCom; + _mainView.SetSize(GRoot.inst.width, GRoot.inst.height); + _mainView.AddRelation(GRoot.inst, RelationType.Size); + + _mainView.GetChild("n0").onClick.Add(() => + { + LoadLevel("scene1"); + }); + + _mainView.GetChild("n1").onClick.Add(() => + { + LoadLevel("scene2"); + }); + } + + public void LoadLevel(string levelName) + { + StartCoroutine(DoLoad(levelName)); + GRoot.inst.AddChild(_cutSceneView); + } + + IEnumerator DoLoad(string sceneName) + { + GRoot.inst.AddChild(_cutSceneView); + GProgressBar pb = _cutSceneView.GetChild("pb").asProgress; + pb.value = 0; +#if UNITY_5_3_OR_NEWER + AsyncOperation op = SceneManager.LoadSceneAsync(sceneName); +#else + AsyncOperation op = Application.LoadLevelAsync(sceneName); +#endif + float startTime = Time.time; + while (!op.isDone || pb.value != 100) + { + int value = (int)((Time.time - startTime) * 100f / 3f); + if (value > 100) + value = 100; + pb.value = value; + yield return null; + } + + GRoot.inst.RemoveChild(_cutSceneView); + GRoot.inst.AddChild(_mainView); + } +} diff --git a/Assets/Plugins/FairyGUI/Examples/CutScene/LevelManager.cs.meta b/Assets/Plugins/FairyGUI/Examples/CutScene/LevelManager.cs.meta new file mode 100644 index 0000000..15e4d49 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/CutScene/LevelManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cfefd808bb86e4f4cb34eaf9da5d1a36 +timeCreated: 1446630965 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Editor.meta b/Assets/Plugins/FairyGUI/Examples/Editor.meta new file mode 100644 index 0000000..543b0eb --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b79c211a7d63ecf4796b13556fd29826 +folderAsset: yes +timeCreated: 1446620759 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Editor/BuildAssetBundles.cs b/Assets/Plugins/FairyGUI/Examples/Editor/BuildAssetBundles.cs new file mode 100644 index 0000000..5dab672 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Editor/BuildAssetBundles.cs @@ -0,0 +1,33 @@ +using UnityEngine; +using UnityEditor; +using System.IO; + +public class BuildAssetBundles +{ + [MenuItem("Window/Build FairyGUI Example Bundles")] + public static void Build() + { + string testPath = "UI/BundleUsage_fui"; + Object obj = Resources.Load(testPath); + string path = AssetDatabase.GetAssetPath(obj); + if(string.IsNullOrEmpty(path)) + { + Debug.LogWarning("sample not found: " + testPath); + return; + } + string basePath = path.Substring(0, path.Length - testPath.Length - 6); + + for (int i = 0; i < 10; i++) + { + AssetImporter.GetAtPath(basePath + "Icons/i" + i + ".png").assetBundleName = "fairygui-examples/i" + i + ".ab"; + } + + AssetImporter.GetAtPath(basePath + "UI/BundleUsage_fui.bytes").assetBundleName = "fairygui-examples/bundleusage.ab"; + AssetImporter.GetAtPath(basePath + "UI/BundleUsage_atlas0.png").assetBundleName = "fairygui-examples/bundleusage.ab"; + + if (!Directory.Exists(Application.streamingAssetsPath)) + Directory.CreateDirectory(Application.streamingAssetsPath); + + BuildPipeline.BuildAssetBundles(Application.streamingAssetsPath, BuildAssetBundleOptions.None, EditorUserBuildSettings.activeBuildTarget); + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Editor/BuildAssetBundles.cs.meta b/Assets/Plugins/FairyGUI/Examples/Editor/BuildAssetBundles.cs.meta new file mode 100644 index 0000000..8545c92 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Editor/BuildAssetBundles.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bb6ce699bc9e31440b4f01462aacc612 +timeCreated: 1446625466 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/EmitNumbers.meta b/Assets/Plugins/FairyGUI/Examples/EmitNumbers.meta new file mode 100644 index 0000000..bae1563 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/EmitNumbers.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 91fdebf77175d934ab3d4689ca57f396 +folderAsset: yes +timeCreated: 1446569240 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitComponent.cs b/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitComponent.cs new file mode 100644 index 0000000..2910a78 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitComponent.cs @@ -0,0 +1,94 @@ +using UnityEngine; +using FairyGUI; + +public class EmitComponent : GComponent +{ + GLoader _symbolLoader; + GTextField _numberText; + Transform _owner; + + const float OFFSET_ADDITION = 2.2f; + static Vector2 JITTER_FACTOR = new Vector2(80, 80); + + public EmitComponent() + { + this.touchable = false; + + _symbolLoader = new GLoader(); + _symbolLoader.autoSize = true; + AddChild(_symbolLoader); + + _numberText = new GTextField(); + _numberText.autoSize = AutoSizeType.Both; + + AddChild(_numberText); + } + + public void SetHurt(Transform owner, int type, long hurt, bool critical) + { + _owner = owner; + + TextFormat tf = _numberText.textFormat; + if (type == 0) + tf.font = EmitManager.inst.hurtFont1; + else + tf.font = EmitManager.inst.hurtFont2; + _numberText.textFormat = tf; + _numberText.text = "-" + hurt; + + if (critical) + _symbolLoader.url = EmitManager.inst.criticalSign; + else + _symbolLoader.url = ""; + + UpdateLayout(); + + this.alpha = 1; + UpdatePosition(Vector2.zero); + Vector2 rnd = Vector2.Scale(UnityEngine.Random.insideUnitCircle, JITTER_FACTOR); + int toX = (int)rnd.x * 2; + int toY = (int)rnd.y * 2; + + EmitManager.inst.view.AddChild(this); + GTween.To(Vector2.zero, new Vector2(toX, toY), 1f).SetTarget(this) + .OnUpdate((GTweener tweener) => { this.UpdatePosition(tweener.value.vec2); }).OnComplete(this.OnCompleted); + this.TweenFade(0, 0.5f).SetDelay(0.5f); + } + + void UpdateLayout() + { + this.SetSize(_symbolLoader.width + _numberText.width, Mathf.Max(_symbolLoader.height, _numberText.height)); + _numberText.SetXY(_symbolLoader.width > 0 ? (_symbolLoader.width + 2) : 0, + (this.height - _numberText.height) / 2); + _symbolLoader.y = (this.height - _symbolLoader.height) / 2; + } + + void UpdatePosition(Vector2 pos) + { + Vector3 ownerPos = _owner.position; + ownerPos.y += OFFSET_ADDITION; + Vector3 screenPos = Camera.main.WorldToScreenPoint(ownerPos); + screenPos.y = Screen.height - screenPos.y; //convert to Stage coordinates system + + Vector3 pt = GRoot.inst.GlobalToLocal(screenPos); + this.SetXY(Mathf.RoundToInt(pt.x + pos.x - this.actualWidth / 2), Mathf.RoundToInt(pt.y + pos.y - this.height)); + } + + void OnCompleted() + { + _owner = null; + EmitManager.inst.view.RemoveChild(this); + EmitManager.inst.ReturnComponent(this); + } + + public void Cancel() + { + _owner = null; + if (this.parent != null) + { + GTween.Kill(this); + EmitManager.inst.view.RemoveChild(this); + } + EmitManager.inst.ReturnComponent(this); + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitComponent.cs.meta b/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitComponent.cs.meta new file mode 100644 index 0000000..8b7e97f --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d8535a403e7324c49890b1de70edc2a0 +timeCreated: 1446570746 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitManager.cs b/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitManager.cs new file mode 100644 index 0000000..ef12b53 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitManager.cs @@ -0,0 +1,50 @@ +using System.Collections.Generic; +using UnityEngine; +using FairyGUI; + +public class EmitManager +{ + static EmitManager _instance; + public static EmitManager inst + { + get + { + if (_instance == null) + _instance = new EmitManager(); + return _instance; + } + } + + public string hurtFont1; + public string hurtFont2; + public string criticalSign; + + public GComponent view { get; private set; } + + private readonly Stack _componentPool = new Stack(); + + public EmitManager() + { + hurtFont1 = "ui://EmitNumbers/number1"; + hurtFont2 = "ui://EmitNumbers/number2"; + criticalSign = "ui://EmitNumbers/critical"; + + view = new GComponent(); + GRoot.inst.AddChild(view); + } + + public void Emit(Transform owner, int type, long hurt, bool critical) + { + EmitComponent ec; + if (_componentPool.Count > 0) + ec = _componentPool.Pop(); + else + ec = new EmitComponent(); + ec.SetHurt(owner, type, hurt, critical); + } + + public void ReturnComponent(EmitComponent com) + { + _componentPool.Push(com); + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitManager.cs.meta b/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitManager.cs.meta new file mode 100644 index 0000000..53bd627 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 335d4e8607937704285d9e0aec495020 +timeCreated: 1446570745 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitNumbersMain.cs b/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitNumbersMain.cs new file mode 100644 index 0000000..f1cdcdf --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitNumbersMain.cs @@ -0,0 +1,44 @@ +using System.Collections; +using UnityEngine; +using FairyGUI; + +public class EmitNumbersMain : MonoBehaviour +{ + Transform _npc1; + Transform _npc2; + bool _finished; + + void Start() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + _npc1 = GameObject.Find("npc1").transform; + _npc2 = GameObject.Find("npc2").transform; + + StartCoroutine(RunTest()); + } + + void OnDisable() + { + _finished = true; + } + + IEnumerator RunTest() + { + while (!_finished) + { + EmitManager.inst.Emit(_npc1, 0, UnityEngine.Random.Range(100, 100000), UnityEngine.Random.Range(0, 10) == 5); + EmitManager.inst.Emit(_npc2, 1, UnityEngine.Random.Range(100, 100000), UnityEngine.Random.Range(0, 10) == 5); + yield return new WaitForSeconds(0.3f); + } + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitNumbersMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitNumbersMain.cs.meta new file mode 100644 index 0000000..e286ee3 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/EmitNumbers/EmitNumbersMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3ee84d8c960d2404893a09cb4009bee8 +timeCreated: 1446569244 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Emoji.meta b/Assets/Plugins/FairyGUI/Examples/Emoji.meta new file mode 100644 index 0000000..b7f5509 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Emoji.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fbba022553e7d1d438d20305716af90e +folderAsset: yes +timeCreated: 1446193142 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Emoji/EmojiMain.cs b/Assets/Plugins/FairyGUI/Examples/Emoji/EmojiMain.cs new file mode 100644 index 0000000..9489713 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Emoji/EmojiMain.cs @@ -0,0 +1,196 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using FairyGUI; + +public class EmojiMain : MonoBehaviour +{ + GComponent _mainView; + GList _list; + GTextInput _input1; + GTextInput _input2; + GComponent _emojiSelectUI1; + GComponent _emojiSelectUI2; + + class Message + { + public string sender; + public string senderIcon; + public string msg; + public bool fromMe; + } + List _messages; + + Dictionary _emojies; + + void Awake() + { + UIPackage.AddPackage("UI/Emoji"); + + UIConfig.verticalScrollBar = "ui://Emoji/ScrollBar_VT"; + UIConfig.defaultScrollBarDisplay = ScrollBarDisplayType.Auto; + } + + void Start() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + _messages = new List(); + + _mainView = this.GetComponent().ui; + + _list = _mainView.GetChild("list").asList; + _list.SetVirtual(); + _list.itemProvider = GetListItemResource; + _list.itemRenderer = RenderListItem; + + _input1 = _mainView.GetChild("input1").asTextInput; + _input1.onKeyDown.Add(__inputKeyDown1); + + _input2 = _mainView.GetChild("input2").asTextInput; + _input2.onKeyDown.Add(__inputKeyDown2); + + //作为demo,这里只添加了部分表情素材 + _emojies = new Dictionary(); + for (uint i = 0x1f600; i < 0x1f637; i++) + { + string url = UIPackage.GetItemURL("Emoji", Convert.ToString(i, 16)); + if (url != null) + _emojies.Add(i, new Emoji(url)); + } + _input2.emojies = _emojies; + + _mainView.GetChild("btnSend1").onClick.Add(__clickSendBtn1); + _mainView.GetChild("btnSend2").onClick.Add(__clickSendBtn2); + + _mainView.GetChild("btnEmoji1").onClick.Add(__clickEmojiBtn1); + _mainView.GetChild("btnEmoji2").onClick.Add(__clickEmojiBtn2); + + _emojiSelectUI1 = UIPackage.CreateObject("Emoji", "EmojiSelectUI").asCom; + _emojiSelectUI1.fairyBatching = true; + _emojiSelectUI1.GetChild("list").asList.onClickItem.Add(__clickEmoji1); + + _emojiSelectUI2 = UIPackage.CreateObject("Emoji", "EmojiSelectUI_ios").asCom; + _emojiSelectUI2.fairyBatching = true; + _emojiSelectUI2.GetChild("list").asList.onClickItem.Add(__clickEmoji2); + } + + void AddMsg(string sender, string senderIcon, string msg, bool fromMe) + { + bool isScrollBottom = _list.scrollPane.isBottomMost; + + Message newMessage = new Message(); + newMessage.sender = sender; + newMessage.senderIcon = senderIcon; + newMessage.msg = msg; + newMessage.fromMe = fromMe; + _messages.Add(newMessage); + + if (newMessage.fromMe) + { + if (_messages.Count == 1 || UnityEngine.Random.Range(0f, 1f) < 0.5f) + { + Message replyMessage = new Message(); + replyMessage.sender = "FairyGUI"; + replyMessage.senderIcon = "r1"; + replyMessage.msg = "Today is a good day. \U0001f600"; + replyMessage.fromMe = false; + _messages.Add(replyMessage); + } + } + + if (_messages.Count > 100) + _messages.RemoveRange(0, _messages.Count - 100); + + _list.numItems = _messages.Count; + + if (isScrollBottom) + _list.scrollPane.ScrollBottom(); + } + + string GetListItemResource(int index) + { + Message msg = _messages[index]; + if (msg.fromMe) + return "ui://Emoji/chatRight"; + else + return "ui://Emoji/chatLeft"; + } + + void RenderListItem(int index, GObject obj) + { + GButton item = (GButton)obj; + Message msg = _messages[index]; + if (!msg.fromMe) + item.GetChild("name").text = msg.sender; + item.icon = UIPackage.GetItemURL("Emoji", msg.senderIcon); + + //Recaculate the text width + GRichTextField tf = item.GetChild("msg").asRichTextField; + tf.emojies = _emojies; + tf.text = EmojiParser.inst.Parse(msg.msg); + } + + void __clickSendBtn1(EventContext context) + { + string msg = _input1.text; + if (msg.Length == 0) + return; + + AddMsg("Unity", "r0", msg, true); + _input1.text = ""; + } + + void __clickSendBtn2(EventContext context) + { + string msg = _input2.text; + if (msg.Length == 0) + return; + + AddMsg("Unity", "r0", msg, true); + _input2.text = ""; + } + + void __clickEmojiBtn1(EventContext context) + { + GRoot.inst.ShowPopup(_emojiSelectUI1, (GObject)context.sender, PopupDirection.Up); + } + + void __clickEmojiBtn2(EventContext context) + { + GRoot.inst.ShowPopup(_emojiSelectUI2, (GObject)context.sender, PopupDirection.Up); + } + + void __clickEmoji1(EventContext context) + { + GButton item = (GButton)context.data; + _input1.ReplaceSelection("[:" + item.text + "]"); + } + + void __clickEmoji2(EventContext context) + { + GButton item = (GButton)context.data; + _input2.ReplaceSelection(Char.ConvertFromUtf32(Convert.ToInt32(UIPackage.GetItemByURL(item.icon).name, 16))); + } + + void __inputKeyDown1(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Return) + _mainView.GetChild("btnSend1").onClick.Call(); + } + + void __inputKeyDown2(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Return) + _mainView.GetChild("btnSend2").onClick.Call(); + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Emoji/EmojiMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/Emoji/EmojiMain.cs.meta new file mode 100644 index 0000000..6d3b882 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Emoji/EmojiMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4953851686ef2ed4d90f67c5fe144849 +timeCreated: 1446193148 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Emoji/EmojiParser.cs b/Assets/Plugins/FairyGUI/Examples/Emoji/EmojiParser.cs new file mode 100644 index 0000000..93a4e80 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Emoji/EmojiParser.cs @@ -0,0 +1,31 @@ +using FairyGUI; +using FairyGUI.Utils; + +public class EmojiParser : UBBParser +{ + static EmojiParser _instance; + public new static EmojiParser inst + { + get + { + if (_instance == null) + _instance = new EmojiParser(); + return _instance; + } + } + + private static string[] TAGS = new string[] + { "88","am","bs","bz","ch","cool","dhq","dn","fd","gz","han","hx","hxiao","hxiu" }; + public EmojiParser () + { + foreach (string ss in TAGS) + { + this.handlers[":"+ss] = OnTag_Emoji; + } + } + + string OnTag_Emoji(string tagName, bool end, string attr) + { + return ""; + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Emoji/EmojiParser.cs.meta b/Assets/Plugins/FairyGUI/Examples/Emoji/EmojiParser.cs.meta new file mode 100644 index 0000000..994d6b4 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Emoji/EmojiParser.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ebe7b2fb6b5fe8c488fac00b1b177326 +timeCreated: 1446193148 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Extension.meta b/Assets/Plugins/FairyGUI/Examples/Extension.meta new file mode 100644 index 0000000..5ff8a6a --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Extension.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: dc519b1dfb870064ea786640d8a0a8d1 +folderAsset: yes +timeCreated: 1446648215 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Extension/ExtensionMain.cs b/Assets/Plugins/FairyGUI/Examples/Extension/ExtensionMain.cs new file mode 100644 index 0000000..231c54b --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Extension/ExtensionMain.cs @@ -0,0 +1,55 @@ +using UnityEngine; +using FairyGUI; + +public class ExtensionMain : MonoBehaviour +{ + GComponent _mainView; + GList _list; + + void Awake() + { + UIPackage.AddPackage("UI/Extension"); + UIObjectFactory.SetPackageItemExtension("ui://Extension/mailItem", typeof(MailItem)); + + } + + void Start() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + _mainView = this.GetComponent().ui; + + _list = _mainView.GetChild("mailList").asList; + for (int i = 0; i < 10; i++) + { + MailItem item = (MailItem)_list.AddItemFromPool(); + item.setFetched(i % 3 == 0); + item.setRead(i % 2 == 0); + item.setTime("5 Nov 2015 16:24:33"); + item.title = "Mail title here"; + } + + _list.EnsureBoundsCorrect(); + float delay = 0f; + for (int i = 0; i < 10; i++) + { + MailItem item = (MailItem)_list.GetChildAt(i); + if (_list.IsChildInView(item)) + { + item.PlayEffect(delay); + delay += 0.2f; + } + else + break; + } + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Extension/ExtensionMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/Extension/ExtensionMain.cs.meta new file mode 100644 index 0000000..410eea4 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Extension/ExtensionMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1b0647927cbff65449b89590caf97481 +timeCreated: 1446648215 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Extension/MailItem.cs b/Assets/Plugins/FairyGUI/Examples/Extension/MailItem.cs new file mode 100644 index 0000000..a67c34c --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Extension/MailItem.cs @@ -0,0 +1,41 @@ +using UnityEngine; +using FairyGUI; + +public class MailItem : GButton +{ + GTextField _timeText; + Controller _readController; + Controller _fetchController; + Transition _trans; + + public override void ConstructFromXML(FairyGUI.Utils.XML cxml) + { + base.ConstructFromXML(cxml); + + _timeText = this.GetChild("timeText").asTextField; + _readController = this.GetController("IsRead"); + _fetchController = this.GetController("c1"); + _trans = this.GetTransition("t0"); + } + + public void setTime(string value) + { + _timeText.text = value; + } + + public void setRead(bool value) + { + _readController.selectedIndex = value ? 1 : 0; + } + + public void setFetched(bool value) + { + _fetchController.selectedIndex = value ? 1 : 0; + } + + public void PlayEffect(float delay) + { + this.visible = false; + _trans.Play(1, delay, null); + } +} diff --git a/Assets/Plugins/FairyGUI/Examples/Extension/MailItem.cs.meta b/Assets/Plugins/FairyGUI/Examples/Extension/MailItem.cs.meta new file mode 100644 index 0000000..15df212 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Extension/MailItem.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 26140e87934f8754689c7bf2ac147fbe +timeCreated: 1446648219 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Filter.meta b/Assets/Plugins/FairyGUI/Examples/Filter.meta new file mode 100644 index 0000000..1436889 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Filter.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 029ae1bcb2ae7f2448723a7be724a31d +folderAsset: yes +timeCreated: 1465913233 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Filter/FilterMain.cs b/Assets/Plugins/FairyGUI/Examples/Filter/FilterMain.cs new file mode 100644 index 0000000..16f101a --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Filter/FilterMain.cs @@ -0,0 +1,78 @@ +using UnityEngine; +using FairyGUI; + +public class FilterMain : MonoBehaviour +{ + GComponent _mainView; + GSlider _s0; + GSlider _s1; + GSlider _s2; + GSlider _s3; + GSlider _s4; + + void Awake() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + UIPackage.AddPackage("UI/Filter"); + } + + void Start() + { + _mainView = this.GetComponent().ui; + + BlurFilter blurFilter = new BlurFilter(); + blurFilter.blurSize = 2; + _mainView.GetChild("n21").filter = blurFilter; + + _s0 = _mainView.GetChild("s0").asSlider; + _s1 = _mainView.GetChild("s1").asSlider; + _s2 = _mainView.GetChild("s2").asSlider; + _s3 = _mainView.GetChild("s3").asSlider; + _s4 = _mainView.GetChild("s4").asSlider; + + _s0.value = 100; + _s1.value = 100; + _s2.value = 100; + _s3.value = 200; + _s4.value = 20; + + _s0.onChanged.Add(__sliderChanged); + _s1.onChanged.Add(__sliderChanged); + _s2.onChanged.Add(__sliderChanged); + _s3.onChanged.Add(__sliderChanged); + _s4.onChanged.Add(__sliderChanged); + } + + void __sliderChanged(EventContext context) + { + int cnt = _mainView.numChildren; + for (int i = 0; i < cnt; i++) + { + GObject obj = _mainView.GetChildAt(i); + if (obj.filter is ColorFilter) + { + ColorFilter filter = (ColorFilter)obj.filter; + filter.Reset(); + filter.AdjustBrightness((float)(_s0.value - 100) / 100f); + filter.AdjustContrast((float)(_s1.value - 100) / 100f); + filter.AdjustSaturation((float)(_s2.value - 100) / 100f); + filter.AdjustHue((float)(_s3.value - 100) / 100f); + } + else if (obj.filter is BlurFilter) + { + BlurFilter filter = (BlurFilter)obj.filter; + filter.blurSize = (float)_s4.value / 100; + } + } + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Filter/FilterMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/Filter/FilterMain.cs.meta new file mode 100644 index 0000000..798bacf --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Filter/FilterMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 78878c40447242843aa913ef50cce606 +timeCreated: 1465402161 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Gesture.meta b/Assets/Plugins/FairyGUI/Examples/Gesture.meta new file mode 100644 index 0000000..319ed25 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Gesture.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c2c523738da07e8498b13cb58f69289e +folderAsset: yes +timeCreated: 1464248161 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Gesture/GestureMain.cs b/Assets/Plugins/FairyGUI/Examples/Gesture/GestureMain.cs new file mode 100644 index 0000000..85015b7 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Gesture/GestureMain.cs @@ -0,0 +1,115 @@ +using UnityEngine; +using FairyGUI; + +public class GestureMain : MonoBehaviour +{ + GComponent _mainView; + Transform _ball; + + void Awake() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + UIPackage.AddPackage("UI/Gesture"); + } + + void Start() + { + _mainView = this.GetComponent().ui; + GObject holder = _mainView.GetChild("holder"); + + _ball = GameObject.Find("Globe").transform; + + SwipeGesture gesture1 = new SwipeGesture(holder); + gesture1.onMove.Add(OnSwipeMove); + gesture1.onEnd.Add(OnSwipeEnd); + + LongPressGesture gesture2 = new LongPressGesture(holder); + gesture2.once = false; + gesture2.onAction.Add(OnHold); + + PinchGesture gesture3 = new PinchGesture(holder); + gesture3.onAction.Add(OnPinch); + + RotationGesture gesture4 = new RotationGesture(holder); + gesture4.onAction.Add(OnRotate); + } + + void OnSwipeMove(EventContext context) + { + SwipeGesture gesture = (SwipeGesture)context.sender; + Vector3 v = new Vector3(); + if (Mathf.Abs(gesture.delta.x) > Mathf.Abs(gesture.delta.y)) + { + v.y = -Mathf.Round(gesture.delta.x); + if (Mathf.Abs(v.y) < 2) //消除手抖的影响 + return; + } + else + { + v.x = -Mathf.Round(gesture.delta.y); + if (Mathf.Abs(v.x) < 2) + return; + } + _ball.Rotate(v, Space.World); + } + + void OnSwipeEnd(EventContext context) + { + SwipeGesture gesture = (SwipeGesture)context.sender; + Vector3 v = new Vector3(); + if (Mathf.Abs(gesture.velocity.x) > Mathf.Abs(gesture.velocity.y)) + { + v.y = -Mathf.Round(Mathf.Sign(gesture.velocity.x) * Mathf.Sqrt(Mathf.Abs(gesture.velocity.x))); + if (Mathf.Abs(v.y) < 2) + return; + } + else + { + v.x = -Mathf.Round(Mathf.Sign(gesture.velocity.y) * Mathf.Sqrt(Mathf.Abs(gesture.velocity.y))); + if (Mathf.Abs(v.x) < 2) + return; + } + + GTween.To(v, Vector3.zero, 0.3f).SetTarget(_ball).OnUpdate( + (GTweener tweener) => + { + _ball.Rotate(tweener.deltaValue.vec3, Space.World); + }); + } + + void OnHold(EventContext context) + { + GTween.Shake(_ball.transform.localPosition, 0.05f, 0.5f).SetTarget(_ball).OnUpdate( + (GTweener tweener) => + { + _ball.transform.localPosition = new Vector3(tweener.value.x, tweener.value.y, _ball.transform.localPosition.z); + }); + } + + void OnPinch(EventContext context) + { + GTween.Kill(_ball); + + PinchGesture gesture = (PinchGesture)context.sender; + float newValue = Mathf.Clamp(_ball.localScale.x + gesture.delta, 0.3f, 2); + _ball.localScale = new Vector3(newValue, newValue, newValue); + } + + void OnRotate(EventContext context) + { + GTween.Kill(_ball); + + RotationGesture gesture = (RotationGesture)context.sender; + _ball.Rotate(Vector3.forward, -gesture.delta, Space.World); + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Gesture/GestureMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/Gesture/GestureMain.cs.meta new file mode 100644 index 0000000..a9cf54f --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Gesture/GestureMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dffc58029aa66074287bfe11db08a102 +timeCreated: 1464248165 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Guide.meta b/Assets/Plugins/FairyGUI/Examples/Guide.meta new file mode 100644 index 0000000..56649df --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Guide.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bf04af674d0fada4d93df62ec9e22a95 +folderAsset: yes +timeCreated: 1456392097 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Guide/GuideMain.cs b/Assets/Plugins/FairyGUI/Examples/Guide/GuideMain.cs new file mode 100644 index 0000000..896236f --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Guide/GuideMain.cs @@ -0,0 +1,44 @@ +using UnityEngine; +using FairyGUI; + +public class GuideMain : MonoBehaviour +{ + GComponent _mainView; + GComponent _guideLayer; + + void Start() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + _mainView = this.GetComponent().ui; + + _guideLayer = UIPackage.CreateObject("Guide", "GuideLayer").asCom; + _guideLayer.SetSize(GRoot.inst.width, GRoot.inst.height); + _guideLayer.AddRelation(GRoot.inst, RelationType.Size); + + GObject bagBtn = _mainView.GetChild("bagBtn"); + bagBtn.onClick.Add(() => + { + _guideLayer.RemoveFromParent(); + }); + + _mainView.GetChild("n2").onClick.Add(() => + { + GRoot.inst.AddChild(_guideLayer); //!!Before using TransformRect(or GlobalToLocal), the object must be added first + Rect rect = bagBtn.TransformRect(new Rect(0, 0, bagBtn.width, bagBtn.height), _guideLayer); + + GObject window = _guideLayer.GetChild("window"); + window.size = new Vector2((int)rect.size.x, (int)rect.size.y); + window.TweenMove(new Vector2((int)rect.position.x, (int)rect.position.y), 0.5f); + }); + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Guide/GuideMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/Guide/GuideMain.cs.meta new file mode 100644 index 0000000..e2369c8 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Guide/GuideMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 917e86e515017db488b38e836ed52634 +timeCreated: 1456392101 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/HeadBar.meta b/Assets/Plugins/FairyGUI/Examples/HeadBar.meta new file mode 100644 index 0000000..ec48900 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/HeadBar.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8294eab8d3a942c43aed8054200d3119 +folderAsset: yes +timeCreated: 1446540831 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/HeadBar/HeadBarMain.cs b/Assets/Plugins/FairyGUI/Examples/HeadBar/HeadBarMain.cs new file mode 100644 index 0000000..47b1fc4 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/HeadBar/HeadBarMain.cs @@ -0,0 +1,34 @@ +using UnityEngine; +using FairyGUI; + +public class HeadBarMain : MonoBehaviour +{ + GComponent _mainView; + + void Start() + { + Application.targetFrameRate = 60; + + Stage.inst.onKeyDown.Add(OnKeyDown); + + Transform npc = GameObject.Find("npc1").transform; + UIPanel panel = npc.Find("HeadBar").GetComponent(); + panel.ui.GetChild("name").text = "Long [color=#FFFFFF]Long[/color][img]ui://HeadBar/cool[/img] Name"; + panel.ui.GetChild("blood").asProgress.value = 75; + panel.ui.GetChild("sign").asLoader.url = "ui://HeadBar/task"; + + npc = GameObject.Find("npc2").transform; + panel = npc.Find("HeadBar").GetComponent(); + panel.ui.GetChild("name").text = "Man2"; + panel.ui.GetChild("blood").asProgress.value = 25; + panel.ui.GetChild("sign").asLoader.url = "ui://HeadBar/fighting"; + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/HeadBar/HeadBarMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/HeadBar/HeadBarMain.cs.meta new file mode 100644 index 0000000..5e271bf --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/HeadBar/HeadBarMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3f24b49a96743734c8d2ef9ba2c9b32d +timeCreated: 1446540834 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/HitTest.meta b/Assets/Plugins/FairyGUI/Examples/HitTest.meta new file mode 100644 index 0000000..4a3463d --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/HitTest.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 108d5a390778d664cb644fadf56d6faf +folderAsset: yes +timeCreated: 1456474673 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/HitTest/HitTestMain.cs b/Assets/Plugins/FairyGUI/Examples/HitTest/HitTestMain.cs new file mode 100644 index 0000000..c72eb11 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/HitTest/HitTestMain.cs @@ -0,0 +1,40 @@ +using UnityEngine; +using FairyGUI; + +public class HitTestMain : MonoBehaviour +{ + Transform cube; + + void Start() + { + Application.targetFrameRate = 60; + + cube = GameObject.Find("Cube").transform; + + Stage.inst.onTouchBegin.Add(OnTouchBegin); + } + + void OnTouchBegin() + { + if (!Stage.isTouchOnUI) + { + RaycastHit hit; + Ray ray = Camera.main.ScreenPointToRay(new Vector2(Stage.inst.touchPosition.x, Screen.height - Stage.inst.touchPosition.y)); + if (Physics.Raycast(ray, out hit)) + { + if (hit.transform == cube) + { + Debug.Log("Hit the cube"); + } + } + } + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/HitTest/HitTestMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/HitTest/HitTestMain.cs.meta new file mode 100644 index 0000000..5b8d374 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/HitTest/HitTestMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 12542fe68a883624ea477c953ae0cf52 +timeCreated: 1456474677 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Joystick.meta b/Assets/Plugins/FairyGUI/Examples/Joystick.meta new file mode 100644 index 0000000..0814ea1 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Joystick.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c90dbc7e654112a4dbaa796e7e3cc987 +folderAsset: yes +timeCreated: 1446193142 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Joystick/JoystickMain.cs b/Assets/Plugins/FairyGUI/Examples/Joystick/JoystickMain.cs new file mode 100644 index 0000000..6e60f2b --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Joystick/JoystickMain.cs @@ -0,0 +1,42 @@ +using UnityEngine; +using FairyGUI; + +public class JoystickMain : MonoBehaviour +{ + GComponent _mainView; + GTextField _text; + JoystickModule _joystick; + + void Start() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + _mainView = this.GetComponent().ui; + + _text = _mainView.GetChild("n9").asTextField; + + _joystick = new JoystickModule(_mainView); + _joystick.onMove.Add(__joystickMove); + _joystick.onEnd.Add(__joystickEnd); + } + + void __joystickMove(EventContext context) + { + float degree = (float)context.data; + _text.text = "" + degree; + } + + void __joystickEnd() + { + _text.text = ""; + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Joystick/JoystickMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/Joystick/JoystickMain.cs.meta new file mode 100644 index 0000000..896b67e --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Joystick/JoystickMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 09cf2c20abdf7ea428bd3f1c68941949 +timeCreated: 1446193147 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Joystick/JoystickModule.cs b/Assets/Plugins/FairyGUI/Examples/Joystick/JoystickModule.cs new file mode 100644 index 0000000..52e00af --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Joystick/JoystickModule.cs @@ -0,0 +1,159 @@ +using FairyGUI; +using UnityEngine; + +public class JoystickModule : EventDispatcher +{ + float _InitX; + float _InitY; + float _startStageX; + float _startStageY; + float _lastStageX; + float _lastStageY; + GButton _button; + GObject _touchArea; + GObject _thumb; + GObject _center; + int touchId; + GTweener _tweener; + + public EventListener onMove { get; private set; } + public EventListener onEnd { get; private set; } + + public int radius { get; set; } + + public JoystickModule(GComponent mainView) + { + onMove = new EventListener(this, "onMove"); + onEnd = new EventListener(this, "onEnd"); + + _button = mainView.GetChild("joystick").asButton; + _button.changeStateOnClick = false; + _thumb = _button.GetChild("thumb"); + _touchArea = mainView.GetChild("joystick_touch"); + _center = mainView.GetChild("joystick_center"); + + _InitX = _center.x + _center.width / 2; + _InitY = _center.y + _center.height / 2; + touchId = -1; + radius = 150; + + _touchArea.onTouchBegin.Add(this.OnTouchBegin); + _touchArea.onTouchMove.Add(this.OnTouchMove); + _touchArea.onTouchEnd.Add(this.OnTouchEnd); + } + + public void Trigger(EventContext context) + { + OnTouchBegin(context); + } + + private void OnTouchBegin(EventContext context) + { + if (touchId == -1)//First touch + { + InputEvent evt = (InputEvent)context.data; + touchId = evt.touchId; + + if (_tweener != null) + { + _tweener.Kill(); + _tweener = null; + } + + Vector2 pt = GRoot.inst.GlobalToLocal(new Vector2(evt.x, evt.y)); + float bx = pt.x; + float by = pt.y; + _button.selected = true; + + if (bx < 0) + bx = 0; + else if (bx > _touchArea.width) + bx = _touchArea.width; + + if (by > GRoot.inst.height) + by = GRoot.inst.height; + else if (by < _touchArea.y) + by = _touchArea.y; + + _lastStageX = bx; + _lastStageY = by; + _startStageX = bx; + _startStageY = by; + + _center.visible = true; + _center.SetXY(bx - _center.width / 2, by - _center.height / 2); + _button.SetXY(bx - _button.width / 2, by - _button.height / 2); + + float deltaX = bx - _InitX; + float deltaY = by - _InitY; + float degrees = Mathf.Atan2(deltaY, deltaX) * 180 / Mathf.PI; + _thumb.rotation = degrees + 90; + + context.CaptureTouch(); + } + } + + private void OnTouchEnd(EventContext context) + { + InputEvent inputEvt = (InputEvent)context.data; + if (touchId != -1 && inputEvt.touchId == touchId) + { + touchId = -1; + _thumb.rotation = _thumb.rotation + 180; + _center.visible = false; + _tweener = _button.TweenMove(new Vector2(_InitX - _button.width / 2, _InitY - _button.height / 2), 0.3f).OnComplete(() => + { + _tweener = null; + _button.selected = false; + _thumb.rotation = 0; + _center.visible = true; + _center.SetXY(_InitX - _center.width / 2, _InitY - _center.height / 2); + } + ); + + this.onEnd.Call(); + } + } + + private void OnTouchMove(EventContext context) + { + InputEvent evt = (InputEvent)context.data; + if (touchId != -1 && evt.touchId == touchId) + { + Vector2 pt = GRoot.inst.GlobalToLocal(new Vector2(evt.x, evt.y)); + float bx = pt.x; + float by = pt.y; + float moveX = bx - _lastStageX; + float moveY = by - _lastStageY; + _lastStageX = bx; + _lastStageY = by; + float buttonX = _button.x + moveX; + float buttonY = _button.y + moveY; + + float offsetX = buttonX + _button.width / 2 - _startStageX; + float offsetY = buttonY + _button.height / 2 - _startStageY; + + float rad = Mathf.Atan2(offsetY, offsetX); + float degree = rad * 180 / Mathf.PI; + _thumb.rotation = degree + 90; + + float maxX = radius * Mathf.Cos(rad); + float maxY = radius * Mathf.Sin(rad); + if (Mathf.Abs(offsetX) > Mathf.Abs(maxX)) + offsetX = maxX; + if (Mathf.Abs(offsetY) > Mathf.Abs(maxY)) + offsetY = maxY; + + buttonX = _startStageX + offsetX; + buttonY = _startStageY + offsetY; + if (buttonX < 0) + buttonX = 0; + if (buttonY > GRoot.inst.height) + buttonY = GRoot.inst.height; + + _button.SetXY(buttonX - _button.width / 2, buttonY - _button.height / 2); + + this.onMove.Call(degree); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Joystick/JoystickModule.cs.meta b/Assets/Plugins/FairyGUI/Examples/Joystick/JoystickModule.cs.meta new file mode 100644 index 0000000..2e42949 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Joystick/JoystickModule.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c3af309cbf1dcb94f88c9484271c4c9d +timeCreated: 1446193148 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/LoopList.meta b/Assets/Plugins/FairyGUI/Examples/LoopList.meta new file mode 100644 index 0000000..26de28c --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/LoopList.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7b7ffb771e0a22b4ebf0a7c2bed7d802 +folderAsset: yes +timeCreated: 1456388404 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/LoopList/LoopListMain.cs b/Assets/Plugins/FairyGUI/Examples/LoopList/LoopListMain.cs new file mode 100644 index 0000000..0ae15a1 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/LoopList/LoopListMain.cs @@ -0,0 +1,63 @@ +using UnityEngine; +using FairyGUI; + +public class LoopListMain : MonoBehaviour +{ + GComponent _mainView; + GList _list; + + void Start() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + UIPackage.AddPackage("UI/LoopList"); + + _mainView = this.GetComponent().ui; + + _list = _mainView.GetChild("list").asList; + _list.SetVirtualAndLoop(); + + _list.itemRenderer = RenderListItem; + _list.numItems = 5; + _list.scrollPane.onScroll.Add(DoSpecialEffect); + + DoSpecialEffect(); + } + + void DoSpecialEffect() + { + //change the scale according to the distance to middle + float midX = _list.scrollPane.posX + _list.viewWidth / 2; + int cnt = _list.numChildren; + for (int i = 0; i < cnt; i++) + { + GObject obj = _list.GetChildAt(i); + float dist = Mathf.Abs(midX - obj.x - obj.width / 2); + if (dist > obj.width) //no intersection + obj.SetScale(1, 1); + else + { + float ss = 1 + (1 - dist / obj.width) * 0.24f; + obj.SetScale(ss, ss); + } + } + + _mainView.GetChild("n3").text = "" + ((_list.GetFirstChildInView() + 1) % _list.numItems); + } + + void RenderListItem(int index, GObject obj) + { + GButton item = (GButton)obj; + item.SetPivot(0.5f, 0.5f); + item.icon = UIPackage.GetItemURL("LoopList", "n" + (index + 1)); + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/LoopList/LoopListMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/LoopList/LoopListMain.cs.meta new file mode 100644 index 0000000..c50012e --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/LoopList/LoopListMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bab7cb69f587250498d0079f0e323fb0 +timeCreated: 1456388407 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/ModalWaiting.meta b/Assets/Plugins/FairyGUI/Examples/ModalWaiting.meta new file mode 100644 index 0000000..05f2cac --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/ModalWaiting.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7d56bcf9c2887a841b07c14e421e98d5 +folderAsset: yes +timeCreated: 1447054712 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/ModalWaiting/ModalWaitingMain.cs b/Assets/Plugins/FairyGUI/Examples/ModalWaiting/ModalWaitingMain.cs new file mode 100644 index 0000000..969e55c --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/ModalWaiting/ModalWaitingMain.cs @@ -0,0 +1,47 @@ +using System.Collections; +using UnityEngine; +using FairyGUI; + +public class ModalWaitingMain : MonoBehaviour +{ + GComponent _mainView; + Window4 _testWin; + + void Awake() + { + UIPackage.AddPackage("UI/ModalWaiting"); + UIConfig.globalModalWaiting = "ui://ModalWaiting/GlobalModalWaiting"; + UIConfig.windowModalWaiting = "ui://ModalWaiting/WindowModalWaiting"; + } + + void Start() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + _mainView = this.GetComponent().ui; + + _testWin = new Window4(); + + _mainView.GetChild("n0").onClick.Add(() => { _testWin.Show(); }); + + StartCoroutine(WaitSomeTime()); + } + + IEnumerator WaitSomeTime() + { + GRoot.inst.ShowModalWait(); + + yield return new WaitForSeconds(3); + + GRoot.inst.CloseModalWait(); + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/ModalWaiting/ModalWaitingMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/ModalWaiting/ModalWaitingMain.cs.meta new file mode 100644 index 0000000..0dbe5b4 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/ModalWaiting/ModalWaitingMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 81df70f0eca40f24eb4d6448b5e3ed22 +timeCreated: 1447054712 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/ModalWaiting/Window4.cs b/Assets/Plugins/FairyGUI/Examples/ModalWaiting/Window4.cs new file mode 100644 index 0000000..a6fad6d --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/ModalWaiting/Window4.cs @@ -0,0 +1,20 @@ +using FairyGUI; + +public class Window4 : Window +{ + public Window4() + { + } + + protected override void OnInit() + { + this.contentPane = UIPackage.CreateObject("ModalWaiting", "TestWin").asCom; + this.contentPane.GetChild("n1").onClick.Add(OnClick); + } + + void OnClick() + { + this.ShowModalWait(); + Timers.inst.Add(3, 1, (object param) => { this.CloseModalWait(); }); + } +} diff --git a/Assets/Plugins/FairyGUI/Examples/ModalWaiting/Window4.cs.meta b/Assets/Plugins/FairyGUI/Examples/ModalWaiting/Window4.cs.meta new file mode 100644 index 0000000..5ff4f79 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/ModalWaiting/Window4.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ac9ab786f60351340a5de178d7d19c0d +timeCreated: 1447054712 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Model.meta b/Assets/Plugins/FairyGUI/Examples/Model.meta new file mode 100644 index 0000000..1e64b70 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Model.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0b78b9866af43744b820fe19b605d80a +folderAsset: yes +timeCreated: 1456389889 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Model/ModelMain.cs b/Assets/Plugins/FairyGUI/Examples/Model/ModelMain.cs new file mode 100644 index 0000000..0d7382d --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Model/ModelMain.cs @@ -0,0 +1,30 @@ +using UnityEngine; +using FairyGUI; + +public class ModelMain : MonoBehaviour +{ + GComponent _mainView; + + void Start() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + _mainView = this.GetComponent().ui; + + Object prefab = Resources.Load("Role/npc"); + GameObject go = (GameObject)Object.Instantiate(prefab); + go.transform.localPosition = new Vector3(61, -89, 1000); //set z to far from UICamera is important! + go.transform.localScale = new Vector3(180, 180, 180); + go.transform.localEulerAngles = new Vector3(0, 100, 0); + _mainView.GetChild("holder").asGraph.SetNativeObject(new GoWrapper(go)); + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Model/ModelMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/Model/ModelMain.cs.meta new file mode 100644 index 0000000..e0b0cd6 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Model/ModelMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: eabf5f06c048be84cbc8226659385e1f +timeCreated: 1456390000 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Particles.meta b/Assets/Plugins/FairyGUI/Examples/Particles.meta new file mode 100644 index 0000000..77a8e97 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Particles.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: df311ae819dccf7428102e1700e12ae1 +folderAsset: yes +timeCreated: 1446730751 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Particles/CoolComponent.cs b/Assets/Plugins/FairyGUI/Examples/Particles/CoolComponent.cs new file mode 100644 index 0000000..6dd1a18 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Particles/CoolComponent.cs @@ -0,0 +1,16 @@ +using UnityEngine; +using FairyGUI; + +public class CoolComponent : GComponent +{ + public override void ConstructFromXML(FairyGUI.Utils.XML cxml) + { + base.ConstructFromXML(cxml); + + GGraph graph = this.GetChild("effect").asGraph; + + Object prefab = Resources.Load("Flame"); + GameObject go = (GameObject)Object.Instantiate(prefab); + graph.SetNativeObject(new GoWrapper(go)); + } +} diff --git a/Assets/Plugins/FairyGUI/Examples/Particles/CoolComponent.cs.meta b/Assets/Plugins/FairyGUI/Examples/Particles/CoolComponent.cs.meta new file mode 100644 index 0000000..c64195f --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Particles/CoolComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b5abdea97f302e7438821d427b458651 +timeCreated: 1446781797 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Particles/ParticlesMain.cs b/Assets/Plugins/FairyGUI/Examples/Particles/ParticlesMain.cs new file mode 100644 index 0000000..c2db087 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Particles/ParticlesMain.cs @@ -0,0 +1,37 @@ +using UnityEngine; +using FairyGUI; + +public class ParticlesMain : MonoBehaviour +{ + GComponent _mainView; + + void Awake() + { + UIPackage.AddPackage("UI/Particles"); + + UIObjectFactory.SetPackageItemExtension("ui://Particles/CoolComponent", typeof(CoolComponent)); + } + + void Start() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + _mainView = this.GetComponent().ui; + + Object prefab = Resources.Load("Flame"); + GameObject go = (GameObject)Object.Instantiate(prefab); + _mainView.GetChild("holder").asGraph.SetNativeObject(new GoWrapper(go)); + + _mainView.GetChild("c0").draggable = true; + _mainView.GetChild("c1").draggable = true; + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Particles/ParticlesMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/Particles/ParticlesMain.cs.meta new file mode 100644 index 0000000..82a01aa --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Particles/ParticlesMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1be113d23714dfb49819b314ffb3ffdc +timeCreated: 1446731503 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Perspetive.meta b/Assets/Plugins/FairyGUI/Examples/Perspetive.meta new file mode 100644 index 0000000..3f08dbe --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Perspetive.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 75bbf0b6726dd1c4685b6a5f8970b045 +folderAsset: yes +timeCreated: 1456393929 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Perspetive/PerspectiveMain.cs b/Assets/Plugins/FairyGUI/Examples/Perspetive/PerspectiveMain.cs new file mode 100644 index 0000000..0357efd --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Perspetive/PerspectiveMain.cs @@ -0,0 +1,29 @@ +using UnityEngine; +using FairyGUI; + +public class PerspectiveMain : MonoBehaviour +{ + GList _list; + + void Start() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + //GComponent g1 = GameObject.Find("UIPanel1").GetComponent().ui; + + GComponent g2 = GameObject.Find("UIPanel2").GetComponent().ui; + _list = g2.GetChild("mailList").asList; + _list.SetVirtual(); + _list.itemRenderer = (int index, GObject obj) => { obj.text = index + " Mail title here"; }; + _list.numItems = 20; + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/Perspetive/PerspectiveMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/Perspetive/PerspectiveMain.cs.meta new file mode 100644 index 0000000..94a60e9 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Perspetive/PerspectiveMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ccbee12c33459e546bf698dc4ca46bea +timeCreated: 1456393933 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/PullToRefresh.meta b/Assets/Plugins/FairyGUI/Examples/PullToRefresh.meta new file mode 100644 index 0000000..980872c --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/PullToRefresh.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4cd02b3a50ee7314290496197a8ad749 +folderAsset: yes +timeCreated: 1497251849 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/PullToRefresh/PullToRefreshMain.cs b/Assets/Plugins/FairyGUI/Examples/PullToRefresh/PullToRefreshMain.cs new file mode 100644 index 0000000..762f917 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/PullToRefresh/PullToRefreshMain.cs @@ -0,0 +1,98 @@ +using UnityEngine; +using FairyGUI; + +public class PullToRefreshMain : MonoBehaviour +{ + GComponent _mainView; + GList _list1; + GList _list2; + + void Awake() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + UIObjectFactory.SetPackageItemExtension("ui://PullToRefresh/Header", typeof(ScrollPaneHeader)); + } + + void Start() + { + _mainView = this.GetComponent().ui; + + _list1 = _mainView.GetChild("list1").asList; + _list1.itemRenderer = RenderListItem1; + _list1.SetVirtual(); + _list1.numItems = 1; + _list1.scrollPane.onPullDownRelease.Add(OnPullDownToRefresh); + + _list2 = _mainView.GetChild("list2").asList; + _list2.itemRenderer = RenderListItem2; + _list2.SetVirtual(); + _list2.numItems = 1; + _list2.scrollPane.onPullUpRelease.Add(OnPullUpToRefresh); + } + + void RenderListItem1(int index, GObject obj) + { + GButton item = obj.asButton; + item.title = "Item " + (_list1.numItems - index - 1); + } + + void RenderListItem2(int index, GObject obj) + { + GButton item = obj.asButton; + item.title = "Item " + index; + } + + void OnPullDownToRefresh() + { + ScrollPaneHeader header = (ScrollPaneHeader)_list1.scrollPane.header; + if (header.ReadyToRefresh) + { + header.SetRefreshStatus(2); + _list1.scrollPane.LockHeader(header.sourceHeight); + + //Simulate a async resquest + Timers.inst.Add(2, 1, (object param) => + { + _list1.numItems += 5; + + //Refresh completed + header.SetRefreshStatus(3); + _list1.scrollPane.LockHeader(35); + + Timers.inst.Add(2, 1, (object param2) => + { + header.SetRefreshStatus(0); + _list1.scrollPane.LockHeader(0); + }); + }); + } + } + + void OnPullUpToRefresh() + { + GComponent footer = (GComponent)_list2.scrollPane.footer; + + footer.GetController("c1").selectedIndex = 1; + _list2.scrollPane.LockFooter(footer.sourceHeight); + + //Simulate a async resquest + Timers.inst.Add(2, 1, (object param) => + { + _list2.numItems += 5; + + //Refresh completed + footer.GetController("c1").selectedIndex = 0; + _list2.scrollPane.LockFooter(0); + }); + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/PullToRefresh/PullToRefreshMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/PullToRefresh/PullToRefreshMain.cs.meta new file mode 100644 index 0000000..374cb90 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/PullToRefresh/PullToRefreshMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cc11ef8b3e553814d83688351418d0cf +timeCreated: 1497251849 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/PullToRefresh/ScrollPaneHeader.cs b/Assets/Plugins/FairyGUI/Examples/PullToRefresh/ScrollPaneHeader.cs new file mode 100644 index 0000000..66e1d83 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/PullToRefresh/ScrollPaneHeader.cs @@ -0,0 +1,37 @@ +using FairyGUI; +using UnityEngine; + +public class ScrollPaneHeader : GComponent +{ + Controller _c1; + + public override void ConstructFromXML(FairyGUI.Utils.XML xml) + { + base.ConstructFromXML(xml); + + _c1 = this.GetController("c1"); + + this.onSizeChanged.Add(OnSizeChanged); + } + + void OnSizeChanged() + { + if (_c1.selectedIndex == 2 || _c1.selectedIndex == 3) + return; + + if (this.height > this.sourceHeight) + _c1.selectedIndex = 1; + else + _c1.selectedIndex = 0; + } + + public bool ReadyToRefresh + { + get { return _c1.selectedIndex == 1; } + } + + public void SetRefreshStatus(int value) + { + _c1.selectedIndex = value; + } +} diff --git a/Assets/Plugins/FairyGUI/Examples/PullToRefresh/ScrollPaneHeader.cs.meta b/Assets/Plugins/FairyGUI/Examples/PullToRefresh/ScrollPaneHeader.cs.meta new file mode 100644 index 0000000..6b2c18f --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/PullToRefresh/ScrollPaneHeader.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 30c3bcfb5d9414e4d8f75eedcfddea9c +timeCreated: 1497253470 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/RenderTexture.meta b/Assets/Plugins/FairyGUI/Examples/RenderTexture.meta new file mode 100644 index 0000000..87a2655 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/RenderTexture.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f22327fed912f5d43a01c26c059c39ac +folderAsset: yes +timeCreated: 1446193142 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderImage.cs b/Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderImage.cs new file mode 100644 index 0000000..5b8f035 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderImage.cs @@ -0,0 +1,292 @@ +using FairyGUI; +using FairyGUI.Utils; +using System.Collections; +using UnityEngine; + +public class RenderImage +{ + public Transform modelRoot { get; private set; } + + Camera _camera; + Image _image; + Transform _root; + Transform _background; + Transform _model; + RenderTexture _renderTexture; + int _width; + int _height; + bool _cacheTexture; + float _rotating; + + const int RENDER_LAYER = 0; + const int HIDDEN_LAYER = 10; + + public RenderImage(GGraph holder) + { + _width = (int)holder.width; + _height = (int)holder.height; + _cacheTexture = true; + + this._image = new Image(); + holder.SetNativeObject(this._image); + + Object prefab = Resources.Load("RenderTexture/RenderImageCamera"); + GameObject go = (GameObject)Object.Instantiate(prefab); + _camera = go.GetComponent(); + _camera.transform.position = new Vector3(0, 1000, 0); + _camera.cullingMask = 1 << RENDER_LAYER; + _camera.enabled = false; + Object.DontDestroyOnLoad(_camera.gameObject); + + this._root = new GameObject("RenderImage").transform; + this._root.SetParent(_camera.transform, false); + SetLayer(this._root.gameObject, HIDDEN_LAYER); + + this.modelRoot = new GameObject("model_root").transform; + this.modelRoot.SetParent(this._root, false); + + this._background = new GameObject("background").transform; + this._background.SetParent(this._root, false); + + this._image.onAddedToStage.Add(OnAddedToStage); + this._image.onRemovedFromStage.Add(OnRemoveFromStage); + + if (this._image.stage != null) + OnAddedToStage(); + else + _camera.gameObject.SetActive(false); + } + + public void Dispose() + { + Object.Destroy(_camera.gameObject); + DestroyTexture(); + + this._image.Dispose(); + this._image = null; + } + + /// + /// The rendertexture is not transparent. So if you want to the UI elements can be seen in the back of the models/particles in rendertexture, + /// you can set a maximunm two images for background. + /// Be careful if your image is 9 grid scaling, you must make sure the place holder is inside the middle box(dont cover from border to middle). + /// + /// + public void SetBackground(GObject image) + { + SetBackground(image, null); + } + + /// + /// The rendertexture is not transparent. So if you want to the UI elements can be seen in the back of the models/particles in rendertexture, + /// you can set a maximunm two images for background. + /// + /// + /// + public void SetBackground(GObject image1, GObject image2) + { + Image source1 = (Image)image1.displayObject; + Image source2 = image2 != null ? (Image)image2.displayObject : null; + + Vector3 pos = _background.position; + pos.z = _camera.farClipPlane; + _background.position = pos; + + Vector2[] uv = new Vector2[4]; + Vector2[] uv2 = null; + + Rect rect = _image.TransformRect(new Rect(0, 0, this._width, this._height), source1); + Rect uvRect = GetImageUVRect(source1, rect, uv); + + if (source2 != null) + { + rect = _image.TransformRect(new Rect(0, 0, this._width, this._height), source2); + uv2 = new Vector2[4]; + GetImageUVRect(source2, rect, uv2); + } + + Vector3[] vertices = new Vector3[4]; + for (int i = 0; i < 4; i++) + { + Vector2 v = uv[i]; + vertices[i] = new Vector3((v.x - uvRect.x) / uvRect.width * 2 - 1, + (v.y - uvRect.y) / uvRect.height * 2 - 1, 0); + } + + Mesh mesh = new Mesh(); + mesh.vertices = vertices; + mesh.uv = uv; + if (uv2 != null) + mesh.uv2 = uv2; + mesh.colors32 = new Color32[] { Color.white, Color.white, Color.white, Color.white }; + mesh.triangles = new int[] { 0, 1, 2, 2, 3, 0 }; + + MeshFilter meshFilter = this._background.gameObject.GetComponent(); + if (meshFilter == null) + meshFilter = this._background.gameObject.AddComponent(); + meshFilter.mesh = mesh; + MeshRenderer meshRenderer = this._background.gameObject.GetComponent(); + if (meshRenderer == null) + meshRenderer = this._background.gameObject.AddComponent(); +#if (UNITY_5 || UNITY_5_3_OR_NEWER) + meshRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; +#else + meshRenderer.castShadows = false; +#endif + meshRenderer.receiveShadows = false; + Shader shader = Shader.Find("Game/FullScreen"); + Material mat = new Material(shader); + mat.mainTexture = source1.texture.nativeTexture; + if (source2 != null) + mat.SetTexture("_Tex2", source2.texture.nativeTexture); + meshRenderer.material = mat; + } + + Rect GetImageUVRect(Image image, Rect localRect, Vector2[] uv) + { + Rect imageRect = new Rect(0, 0, image.size.x, image.size.y); + Rect bound = ToolSet.Intersection(ref imageRect, ref localRect); + Rect uvRect = image.texture.uvRect; + + if (image.scale9Grid != null) + { + Rect gridRect = (Rect)image.scale9Grid; + float sourceW = image.texture.width; + float sourceH = image.texture.height; + uvRect = Rect.MinMaxRect(Mathf.Lerp(uvRect.xMin, uvRect.xMax, gridRect.xMin / sourceW), + Mathf.Lerp(uvRect.yMin, uvRect.yMax, (sourceH - gridRect.yMax) / sourceH), + Mathf.Lerp(uvRect.xMin, uvRect.xMax, gridRect.xMax / sourceW), + Mathf.Lerp(uvRect.yMin, uvRect.yMax, (sourceH - gridRect.yMin) / sourceH)); + + float vw = imageRect.width - (sourceW - gridRect.width); + float vh = imageRect.height - (sourceH - gridRect.height); + uvRect = Rect.MinMaxRect(Mathf.Lerp(uvRect.xMin, uvRect.xMax, (bound.x - gridRect.x) / vw), + Mathf.Lerp(uvRect.yMin, uvRect.yMax, (imageRect.height - bound.yMax - (sourceH - gridRect.yMax)) / vh), + Mathf.Lerp(uvRect.xMin, uvRect.xMax, (bound.xMax - gridRect.x) / vw), + Mathf.Lerp(uvRect.yMin, uvRect.yMax, (imageRect.height - bound.yMin - gridRect.y) / vh)); + } + else + { + uvRect = Rect.MinMaxRect(Mathf.Lerp(uvRect.xMin, uvRect.xMax, bound.xMin / imageRect.width), + Mathf.Lerp(uvRect.yMin, uvRect.yMax, (imageRect.height - bound.yMax) / imageRect.height), + Mathf.Lerp(uvRect.xMin, uvRect.xMax, bound.xMax / imageRect.width), + Mathf.Lerp(uvRect.yMin, uvRect.yMax, (imageRect.height - bound.yMin) / imageRect.height)); + } + + uv[0] = uvRect.position; + uv[1] = new Vector2(uvRect.xMin, uvRect.yMax); + uv[2] = new Vector2(uvRect.xMax, uvRect.yMax); + uv[3] = new Vector2(uvRect.xMax, uvRect.yMin); + + if (image.texture.rotated) + ToolSet.RotateUV(uv, ref image.texture.uvRect); + + return uvRect; + } + + public void LoadModel(string model) + { + this.UnloadModel(); + + Object prefab = Resources.Load(model); + GameObject go = ((GameObject)Object.Instantiate(prefab)); + _model = go.transform; + _model.SetParent(this.modelRoot, false); + } + + public void UnloadModel() + { + if (_model != null) + { + Object.Destroy(_model.gameObject); + _model = null; + } + _rotating = 0; + } + + public void StartRotate(float delta) + { + _rotating = delta; + } + + public void StopRotate() + { + _rotating = 0; + } + + void CreateTexture() + { + if (_renderTexture != null) + return; + + _renderTexture = new RenderTexture(_width, _height, 24, RenderTextureFormat.ARGB32) + { + antiAliasing = 1, + filterMode = FilterMode.Bilinear, + anisoLevel = 0, + useMipMap = false + }; + this._image.texture = new NTexture(_renderTexture); + this._image.blendMode = BlendMode.Off; + } + + void DestroyTexture() + { + if (_renderTexture != null) + { + Object.Destroy(_renderTexture); + _renderTexture = null; + this._image.texture = null; + } + } + + void OnAddedToStage() + { + if (_renderTexture == null) + CreateTexture(); + + Timers.inst.AddUpdate(this.Render); + _camera.gameObject.SetActive(true); + + Render(); + } + + void OnRemoveFromStage() + { + if (!_cacheTexture) + DestroyTexture(); + + Timers.inst.Remove(this.Render); + _camera.gameObject.SetActive(false); + } + + void Render(object param = null) + { + if (_rotating != 0 && this.modelRoot != null) + { + Vector3 localRotation = this.modelRoot.localRotation.eulerAngles; + localRotation.y += _rotating; + this.modelRoot.localRotation = Quaternion.Euler(localRotation); + } + + SetLayer(this._root.gameObject, RENDER_LAYER); + + _camera.targetTexture = this._renderTexture; + RenderTexture old = RenderTexture.active; + RenderTexture.active = this._renderTexture; + GL.Clear(true, true, Color.clear); + _camera.Render(); + RenderTexture.active = old; + + SetLayer(this._root.gameObject, HIDDEN_LAYER); + } + + void SetLayer(GameObject go, int layer) + { + Transform[] transforms = go.GetComponentsInChildren(true); + foreach (Transform t in transforms) + { + t.gameObject.layer = layer; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderImage.cs.meta b/Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderImage.cs.meta new file mode 100644 index 0000000..093c1aa --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderImage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: aeda19930ca9fac4a84f365bf998d0cf +timeCreated: 1446193148 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderTextureMain.cs b/Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderTextureMain.cs new file mode 100644 index 0000000..fbfc24f --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderTextureMain.cs @@ -0,0 +1,28 @@ +using UnityEngine; +using FairyGUI; + +public class RenderTextureMain : MonoBehaviour +{ + GComponent _mainView; + Window3 _testWin; + + void Start() + { + Application.targetFrameRate = 60; + Stage.inst.onKeyDown.Add(OnKeyDown); + + _mainView = this.GetComponent().ui; + + _testWin = new Window3(); + + _mainView.GetChild("n2").onClick.Add(() => { _testWin.Show(); }); + } + + void OnKeyDown(EventContext context) + { + if (context.inputEvent.keyCode == KeyCode.Escape) + { + Application.Quit(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderTextureMain.cs.meta b/Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderTextureMain.cs.meta new file mode 100644 index 0000000..7dc675f --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/RenderTexture/RenderTextureMain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d029d4d78090c764a97f4497beff32e3 +timeCreated: 1446194671 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/RenderTexture/Window3.cs b/Assets/Plugins/FairyGUI/Examples/RenderTexture/Window3.cs new file mode 100644 index 0000000..9180c2a --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/RenderTexture/Window3.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using FairyGUI; +using UnityEngine; + +public class Window3 : Window +{ + RenderImage _renderImage; + + public Window3() + { + } + + protected override void OnInit() + { + this.contentPane = UIPackage.CreateObject("RenderTexture", "TestWin").asCom; + this.SetXY(200, 50); + + _renderImage = new RenderImage(contentPane.GetChild("holder").asGraph); + //RenderImage是不透明的,可以设置最多两张图片作为背景图 + _renderImage.SetBackground(contentPane.GetChild("frame").asCom.GetChild("n0"), contentPane.GetChild("n20")); + + contentPane.GetChild("btnLeft").onTouchBegin.Add(__clickLeft); + contentPane.GetChild("btnRight").onTouchBegin.Add(__clickRight); + } + + override protected void OnShown() + { + _renderImage.LoadModel("Role/npc"); + _renderImage.modelRoot.localPosition = new Vector3(0, -1.0f, 5f); + _renderImage.modelRoot.localScale = new Vector3(1, 1, 1); + _renderImage.modelRoot.localRotation = Quaternion.Euler(0, 120, 0); + } + + void __clickLeft() + { + _renderImage.StartRotate(-2); + Stage.inst.onTouchEnd.Add(__touchEnd); + } + + void __clickRight() + { + _renderImage.StartRotate(2); + Stage.inst.onTouchEnd.Add(__touchEnd); + } + + void __touchEnd() + { + _renderImage.StopRotate(); + Stage.inst.onTouchEnd.Remove(__touchEnd); + } +} diff --git a/Assets/Plugins/FairyGUI/Examples/RenderTexture/Window3.cs.meta b/Assets/Plugins/FairyGUI/Examples/RenderTexture/Window3.cs.meta new file mode 100644 index 0000000..2737db7 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/RenderTexture/Window3.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e19eee4cdc2f5764c8991f5aaad3754b +timeCreated: 1447054712 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Resources.meta b/Assets/Plugins/FairyGUI/Examples/Resources.meta new file mode 100644 index 0000000..1c4366c --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3c89aebc44f76dc47855d7b455026700 +folderAsset: yes +timeCreated: 1449041031 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Resources/Cooldown.meta b/Assets/Plugins/FairyGUI/Examples/Resources/Cooldown.meta new file mode 100644 index 0000000..43db5a8 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Resources/Cooldown.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f2a07f54f3dd8e948a37ff08b62569f9 +folderAsset: yes +timeCreated: 1447172581 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Resources/Cooldown/k0.png b/Assets/Plugins/FairyGUI/Examples/Resources/Cooldown/k0.png new file mode 100644 index 0000000000000000000000000000000000000000..f40e06bd9f696ac02ecc59703e0d7891a471db79 GIT binary patch literal 6451 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 A00000 literal 0 HcmV?d00001 diff --git a/Assets/Plugins/FairyGUI/Examples/Resources/Curve/aomian.FBX.meta b/Assets/Plugins/FairyGUI/Examples/Resources/Curve/aomian.FBX.meta new file mode 100644 index 0000000..9de8cd1 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Resources/Curve/aomian.FBX.meta @@ -0,0 +1,95 @@ +fileFormatVersion: 2 +guid: 442eade8c078c3e4ca12a9990b30a6b3 +timeCreated: 1461740092 +licenseType: Pro +ModelImporter: + serializedVersion: 22 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: Plane02 + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: "\u6807\u51C6_7" + second: {fileID: 2100000, guid: efd0b1293e5bf5e48b0934a7db8c9790, type: 2} + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + materialLocation: 0 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importVisibility: 0 + importBlendShapes: 1 + importCameras: 0 + importLights: 0 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 4 + normalCalculationMode: 0 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + serializedVersion: 2 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples.meta b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples.meta new file mode 100644 index 0000000..d065be9 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: e596969c20c3a5b479a4fccc3846a158 +folderAsset: yes +timeCreated: 1540889270 +licenseType: Free +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects.meta b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects.meta new file mode 100644 index 0000000..e0a622a --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d171af73706b94848aae8155091f8359 +folderAsset: yes +timeCreated: 1540889270 +licenseType: Free +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials.meta b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials.meta new file mode 100644 index 0000000..f9eaba2 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: adf33bc6bcb1c4a48919363779800f0e +folderAsset: yes +timeCreated: 1540889270 +licenseType: Free +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat new file mode 100644 index 0000000..207e107 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat @@ -0,0 +1,139 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: EmbersParticle + m_Shader: {fileID: 200, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 10300, guid: 0000000000000000f000000000000000, type: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _Normal + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _InvFade + second: 3 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _TintColor + second: {r: 1, g: 1, b: 1, a: 0.5} diff --git a/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat.meta b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat.meta new file mode 100644 index 0000000..253751e --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 776677ab3818fb249adaca05f4e04545 +timeCreated: 1471532950 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat new file mode 100644 index 0000000..c78ef12 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat @@ -0,0 +1,142 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: FlameRoundYellowParticle + m_Shader: {fileID: 200, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHABLEND_ON _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 408718fd5f763de42b12f849570ddf58, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 10 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _InvFade + second: 1.08 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 2 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 5 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 0 + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 2.691177, g: 1.7967563, b: 0.45512548, a: 1} + - first: + name: _SpecColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _TintColor + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat.meta b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat.meta new file mode 100644 index 0000000..b13f4a8 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d7f098ed9997e714193be5e86df013f4 +timeCreated: 1472825013 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Textures.meta b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Textures.meta new file mode 100644 index 0000000..f00cba7 --- /dev/null +++ b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Textures.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ce0e4ec1bd0849344987f11ae258efc8 +folderAsset: yes +timeCreated: 1540889270 +licenseType: Free +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Textures/FlameRoundParticleSheet.tif b/Assets/Plugins/FairyGUI/Examples/Resources/EffectExamples/FireExplosionEffects/Textures/FlameRoundParticleSheet.tif new file mode 100644 index 0000000000000000000000000000000000000000..ac36e19c4acaa9476ea152ad7f0ea4d8b6d7f9b6 GIT binary patch literal 2099472 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