├── ProjectSettings ├── ProjectVersion.txt ├── ClusterInputManager.asset ├── EditorBuildSettings.asset ├── NetworkManager.asset ├── TimeManager.asset ├── AudioManager.asset ├── EditorSettings.asset ├── DynamicsManager.asset ├── UnityConnectSettings.asset ├── TagManager.asset ├── Physics2DSettings.asset ├── GraphicsSettings.asset ├── NavMeshAreas.asset ├── NavMeshLayers.asset ├── NavMeshProjectSettings.asset ├── QualitySettings.asset └── InputManager.asset ├── Assets ├── UIExtention │ ├── LICENSE_1_0.txt.meta │ ├── Common │ │ ├── Documents │ │ │ ├── Circle.png │ │ │ ├── SoftMask.gif │ │ │ ├── Teapot.png │ │ │ ├── ColorGroup.gif │ │ │ ├── Gradation.png │ │ │ ├── UICollider.gif │ │ │ ├── CornerColors.png │ │ │ ├── Perspective.png │ │ │ ├── Gradation_Editor.png │ │ │ ├── TargetLayoutElement.gif │ │ │ ├── TextLikeLayoutGroup.gif │ │ │ ├── AroundLayoutGroup_Circle_Inscribe.png │ │ │ ├── AroundLayoutGroup_RectangleExtensionCircle_Center.png │ │ │ ├── Circle.png.meta │ │ │ ├── Gradation.png.meta │ │ │ ├── Teapot.png.meta │ │ │ ├── ColorGroup.gif.meta │ │ │ ├── CornerColors.png.meta │ │ │ ├── Perspective.png.meta │ │ │ ├── UICollider.gif.meta │ │ │ ├── Gradation_Editor.png.meta │ │ │ ├── TargetLayoutElement.gif.meta │ │ │ ├── AroundLayoutGroup_Circle_Inscribe.png.meta │ │ │ ├── AroundLayoutGroup_RectangleExtensionCircle_Center.png.meta │ │ │ ├── SoftMask.gif.meta │ │ │ └── TextLikeLayoutGroup.gif.meta │ │ ├── Examples │ │ │ ├── Textures │ │ │ │ ├── Nonwovens.png │ │ │ │ ├── WhiteTexture.png │ │ │ │ ├── SampleTexture.png │ │ │ │ ├── WhiteTexture.png.meta │ │ │ │ ├── Nonwovens.png.meta │ │ │ │ └── SampleTexture.png.meta │ │ │ └── Textures.meta │ │ ├── Documents.meta │ │ ├── Examples.meta │ │ ├── Scripts.meta │ │ ├── Tests.meta │ │ ├── Tests │ │ │ ├── Editor.meta │ │ │ └── Editor │ │ │ │ ├── VertexUtilityTest.cs.meta │ │ │ │ └── VertexUtilityTest.cs │ │ └── Scripts │ │ │ ├── HashUtility.cs.meta │ │ │ ├── OrientedRect2D.cs.meta │ │ │ ├── VertexUtility.cs.meta │ │ │ ├── HashUtility.cs │ │ │ └── OrientedRect2D.cs │ ├── Common.meta │ ├── TargetLayoutElement.meta │ ├── TargetLayoutElement │ │ ├── Examples │ │ │ ├── Scenes.meta │ │ │ └── Scenes │ │ │ │ └── TargetLayoutElement.unity.meta │ │ ├── Scripts │ │ │ ├── Editor.meta │ │ │ ├── TargetLayoutElement.cs.meta │ │ │ ├── Editor │ │ │ │ ├── TargetLayoutElementEditor.cs.meta │ │ │ │ ├── TargetLayoutElementRemoteBehaviourEditor.cs.meta │ │ │ │ ├── TargetLayoutElementRemoteBehaviourEditor.cs │ │ │ │ └── TargetLayoutElementEditor.cs │ │ │ ├── TargetLayoutElementRemoteBehaviour.cs.meta │ │ │ ├── TargetLayoutElementRemoteBehaviour.cs │ │ │ └── TargetLayoutElement.cs │ │ ├── Examples.meta │ │ └── Scripts.meta │ ├── Circle.meta │ ├── Circle │ │ ├── Examples │ │ │ ├── Scenes │ │ │ │ └── Circle.unity.meta │ │ │ └── Scenes.meta │ │ ├── Examples.meta │ │ ├── Scripts.meta │ │ └── Scripts │ │ │ ├── Editor.meta │ │ │ ├── Circle.cs.meta │ │ │ ├── Editor │ │ │ ├── CircleEditor.cs.meta │ │ │ └── CircleEditor.cs │ │ │ └── Circle.cs │ ├── Teapot.meta │ ├── Teapot │ │ ├── Examples │ │ │ ├── Scenes │ │ │ │ └── Teapot.unity.meta │ │ │ └── Scenes.meta │ │ ├── Examples.meta │ │ ├── Scripts.meta │ │ └── Scripts │ │ │ ├── Editor.meta │ │ │ ├── Teapot.cs.meta │ │ │ └── Editor │ │ │ ├── TeapotEditor.cs.meta │ │ │ └── TeapotEditor.cs │ ├── ColorGroup.meta │ ├── Gradation.meta │ ├── Gradation │ │ ├── Examples │ │ │ ├── Scenes │ │ │ │ └── Gradation.unity.meta │ │ │ ├── Materials │ │ │ │ ├── GradationMaterial.asset.meta │ │ │ │ └── GradationMaterial.asset │ │ │ ├── Scenes.meta │ │ │ └── Materials.meta │ │ ├── Examples.meta │ │ ├── Scripts.meta │ │ └── Scripts │ │ │ ├── Editor.meta │ │ │ ├── Gradation.cs.meta │ │ │ ├── GradationMaterial.cs.meta │ │ │ ├── Editor │ │ │ ├── GradationEditor.cs.meta │ │ │ ├── GradationWindow.cs.meta │ │ │ ├── GradationMaterialEditor.cs.meta │ │ │ ├── GradationEditor.cs │ │ │ └── GradationMaterialEditor.cs │ │ │ └── GradationMaterial.cs │ ├── Perspective.meta │ ├── SoftMask.meta │ ├── SoftMask │ │ ├── Examples │ │ │ ├── Scenes │ │ │ │ └── SoftMask.unity.meta │ │ │ └── Scenes.meta │ │ ├── Scripts.meta │ │ ├── Examples.meta │ │ └── Scripts │ │ │ ├── SoftMaskRect.cs.meta │ │ │ ├── SoftMaskMeshEffect.cs.meta │ │ │ ├── SoftMaskMeshEffect.cs │ │ │ └── SoftMaskRect.cs │ ├── UICollider.meta │ ├── ColorGroup │ │ ├── Examples │ │ │ ├── Scenes │ │ │ │ └── ColorGroup.unity.meta │ │ │ └── Scenes.meta │ │ ├── Examples.meta │ │ ├── Scripts.meta │ │ └── Scripts │ │ │ ├── Editor.meta │ │ │ ├── ColorGroup.cs.meta │ │ │ ├── Editor │ │ │ ├── ColorGroupEditor.cs.meta │ │ │ └── ColorGroupEditor.cs │ │ │ └── ColorGroup.cs │ ├── CornerColors.meta │ ├── CornerColors │ │ ├── Examples │ │ │ ├── Scenes │ │ │ │ └── CornerColors.unity.meta │ │ │ └── Scenes.meta │ │ ├── Examples.meta │ │ ├── Scripts.meta │ │ └── Scripts │ │ │ ├── Editor.meta │ │ │ ├── CornerColors.cs.meta │ │ │ ├── Editor │ │ │ ├── CornerColorsEditor.cs.meta │ │ │ └── CornerColorsEditor.cs │ │ │ └── CornerColors.cs │ ├── Perspective │ │ ├── Examples │ │ │ ├── Scenes │ │ │ │ └── Perspective.unity.meta │ │ │ ├── Animations │ │ │ │ ├── rotation.anim.meta │ │ │ │ ├── Image.controller.meta │ │ │ │ └── Image.controller │ │ │ ├── Materials │ │ │ │ ├── Perspective.mat.meta │ │ │ │ └── Perspective.mat │ │ │ ├── Animations.meta │ │ │ ├── Materials.meta │ │ │ └── Scenes.meta │ │ ├── Examples.meta │ │ ├── Scripts.meta │ │ ├── Shaders.meta │ │ ├── Scripts │ │ │ ├── Editor.meta │ │ │ ├── Perspective.cs.meta │ │ │ ├── Editor │ │ │ │ ├── PerspectiveEditor.cs.meta │ │ │ │ └── PerspectiveEditor.cs │ │ │ └── Perspective.cs │ │ └── Shaders │ │ │ ├── UI-Perspective.shader.meta │ │ │ └── UI-Perspective.shader │ ├── UICollider │ │ ├── Examples │ │ │ ├── Scenes │ │ │ │ └── UICollider.unity.meta │ │ │ └── Scenes.meta │ │ ├── Examples.meta │ │ ├── Scripts.meta │ │ └── Scripts │ │ │ ├── Editor.meta │ │ │ ├── UICollider.cs.meta │ │ │ ├── Editor │ │ │ ├── UIColliderEditor.cs.meta │ │ │ └── UIColliderEditor.cs │ │ │ └── UICollider.cs │ ├── AroundLayoutGroup.meta │ ├── TextLikeLayoutGroup.meta │ ├── AroundLayoutGroup │ │ ├── Examples.meta │ │ ├── Examples │ │ │ ├── Scenes │ │ │ │ └── AroundLayoutGroup.unity.meta │ │ │ └── Scenes.meta │ │ ├── Scripts.meta │ │ └── Scripts │ │ │ ├── Editor.meta │ │ │ ├── AroundLayoutGroup.cs.meta │ │ │ ├── Editor │ │ │ ├── AroundLayoutGroupEditor.cs.meta │ │ │ └── AroundLayoutGroupEditor.cs │ │ │ └── AroundLayoutGroup.cs │ ├── TextLikeLayoutGroup │ │ ├── Examples.meta │ │ ├── Examples │ │ │ ├── Scenes │ │ │ │ └── TextLikeLayoutGroup.unity.meta │ │ │ └── Scenes.meta │ │ ├── Scripts.meta │ │ └── Scripts │ │ │ ├── Editor.meta │ │ │ ├── TextLikeLayoutGroup.cs.meta │ │ │ └── Editor │ │ │ ├── TextLikeLayoutGroupEditor.cs.meta │ │ │ └── TextLikeLayoutGroupEditor.cs │ └── LICENSE_1_0.txt ├── UIExtention.meta ├── MinMaxSliderPropertyDrawer.meta ├── RestrictInterfacePropertyDrawer.meta ├── MinMaxSliderPropertyDrawer │ ├── MinMaxSliderPropertyDrawer.cs.meta │ └── MinMaxSliderPropertyDrawer.cs └── RestrictInterfacePropertyDrawer │ ├── RestrictInterfacePropertyDrawer.cs.meta │ └── RestrictInterfacePropertyDrawer.cs ├── .gitignore └── README.md /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 5.6.0f3 2 | -------------------------------------------------------------------------------- /Assets/UIExtention/LICENSE_1_0.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 71ef573aae484ee4a84b36d6cc3e4507 3 | TextScriptImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/UIExtention.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 548cf024cb0517048926edd9478dea07 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/Circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Documents/Circle.png -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/SoftMask.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Documents/SoftMask.gif -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/Teapot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Documents/Teapot.png -------------------------------------------------------------------------------- /Assets/UIExtention/Common.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 15e807bc690509e47a53761c9f35583b 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/ColorGroup.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Documents/ColorGroup.gif -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/Gradation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Documents/Gradation.png -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/UICollider.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Documents/UICollider.gif -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/CornerColors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Documents/CornerColors.png -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/Perspective.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Documents/Perspective.png -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/Gradation_Editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Documents/Gradation_Editor.png -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Examples/Textures/Nonwovens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Examples/Textures/Nonwovens.png -------------------------------------------------------------------------------- /Assets/UIExtention/TargetLayoutElement.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a46bf4860ff3840458f0e11cc98cd71f 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/TargetLayoutElement.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Documents/TargetLayoutElement.gif -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/TextLikeLayoutGroup.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Documents/TextLikeLayoutGroup.gif -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Examples/Textures/WhiteTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Examples/Textures/WhiteTexture.png -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Examples/Textures/SampleTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Examples/Textures/SampleTexture.png -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /Assets/UIExtention/TargetLayoutElement/Examples/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4b474f4b0fb07d946bbf9fcd296355f7 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Assets/UIExtention/TargetLayoutElement/Scripts/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 78a9567a728dc5b4a8517bcf5ecd133d 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Assets/UIExtention/TargetLayoutElement/Examples/Scenes/TargetLayoutElement.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6456041d24012da4d98f35347c018ba4 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/AroundLayoutGroup_Circle_Inscribe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Documents/AroundLayoutGroup_Circle_Inscribe.png -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: [] 8 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/AroundLayoutGroup_RectangleExtensionCircle_Center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eral/UnityUIExtention/HEAD/Assets/UIExtention/Common/Documents/AroundLayoutGroup_RectangleExtensionCircle_Center.png -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: .0199999996 7 | Maximum Allowed Timestep: .333333343 8 | m_TimeScale: 1 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/Circle.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bdf7c0e10df72a84da753bdee952c9a3 3 | folderAsset: yes 4 | timeCreated: 1428856478 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Circle/Examples/Scenes/Circle.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9d3f038970573cd4d856bf46bfb25d55 3 | timeCreated: 1428861910 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/Teapot.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2b84b86ef61a7eb45b4de3011ba202c7 3 | folderAsset: yes 4 | timeCreated: 1430299470 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Teapot/Examples/Scenes/Teapot.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e4e48eceeb856e49872e02bbeaa0232 3 | timeCreated: 1430302783 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/ColorGroup.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 15f936e64f5591e4c86859975202e0b2 3 | folderAsset: yes 4 | timeCreated: 1428341498 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b6f6e7127aeef64b8cce60a5c1c9c5d 3 | folderAsset: yes 4 | timeCreated: 1450542097 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Examples/Scenes/Gradation.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 76f52e8cba315c24ebc5a34977ac4989 3 | timeCreated: 1450546665 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d27b8272045a203438d43821505f902f 3 | folderAsset: yes 4 | timeCreated: 1448473702 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/SoftMask.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4910b978c3c2590448d6822d93288488 3 | folderAsset: yes 4 | timeCreated: 1466119707 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/SoftMask/Examples/Scenes/SoftMask.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f7f442271c123f48a56958f71a973e3 3 | timeCreated: 1466119792 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/UICollider.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c9976f80eae5b4849a1d3788adf65c16 3 | folderAsset: yes 4 | timeCreated: 1428342746 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/MinMaxSliderPropertyDrawer.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6033afc336c833f4eb3bcce8da635e4b 3 | folderAsset: yes 4 | timeCreated: 1446745478 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Circle/Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d8bd8ccc13845d499faafe17ce9bbe3 3 | folderAsset: yes 4 | timeCreated: 1428861915 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Circle/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 43a5b2c0eaef1364bb702ffad2f6cc8f 3 | folderAsset: yes 4 | timeCreated: 1457805469 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/ColorGroup/Examples/Scenes/ColorGroup.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d553f11c9b809f409f7dfb615a6824e 3 | timeCreated: 1428342025 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c5a184c2ced05974ca0ed270efc9fe11 3 | folderAsset: yes 4 | timeCreated: 1458062263 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 445d5e796fbcc0648b6a16af744dce4c 3 | folderAsset: yes 4 | timeCreated: 1428940927 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d20ac889f2557249ad8e292c1b0383a 3 | folderAsset: yes 4 | timeCreated: 1462804077 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Tests.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 981eadca3a22e214b9cb738df1cceebd 3 | folderAsset: yes 4 | timeCreated: 1468954277 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/CornerColors.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 48a50297aec42b544b2b3e63f21eefbb 3 | folderAsset: yes 4 | timeCreated: 1447503631 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/CornerColors/Examples/Scenes/CornerColors.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d4fed55610954e24fa508735a42b8f34 3 | timeCreated: 1447504643 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Examples/Scenes/Perspective.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4a385bea181f4374c8bb6d44769d3068 3 | timeCreated: 1448473771 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/SoftMask/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0a863f2dca75ea640bf79273d8af3080 3 | folderAsset: yes 4 | timeCreated: 1466119717 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Teapot/Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2b4c0138cd3b540408c5781ac671c5de 3 | folderAsset: yes 4 | timeCreated: 1457807536 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Teapot/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cc9e9f18867c11a4f844fe3a507e28ef 3 | folderAsset: yes 4 | timeCreated: 1457807518 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/UICollider/Examples/Scenes/UICollider.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 57f0068812a8fca4581cbd98a764ca0e 3 | timeCreated: 1459359346 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RestrictInterfacePropertyDrawer.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5508bd6af94569246910bdf6cb1d5209 3 | folderAsset: yes 4 | timeCreated: 1425724095 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/AroundLayoutGroup.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 69787b6a44731c1429ada475820bd0d2 3 | folderAsset: yes 4 | timeCreated: 1434991792 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Circle/Scripts/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 681b84c676a855f46a1cb9489a869ea3 3 | folderAsset: yes 4 | timeCreated: 1429117241 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/ColorGroup/Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fa084901913c9a0438f439e01603907b 3 | folderAsset: yes 4 | timeCreated: 1457805585 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/ColorGroup/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b1b718921480efd4dbe0b0d81d34377c 3 | folderAsset: yes 4 | timeCreated: 1457805579 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Tests/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a7981d28b9e6a95489a95f49a8bafc53 3 | folderAsset: yes 4 | timeCreated: 1468863199 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/CornerColors/Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 57ef9823d5df40242b3bcd4d66452821 3 | folderAsset: yes 4 | timeCreated: 1457805717 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/CornerColors/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ac650a8dc05073e40b913818aaec2eb5 3 | folderAsset: yes 4 | timeCreated: 1457805712 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cd4caf07e6ab34147bb277422d294ee6 3 | folderAsset: yes 4 | timeCreated: 1457805797 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d07dad6489a7d2140b7e88575b121019 3 | folderAsset: yes 4 | timeCreated: 1457805785 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5e2100cc991fe3a498d485cff532bcc5 3 | folderAsset: yes 4 | timeCreated: 1457806014 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Examples/Animations/rotation.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd3d42f1bbd61e343bf274c3a63b9b2d 3 | timeCreated: 1448711114 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Examples/Materials/Perspective.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b49a706f0f5fe924d92972e40239219e 3 | timeCreated: 1448891827 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 485076224ff606d4ba0b5282368d0c77 3 | folderAsset: yes 4 | timeCreated: 1457805934 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 989a49ccbce2815458baee620057b419 3 | folderAsset: yes 4 | timeCreated: 1457805975 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/SoftMask/Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 33f617c16e3fa13489f562961a780400 3 | folderAsset: yes 4 | timeCreated: 1466119760 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Teapot/Scripts/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5eb238284611b6946b8876185226fa05 3 | folderAsset: yes 4 | timeCreated: 1430299470 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/TextLikeLayoutGroup.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3cd1077295a93e04fb83b83e119cee1b 3 | folderAsset: yes 4 | timeCreated: 1434991792 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/UICollider/Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f993799ef5dbfc459eefb3dfbd910bb 3 | folderAsset: yes 4 | timeCreated: 1459359330 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/UICollider/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b7b90088028174439cfa2f23e1b24b3 3 | folderAsset: yes 4 | timeCreated: 1457807676 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/AroundLayoutGroup/Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6c3663bd7ce97e64481288db625d56b8 3 | folderAsset: yes 4 | timeCreated: 1457805316 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/AroundLayoutGroup/Examples/Scenes/AroundLayoutGroup.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0692bbbc05365e44486ab8c1747149e6 3 | timeCreated: 1446661959 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/AroundLayoutGroup/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0cef991167ac31f4db23588ed4dc3476 3 | folderAsset: yes 4 | timeCreated: 1457805063 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Circle/Examples/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 46709cdc0e538c54599927b3a07a74d5 3 | folderAsset: yes 4 | timeCreated: 1457805498 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/ColorGroup/Examples/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4b6e7ba9c1ee35c49aa268add57481e6 3 | folderAsset: yes 4 | timeCreated: 1428341994 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/ColorGroup/Scripts/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ff7d9431c703c943914b8bfabfa195e 3 | folderAsset: yes 4 | timeCreated: 1428346267 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Examples/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5aba0b41d925a3440a4a5f9b7fc82977 3 | folderAsset: yes 4 | timeCreated: 1457807892 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Examples/Materials/GradationMaterial.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dcbad635341a5bd4c801d4399262ee03 3 | timeCreated: 1450549071 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Examples/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a209bd3238e7cf41b533e5bb296e62a 3 | folderAsset: yes 4 | timeCreated: 1450546659 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Scripts/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fa597aa81a6f3314c852b0b441fd5f1f 3 | folderAsset: yes 4 | timeCreated: 1450544540 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Examples/Animations/Image.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b96f8b8fb93d7245aae6d09e0f58afd 3 | timeCreated: 1448711114 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Scripts/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 38f09a2afed3e2e4ab7fe556889922c7 3 | folderAsset: yes 4 | timeCreated: 1448473731 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/SoftMask/Examples/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 38dbf4d745728ba47bfe38096477d6ee 3 | folderAsset: yes 4 | timeCreated: 1466119772 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/TargetLayoutElement/Scripts/TargetLayoutElement.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2bf0fbec5a86d094fa848349e0471296 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | userData: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/Teapot/Examples/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ef015376c31760640a74b7c7f4b73bdb 3 | folderAsset: yes 4 | timeCreated: 1430302783 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/UICollider/Examples/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: abde0efdac8b9494fab7294d1e34c289 3 | folderAsset: yes 4 | timeCreated: 1459359333 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/UICollider/Scripts/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e68241fbe6b27f944aa5cd0de4b82649 3 | folderAsset: yes 4 | timeCreated: 1428346894 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/CornerColors/Examples/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1137aa939d42a07468e8cd2aee77f148 3 | folderAsset: yes 4 | timeCreated: 1447504604 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/CornerColors/Scripts/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd718596dda34ea4ca03f2ef81116680 3 | folderAsset: yes 4 | timeCreated: 1447605755 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Examples/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1a9dd7e50f4c9d94780c9bbf996d01bd 3 | folderAsset: yes 4 | timeCreated: 1457805832 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Examples/Animations.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d6fadefb44113d4887870900d45338d 3 | folderAsset: yes 4 | timeCreated: 1457806076 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Examples/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 23e975060f5bf5147b1095ac2802252f 3 | folderAsset: yes 4 | timeCreated: 1457806098 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Examples/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 655c6f325412a994cb794ba2a25e38c4 3 | folderAsset: yes 4 | timeCreated: 1448473756 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/TargetLayoutElement/Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c6cf166aff68f684ea30d907f3682ea4 3 | folderAsset: yes 4 | timeCreated: 1457806161 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/TargetLayoutElement/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c075a6b1d96fad742b842e16559ba4db 3 | folderAsset: yes 4 | timeCreated: 1457806143 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/TextLikeLayoutGroup/Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c6752d5db677e644b2ea22eca2ac365 3 | folderAsset: yes 4 | timeCreated: 1457805316 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/TextLikeLayoutGroup/Examples/Scenes/TextLikeLayoutGroup.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb10d8dd46cbff642ad249c7875d398a 3 | timeCreated: 1446661959 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/TextLikeLayoutGroup/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: be9db78dc9e41ee48954f84108896357 3 | folderAsset: yes 4 | timeCreated: 1457805063 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/AroundLayoutGroup/Examples/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc411c3da062b1041966905424be3139 3 | folderAsset: yes 4 | timeCreated: 1446661639 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/AroundLayoutGroup/Scripts/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1cbff605d2cd7694bb63b2dcd60b0b98 3 | folderAsset: yes 4 | timeCreated: 1447004978 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/TargetLayoutElement/Scripts/Editor/TargetLayoutElementEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0e41493aa26367b4db618128aebbb042 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | userData: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/TextLikeLayoutGroup/Examples/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 386c12b6adb196c40af98205ce2b442f 3 | folderAsset: yes 4 | timeCreated: 1446661639 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/TextLikeLayoutGroup/Scripts/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0b1d0dcd683039c4198489e0b5562411 3 | folderAsset: yes 4 | timeCreated: 1447004978 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/TargetLayoutElement/Scripts/TargetLayoutElementRemoteBehaviour.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a2b5624667900354cb814eb9856e42c7 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | userData: 9 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Shaders/UI-Perspective.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3591d043920dbca469e2393abc0f7d25 3 | timeCreated: 1448891808 4 | licenseType: Free 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/UIExtention/TargetLayoutElement/Scripts/Editor/TargetLayoutElementRemoteBehaviourEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ebce9f1c10737d640922921983a9db71 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | userData: 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | #Unity 2 | /Library 3 | /Temp 4 | /*.booproj 5 | /*.csproj 6 | /*.pidb 7 | /*.sln 8 | /*.unityproj 9 | /*.userprefs 10 | 11 | #Visual Studio Tools for Unity 12 | /Assets/UnityVS/ 13 | /Assets/UnityVS.meta 14 | /obj 15 | /*.suo 16 | /*.sln.DotSettings 17 | /.vs 18 | 19 | #Mac 20 | .DS_Store 21 | 22 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | m_SpeedOfSound: 347 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_DSPBufferSize: 0 12 | m_DisableAudio: 0 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/Circle/Scripts/Circle.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83a1f29f2ad46aa4b8a3388a54a79e99 3 | timeCreated: 1429117250 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/Teapot/Scripts/Teapot.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9781578e28dfbb744a060e10e45b6123 3 | timeCreated: 1430299471 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Scripts/HashUtility.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1dce08e68569beb41b531ac8aebb1422 3 | timeCreated: 1462804101 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Scripts/Gradation.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 66f8e69f7a09ac24eb81aec15ff1da0a 3 | timeCreated: 1450541751 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/ColorGroup/Scripts/ColorGroup.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa2f1f2625eac954ab50e708a0b01de8 3 | timeCreated: 1428341493 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Scripts/OrientedRect2D.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a60564ff1f27a9a44a00ded1200f4b5a 3 | timeCreated: 1468092088 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Scripts/VertexUtility.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6f128c5becbf6dd4cbdc03c621e7e237 3 | timeCreated: 1462804101 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Scripts/Perspective.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4da5e3837d04a4439216ac580921917 3 | timeCreated: 1448473706 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/SoftMask/Scripts/SoftMaskRect.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2524c6fccea936247b311791ea22becb 3 | timeCreated: 1466119808 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/UICollider/Scripts/UICollider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2fa584f43906c02439c5b3e8d6abf450 3 | timeCreated: 1428342740 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/Circle/Scripts/Editor/CircleEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2847714d068c3074589405b331f198db 3 | timeCreated: 1429117256 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Tests/Editor/VertexUtilityTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b9c5d500ccaef24cad5a28c0182093b 3 | timeCreated: 1468863210 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/CornerColors/Scripts/CornerColors.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6864d9a5a66078945a6198f8306f8bc3 3 | timeCreated: 1447503804 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Scripts/GradationMaterial.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 215234fa2eabe734ebf600997e9d93a3 3 | timeCreated: 1450542140 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/SoftMask/Scripts/SoftMaskMeshEffect.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 585702ff948493c458c4df3d009fe0e5 3 | timeCreated: 1466314021 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/Teapot/Scripts/Editor/TeapotEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8648dea8135d4664caa5028b6990dcff 3 | timeCreated: 1430299471 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/MinMaxSliderPropertyDrawer/MinMaxSliderPropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 50e31531c5eea3e4fbe7972a3142a65b 3 | timeCreated: 1446745478 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/ColorGroup/Scripts/Editor/ColorGroupEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 775a9e878d3ba3b439cb26afdb9ebe1c 3 | timeCreated: 1428346286 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Scripts/Editor/GradationEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d19348d3b49e12c44980cf7c641cbd61 3 | timeCreated: 1450544557 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Scripts/Editor/GradationWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d698284ae90527f47a6c1c5fb89d787a 3 | timeCreated: 1450547109 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/UICollider/Scripts/Editor/UIColliderEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63a5b9f2e90f9bd4cb2dfcf4a3124dfe 3 | timeCreated: 1428346896 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/AroundLayoutGroup/Scripts/AroundLayoutGroup.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c65891f67e8602148b2d7a6264e55755 3 | timeCreated: 1434991826 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/CornerColors/Scripts/Editor/CornerColorsEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 15fc4e7baaadf0c41a5de345a34bb4da 3 | timeCreated: 1447605780 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Scripts/Editor/PerspectiveEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0dab0b2bf00441a4faea2b66a2901009 3 | timeCreated: 1448473721 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/TextLikeLayoutGroup/Scripts/TextLikeLayoutGroup.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cb33ee68fce593d40931977798e3bca1 3 | timeCreated: 1434991826 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/RestrictInterfacePropertyDrawer/RestrictInterfacePropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c4b3dde175efac4fa25ec83c1fab7fc 3 | timeCreated: 1425724099 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Scripts/Editor/GradationMaterialEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed5abf2b2791da949bab6e5187e410b2 3 | timeCreated: 1450548011 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/AroundLayoutGroup/Scripts/Editor/AroundLayoutGroupEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 65805d7a63b3d3a45bbc0b49a940eb37 3 | timeCreated: 1447004983 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/TextLikeLayoutGroup/Scripts/Editor/TextLikeLayoutGroupEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 59d6f8bcbcbd02846a83aeba6eb4d93a 3 | timeCreated: 1447004983 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_WebSecurityEmulationEnabled: 0 10 | m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d 11 | m_DefaultBehaviorMode: 0 12 | m_SpritePackerMode: 2 13 | -------------------------------------------------------------------------------- /Assets/UIExtention/ColorGroup/Scripts/Editor/ColorGroupEditor.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEditor; 6 | 7 | namespace UIExtention { 8 | [CustomEditor(typeof(ColorGroup))] 9 | [CanEditMultipleObjects] 10 | public class ColorGroupEditor : Editor { 11 | 12 | public override void OnInspectorGUI() { 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Assets/UIExtention/UICollider/Scripts/Editor/UIColliderEditor.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEditor; 6 | 7 | namespace UIExtention { 8 | [CustomEditor(typeof(UICollider))] 9 | [CanEditMultipleObjects] 10 | public class UIColliderEditor : Editor { 11 | 12 | public override void OnInspectorGUI() { 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Assets/UIExtention/UICollider/Scripts/UICollider.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEngine.UI; 7 | 8 | namespace UIExtention { 9 | public class UICollider : Graphic, ICanvasRaycastFilter { 10 | 11 | protected override void Awake() { 12 | base.Awake(); 13 | color = new Color(1.0f, 1.0f, 1.0f, 0.0f); 14 | } 15 | 16 | protected override void OnPopulateMesh(VertexHelper toFill) { 17 | toFill.Clear(); 18 | } 19 | 20 | public virtual bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera) { 21 | return true; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | m_Gravity: {x: 0, y: -9.81000042, z: 0} 7 | m_DefaultMaterial: {fileID: 0} 8 | m_BounceThreshold: 2 9 | m_SleepVelocity: .150000006 10 | m_SleepAngularVelocity: .140000001 11 | m_MaxAngularVelocity: 7 12 | m_MinPenetrationForPenalty: .00999999978 13 | m_SolverIterationCount: 6 14 | m_RaycastsHitTriggers: 1 15 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 16 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | m_Enabled: 0 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | CrashReportingSettings: 11 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 12 | m_Enabled: 0 13 | m_CaptureEditorExceptions: 1 14 | UnityPurchasingSettings: 15 | m_Enabled: 0 16 | m_TestMode: 0 17 | UnityAnalyticsSettings: 18 | m_Enabled: 0 19 | m_InitializeOnStartup: 1 20 | m_TestMode: 0 21 | m_TestEventUrl: 22 | m_TestConfigUrl: 23 | UnityAdsSettings: 24 | m_Enabled: 0 25 | m_InitializeOnStartup: 1 26 | m_TestMode: 0 27 | m_EnabledPlatforms: 4294967295 28 | m_IosGameId: 29 | m_AndroidGameId: 30 | -------------------------------------------------------------------------------- /Assets/UIExtention/TargetLayoutElement/Scripts/Editor/TargetLayoutElementRemoteBehaviourEditor.cs: -------------------------------------------------------------------------------- 1 | // (C) 2014 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEditor; 7 | 8 | namespace UIExtention { 9 | [CustomEditor(typeof(TargetLayoutElementRemoteBehaviour))] 10 | [CanEditMultipleObjects] 11 | public class TargetLayoutElementRemoteBehaviourEditor : Editor { 12 | 13 | public override void OnInspectorGUI() { 14 | var targetLayoutElementRemoteBehaviour = (TargetLayoutElementRemoteBehaviour)target; 15 | 16 | var oldGuiEnabled = GUI.enabled; 17 | GUI.enabled = false; 18 | 19 | EditorGUILayout.ObjectField("Source", (Object)targetLayoutElementRemoteBehaviour.Source, typeof(TargetLayoutElement), true); 20 | 21 | GUI.enabled = oldGuiEnabled; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Assets/UIExtention/TargetLayoutElement/Scripts/Editor/TargetLayoutElementEditor.cs: -------------------------------------------------------------------------------- 1 | // (C) 2014 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEngine.UI; 7 | using UnityEditor; 8 | using System.Linq; 9 | 10 | namespace UIExtention { 11 | [CustomEditor(typeof(TargetLayoutElement))] 12 | [CanEditMultipleObjects] 13 | public class TargetLayoutElementEditor : Editor { 14 | SerializedProperty m_Target; 15 | GUIContent m_TargetContent; 16 | 17 | protected virtual void OnEnable() { 18 | m_TargetContent = new GUIContent("Target"); 19 | m_Target = serializedObject.FindProperty("m_Target"); 20 | } 21 | 22 | public override void OnInspectorGUI() { 23 | serializedObject.Update(); 24 | 25 | EditorGUILayout.PropertyField(m_Target, m_TargetContent); 26 | 27 | serializedObject.ApplyModifiedProperties(); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Assets/UIExtention/TargetLayoutElement/Scripts/TargetLayoutElementRemoteBehaviour.cs: -------------------------------------------------------------------------------- 1 | // (C) 2014 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEngine.UI; 7 | 8 | namespace UIExtention { 9 | [ExecuteInEditMode] 10 | public class TargetLayoutElementRemoteBehaviour : MonoBehaviour, ILayoutController { 11 | public TargetLayoutElement Source {get{return _source;} set{_source = value;}} 12 | [SerializeField] private TargetLayoutElement _source; 13 | 14 | public void OnDestroy() { 15 | if (Source) { 16 | Source.OnDestroyOfRemoteBehaviour(); 17 | } 18 | } 19 | 20 | public virtual void SetLayoutHorizontal() { 21 | if (Source) { 22 | Source.SetLayoutHorizontalOfRemoteBehaviour(); 23 | } 24 | } 25 | 26 | public virtual void SetLayoutVertical() { 27 | if (Source) { 28 | Source.SetLayoutVerticalOfRemoteBehaviour(); 29 | } 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | tags: 6 | - 7 | Builtin Layer 0: Default 8 | Builtin Layer 1: TransparentFX 9 | Builtin Layer 2: Ignore Raycast 10 | Builtin Layer 3: 11 | Builtin Layer 4: Water 12 | Builtin Layer 5: UI 13 | Builtin Layer 6: 14 | Builtin Layer 7: 15 | User Layer 8: UI 3D 16 | User Layer 9: 17 | User Layer 10: 18 | User Layer 11: 19 | User Layer 12: 20 | User Layer 13: 21 | User Layer 14: 22 | User Layer 15: 23 | User Layer 16: 24 | User Layer 17: 25 | User Layer 18: 26 | User Layer 19: 27 | User Layer 20: 28 | User Layer 21: 29 | User Layer 22: 30 | User Layer 23: 31 | User Layer 24: 32 | User Layer 25: 33 | User Layer 26: 34 | User Layer 27: 35 | User Layer 28: 36 | User Layer 29: 37 | User Layer 30: 38 | User Layer 31: 39 | m_SortingLayers: 40 | - name: Default 41 | userID: 0 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | m_Gravity: {x: 0, y: -9.81000042} 7 | m_DefaultMaterial: {fileID: 0} 8 | m_VelocityIterations: 8 9 | m_PositionIterations: 3 10 | m_VelocityThreshold: 1 11 | m_MaxLinearCorrection: .200000003 12 | m_MaxAngularCorrection: 8 13 | m_MaxTranslationSpeed: 100 14 | m_MaxRotationSpeed: 360 15 | m_MinPenetrationForPenalty: .00999999978 16 | m_BaumgarteScale: .200000003 17 | m_BaumgarteTimeOfImpactScale: .75 18 | m_TimeToSleep: .5 19 | m_LinearSleepTolerance: .00999999978 20 | m_AngularSleepTolerance: 2 21 | m_RaycastsHitTriggers: 1 22 | m_RaycastsStartInColliders: 1 23 | m_ChangeStopsCallbacks: 0 24 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25 | -------------------------------------------------------------------------------- /Assets/UIExtention/ColorGroup/Scripts/ColorGroup.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEngine.UI; 7 | using System.Linq; 8 | 9 | namespace UIExtention { 10 | public class ColorGroup : Graphic { 11 | 12 | private CanvasRenderer[] m_CanvasRenderers = null; 13 | private CanvasRenderer[] canvasRenderers {get{ 14 | if ((m_CanvasRenderers == null) || (m_CanvasRenderers.Length == 0)) { 15 | m_CanvasRenderers = GetComponentsInChildren(); 16 | } 17 | return m_CanvasRenderers; 18 | }} 19 | 20 | protected virtual void Update() { 21 | var color = canvasRenderers[0].GetColor(); 22 | foreach (var canvasRenderer in canvasRenderers.Skip(1)) { 23 | canvasRenderer.SetColor(color); 24 | } 25 | } 26 | 27 | protected virtual void OnTransformChildrenChanged() { 28 | m_CanvasRenderers = null; 29 | } 30 | 31 | protected override void OnPopulateMesh(VertexHelper toFill) { 32 | toFill.Clear(); 33 | } 34 | 35 | public override bool Raycast(Vector2 sp, Camera eventCamera) { 36 | return false; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Scripts/Editor/PerspectiveEditor.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEditor; 7 | using UnityEditor.UI; 8 | 9 | namespace UIExtention { 10 | [CustomEditor(typeof(Perspective), true)] 11 | [CanEditMultipleObjects] 12 | public class PerspectiveEditor : GraphicEditor { 13 | 14 | SerializedProperty m_FieldOfView; 15 | SerializedProperty m_PerspectiveCorrectShader; 16 | GUIContent m_FieldOfViewContent; 17 | GUIContent m_PerspectiveCorrectShaderContent; 18 | 19 | protected override void OnEnable() { 20 | base.OnEnable(); 21 | 22 | m_FieldOfViewContent = new GUIContent("Field of View"); 23 | m_PerspectiveCorrectShaderContent = new GUIContent("Perspective Correct Shader"); 24 | 25 | m_FieldOfView = serializedObject.FindProperty("m_FieldOfView"); 26 | m_PerspectiveCorrectShader = serializedObject.FindProperty("m_PerspectiveCorrectShader"); 27 | } 28 | 29 | public override void OnInspectorGUI() { 30 | serializedObject.Update(); 31 | 32 | EditorGUILayout.PropertyField(m_FieldOfView, m_FieldOfViewContent); 33 | EditorGUILayout.PropertyField(m_PerspectiveCorrectShader, m_PerspectiveCorrectShaderContent); 34 | 35 | serializedObject.ApplyModifiedProperties(); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Assets/UIExtention/LICENSE_1_0.txt: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | 3 | Permission is hereby granted, free of charge, to any person or organization 4 | obtaining a copy of the software and accompanying documentation covered by 5 | this license (the "Software") to use, reproduce, display, distribute, 6 | execute, and transmit the Software, and to prepare derivative works of the 7 | Software, and to permit third-parties to whom the Software is furnished to 8 | do so, all subject to the following: 9 | 10 | The copyright notices in the Software and this entire statement, including 11 | the above license grant, this restriction and the following disclaimer, 12 | must be included in all copies of the Software, in whole or in part, and 13 | all derivative works of the Software, unless such copies or derivative 14 | works are solely in the form of machine-executable object code generated by 15 | a source language processor. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/Circle.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0bbc23bd1d120014b802035b9dbdef48 3 | timeCreated: 1458396048 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/Gradation.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 16aeb1bde7aa13e4e9ac00fe88106190 3 | timeCreated: 1459794181 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/Teapot.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 08585fec1d6f1e14e91f7bc6b0adaf31 3 | timeCreated: 1459352538 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/ColorGroup.gif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 48da7ac71ed75af4ba4c94a882d896ce 3 | timeCreated: 1458463788 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/CornerColors.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d8413c32a9b4c594491c257e049341c9 3 | timeCreated: 1458556786 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/Perspective.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d0fabad5213214b44ba05ea8d3148473 3 | timeCreated: 1458558267 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/UICollider.gif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d8a3872776dd42047becce3cee5d63f0 3 | timeCreated: 1459360208 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/Gradation_Editor.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34c8d5fe05c9519419e60b7f74d45d60 3 | timeCreated: 1459794181 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/TargetLayoutElement.gif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ff21268bcb53494c8b9e166239df82d 3 | timeCreated: 1459186493 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Examples/Textures/WhiteTexture.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 19f4a12aaa05f494db7b30d7d43f03ae 3 | timeCreated: 1454102646 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: 16 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 1 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 128, y: 128, z: 128, w: 128} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 8 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/AroundLayoutGroup_Circle_Inscribe.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1a28479b7b8b3364ba89834eb6e1c53e 3 | timeCreated: 1458062311 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Scripts/HashUtility.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using System.Collections.Generic; 7 | using System.Linq; 8 | 9 | namespace UIExtention { 10 | public static class HashUtility { 11 | public static int GetValueHashCode(RectTransform rectTransform) { 12 | var result = rectTransform.GetHashCode(); 13 | MergeValueHashCode(ref result, rectTransform.position); 14 | MergeValueHashCode(ref result, rectTransform.rotation); 15 | MergeValueHashCode(ref result, rectTransform.lossyScale); 16 | return result; 17 | } 18 | 19 | private static void MergeValueHashCode(ref int hash, Vector3 src) { 20 | RotateHashCode(ref hash); 21 | hash = hash ^ src.x.GetHashCode(); 22 | RotateHashCode(ref hash); 23 | hash = hash ^ src.y.GetHashCode(); 24 | RotateHashCode(ref hash); 25 | hash = hash ^ src.z.GetHashCode(); 26 | } 27 | 28 | private static void MergeValueHashCode(ref int hash, Quaternion src) { 29 | RotateHashCode(ref hash); 30 | hash = hash ^ src.x.GetHashCode(); 31 | RotateHashCode(ref hash); 32 | hash = hash ^ src.y.GetHashCode(); 33 | RotateHashCode(ref hash); 34 | hash = hash ^ src.z.GetHashCode(); 35 | RotateHashCode(ref hash); 36 | hash = hash ^ src.w.GetHashCode(); 37 | } 38 | 39 | private static void RotateHashCode(ref int hash) { 40 | hash = (int)(((uint)hash >> 15) | ((uint)hash << 17)); 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/AroundLayoutGroup_RectangleExtensionCircle_Center.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aca86a6bc0bc81c49a7ab68016fec869 3 | timeCreated: 1458062311 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/SoftMask.gif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1690050862093924fa3b17c9c6fa9f0a 3 | timeCreated: 1471448806 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | spriteTessellationDetail: -1 50 | textureType: -1 51 | buildTargetSettings: [] 52 | spriteSheet: 53 | serializedVersion: 2 54 | sprites: [] 55 | outline: [] 56 | spritePackingTag: 57 | userData: 58 | assetBundleName: 59 | assetBundleVariant: 60 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Examples/Textures/Nonwovens.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d1d698dcdc7dc549891b3892ddad3e1 3 | timeCreated: 1471443253 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: 16 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 1 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | spriteTessellationDetail: -1 50 | textureType: 8 51 | buildTargetSettings: [] 52 | spriteSheet: 53 | serializedVersion: 2 54 | sprites: [] 55 | outline: [] 56 | spritePackingTag: 57 | userData: 58 | assetBundleName: 59 | assetBundleVariant: 60 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Examples/Materials/GradationMaterial.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: 215234fa2eabe734ebf600997e9d93a3, type: 3} 12 | m_Name: GradationMaterial 13 | m_EditorClassIdentifier: 14 | m_ColorBlend: 0 15 | m_AlphaBlend: 0 16 | m_TextMapping: 0 17 | m_Keys: 18 | - position: {x: 0, y: 1} 19 | color: {r: 1, g: 0, b: 0, a: 1} 20 | - position: {x: 1, y: 1} 21 | color: {r: 1, g: 0, b: 0, a: 1} 22 | - position: {x: 0, y: 0.8333333} 23 | color: {r: 1, g: 0, b: 1, a: 1} 24 | - position: {x: 1, y: 0.8333333} 25 | color: {r: 1, g: 0, b: 1, a: 1} 26 | - position: {x: 0, y: 0.6666667} 27 | color: {r: 0, g: 0, b: 1, a: 1} 28 | - position: {x: 1, y: 0.6666667} 29 | color: {r: 0, g: 0, b: 1, a: 1} 30 | - position: {x: 0, y: 0.5} 31 | color: {r: 0, g: 1, b: 1, a: 1} 32 | - position: {x: 1, y: 0.5} 33 | color: {r: 0, g: 1, b: 1, a: 1} 34 | - position: {x: 0, y: 0.3333333} 35 | color: {r: 0, g: 1, b: 0, a: 1} 36 | - position: {x: 1, y: 0.3333333} 37 | color: {r: 0, g: 1, b: 0, a: 1} 38 | - position: {x: 0, y: 0.1666667} 39 | color: {r: 1, g: 1, b: 0, a: 1} 40 | - position: {x: 1, y: 0.1666667} 41 | color: {r: 1, g: 1, b: 0, a: 1} 42 | - position: {x: 0, y: 0} 43 | color: {r: 1, g: 0, b: 0, a: 1} 44 | - position: {x: 1, y: 0} 45 | color: {r: 1, g: 0, b: 0, a: 1} 46 | -------------------------------------------------------------------------------- /Assets/UIExtention/Teapot/Scripts/Editor/TeapotEditor.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEditor; 7 | using UnityEditor.UI; 8 | 9 | namespace UIExtention { 10 | [CustomEditor(typeof(Teapot), true)] 11 | [CanEditMultipleObjects] 12 | public class TeapotEditor : GraphicEditor { 13 | 14 | SerializedProperty m_Sprite; 15 | GUIContent m_SpriteContent; 16 | 17 | protected override void OnEnable() { 18 | base.OnEnable(); 19 | 20 | m_SpriteContent = new GUIContent("Source Image"); 21 | 22 | m_Sprite = serializedObject.FindProperty("m_Sprite"); 23 | } 24 | 25 | public override void OnInspectorGUI() { 26 | serializedObject.Update(); 27 | 28 | EditorGUILayout.PropertyField(m_Sprite, m_SpriteContent); 29 | AppearanceControlsGUI(); 30 | 31 | serializedObject.ApplyModifiedProperties(); 32 | } 33 | 34 | public override bool HasPreviewGUI() { 35 | return true; 36 | } 37 | 38 | public override void OnPreviewGUI(Rect rect, GUIStyle background) { 39 | var Teapot = target as Teapot; 40 | var sprite = Teapot.sprite; 41 | if (sprite == null) { 42 | return; 43 | } 44 | } 45 | 46 | public override string GetInfoString() { 47 | var Teapot = target as Teapot; 48 | var sprite = Teapot.sprite; 49 | 50 | var x = ((sprite != null)? Mathf.RoundToInt(sprite.rect.width): 0); 51 | var y = ((sprite != null)? Mathf.RoundToInt(sprite.rect.height): 0); 52 | 53 | return string.Format("Teapot Size: {0}x{1}", x, y); 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Documents/TextLikeLayoutGroup.gif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2722d4217f056864f8a1cc47edeae178 3 | timeCreated: 1496940523 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Examples/Animations/Image.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!91 &9100000 4 | AnimatorController: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: Image 9 | serializedVersion: 5 10 | m_AnimatorParameters: [] 11 | m_AnimatorLayers: 12 | - serializedVersion: 5 13 | m_Name: Base Layer 14 | m_StateMachine: {fileID: 110703294} 15 | m_Mask: {fileID: 0} 16 | m_Motions: [] 17 | m_Behaviours: [] 18 | m_BlendingMode: 0 19 | m_SyncedLayerIndex: -1 20 | m_DefaultWeight: 0 21 | m_IKPass: 0 22 | m_SyncedLayerAffectsTiming: 0 23 | m_Controller: {fileID: 9100000} 24 | --- !u!1102 &110280398 25 | AnimatorState: 26 | serializedVersion: 5 27 | m_ObjectHideFlags: 1 28 | m_PrefabParentObject: {fileID: 0} 29 | m_PrefabInternal: {fileID: 0} 30 | m_Name: rotation 31 | m_Speed: 1 32 | m_CycleOffset: 0 33 | m_Transitions: [] 34 | m_StateMachineBehaviours: [] 35 | m_Position: {x: 50, y: 50, z: 0} 36 | m_IKOnFeet: 0 37 | m_WriteDefaultValues: 1 38 | m_Mirror: 0 39 | m_SpeedParameterActive: 0 40 | m_MirrorParameterActive: 0 41 | m_CycleOffsetParameterActive: 0 42 | m_Motion: {fileID: 7400000, guid: dd3d42f1bbd61e343bf274c3a63b9b2d, type: 2} 43 | m_Tag: 44 | m_SpeedParameter: 45 | m_MirrorParameter: 46 | m_CycleOffsetParameter: 47 | --- !u!1107 &110703294 48 | AnimatorStateMachine: 49 | serializedVersion: 5 50 | m_ObjectHideFlags: 1 51 | m_PrefabParentObject: {fileID: 0} 52 | m_PrefabInternal: {fileID: 0} 53 | m_Name: Base Layer 54 | m_ChildStates: 55 | - serializedVersion: 1 56 | m_State: {fileID: 110280398} 57 | m_Position: {x: 200, y: 0, z: 0} 58 | m_ChildStateMachines: [] 59 | m_AnyStateTransitions: [] 60 | m_EntryTransitions: [] 61 | m_StateMachineTransitions: {} 62 | m_StateMachineBehaviours: [] 63 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 64 | m_EntryPosition: {x: 50, y: 120, z: 0} 65 | m_ExitPosition: {x: 800, y: 120, z: 0} 66 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 67 | m_DefaultState: {fileID: 110280398} 68 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # UnityUIExtention 2 | UnityUI(uGUI)向けの拡張コンポーネント群 3 | 4 | 5 | 6 | ## Components List 7 | 8 | ### AroundLayoutGroup 9 | 円形(もしくは矩形)に配置 10 | Circle_Inscribe 11 | RectangleExtensionCircle_Center 12 | 13 | ### Circle 14 | 円形(と言うか多角形)イメージ 15 | Circle 16 | 17 | ### ColorGroup 18 | ボタンのColorTintトランジションを複数オブジェクトに反映 19 | Circle 20 | 21 | ### CornerColors 22 | 四隅の色を個別に変更 23 | CornerColors 24 | 25 | ### Gradation 26 | 多色グラデーション 27 | Gradation 28 | Gradation_Editor 29 | 30 | ### Perspective 31 | (「Screen Space - Overlay」キャンバス等の)正射影空間に配置されているオブジェクトにパースを付加 32 | Perspective 33 | 34 | ### SoftMask 35 | 不透明度グラデーション有りの矩形マスク 36 | SoftMask 37 | 38 | ### TargetLayoutElement 39 | 他オブジェクトのLayoutElementを参照 40 | Perspective 41 | 42 | ### Teapot 43 | ティーポットを描画 44 | Teapot 45 | (CanvasRendererは深度テストが無効なので綺麗には描画出来無い) 46 | 47 | ### TextLikeLayoutGroup 48 | 文章の様に1行に配置、はみ出たら次の行へ配置 49 | TextLikeLayoutGroup 50 | 51 | ### UICollider 52 | 表示物の無い当たり判定 53 | UICollider 54 | 55 | 56 | 57 | ## LICENSE 58 | Boost Software License, Version 1.0 59 | 60 | -------------------------------------------------------------------------------- /Assets/RestrictInterfacePropertyDrawer/RestrictInterfacePropertyDrawer.cs: -------------------------------------------------------------------------------- 1 | // (C) 2014 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | 7 | #if UNITY_EDITOR 8 | using UnityEditor; 9 | using System.Linq; 10 | 11 | [CustomPropertyDrawer(typeof(RestrictInterfaceAttribute))] 12 | public class RestrictInterfacePropertyDrawer : PropertyDrawer { 13 | 14 | public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { 15 | var restrictInterfaceAttribute = (RestrictInterfaceAttribute)attribute; 16 | 17 | if (SerializedPropertyType.ObjectReference == property.propertyType) { 18 | using (new EditorGUI.PropertyScope(position, label, property)) { 19 | var propertyHeight = base.GetPropertyHeight(property, label); 20 | position.height = propertyHeight; 21 | 22 | EditorGUI.BeginChangeCheck(); 23 | var value = EditorGUI.ObjectField(position, label, property.objectReferenceValue, fieldInfo.FieldType, true); 24 | if (EditorGUI.EndChangeCheck()) { 25 | if (null == value) { 26 | property.objectReferenceValue = value; 27 | } else if (restrictInterfaceAttribute.RestrictType.IsAssignableFrom(value.GetType())) { 28 | property.objectReferenceValue = value; 29 | } else { 30 | var components = ((Component)value).GetComponents().Where(x=>0 == (HideFlags.HideInInspector & x.hideFlags)) 31 | .Where(x=>restrictInterfaceAttribute.RestrictType.IsAssignableFrom(x.GetType())) 32 | .ToArray(); 33 | if (0 == components.Length) { 34 | property.objectReferenceValue = null; 35 | } else { 36 | property.objectReferenceValue = components[0]; 37 | } 38 | } 39 | } 40 | } 41 | } else { 42 | EditorGUI.LabelField(position, label, new GUIContent("This type has not supported.")); 43 | } 44 | } 45 | } 46 | #endif 47 | 48 | public class RestrictInterfaceAttribute : PropertyAttribute { 49 | public System.Type RestrictType {get; set;} 50 | 51 | public RestrictInterfaceAttribute(System.Type restrictType) { 52 | RestrictType = restrictType; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /Assets/UIExtention/Circle/Scripts/Editor/CircleEditor.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEditor; 7 | using UnityEditor.UI; 8 | 9 | namespace UIExtention { 10 | [CustomEditor(typeof(Circle), true)] 11 | [CanEditMultipleObjects] 12 | public class CircleEditor : GraphicEditor { 13 | 14 | SerializedProperty m_Sprite; 15 | GUIContent m_SpriteContent; 16 | SerializedProperty m_VertexCount; 17 | GUIContent m_VertexCountContent; 18 | SerializedProperty m_Distortion; 19 | GUIContent m_DistortionContent; 20 | 21 | protected override void OnEnable() { 22 | base.OnEnable(); 23 | 24 | m_SpriteContent = new GUIContent("Source Image"); 25 | m_VertexCountContent = new GUIContent("Vertex Count"); 26 | m_DistortionContent = new GUIContent("Distortion"); 27 | 28 | m_Sprite = serializedObject.FindProperty("m_Sprite"); 29 | m_VertexCount = serializedObject.FindProperty("m_VertexCount"); 30 | m_Distortion = serializedObject.FindProperty("m_Distortion"); 31 | } 32 | 33 | public override void OnInspectorGUI() { 34 | serializedObject.Update(); 35 | 36 | EditorGUILayout.PropertyField(m_Sprite, m_SpriteContent); 37 | AppearanceControlsGUI(); 38 | EditorGUILayout.PropertyField(m_VertexCount, m_VertexCountContent); 39 | EditorGUILayout.PropertyField(m_Distortion, m_DistortionContent); 40 | 41 | serializedObject.ApplyModifiedProperties(); 42 | } 43 | 44 | public override bool HasPreviewGUI() { 45 | return true; 46 | } 47 | 48 | public override void OnPreviewGUI(Rect rect, GUIStyle background) { 49 | var circle = target as Circle; 50 | var sprite = circle.sprite; 51 | if (sprite == null) { 52 | return; 53 | } 54 | } 55 | 56 | public override string GetInfoString() { 57 | var circle = target as Circle; 58 | var sprite = circle.sprite; 59 | 60 | var x = ((sprite != null)? Mathf.RoundToInt(sprite.rect.width): 0); 61 | var y = ((sprite != null)? Mathf.RoundToInt(sprite.rect.height): 0); 62 | 63 | return string.Format("Circle Size: {0}x{1}", x, y); 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Scripts/Editor/GradationEditor.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEditor; 7 | 8 | namespace UIExtention { 9 | [CustomEditor(typeof(Gradation))] 10 | [CanEditMultipleObjects] 11 | public class GradationEditor : Editor { 12 | private SerializedProperty m_Material; 13 | private GUIContent m_MaterialContent; 14 | private SerializedProperty m_Weight; 15 | private GUIContent m_WeightContent; 16 | private GUIContent m_PreviewTitleContent; 17 | 18 | protected virtual void OnEnable() { 19 | m_MaterialContent = new GUIContent("Material"); 20 | m_Material = serializedObject.FindProperty("m_Material"); 21 | m_WeightContent = new GUIContent("Weight"); 22 | m_Weight = serializedObject.FindProperty("m_Weight"); 23 | m_PreviewTitleContent = new GUIContent("Gradation"); 24 | } 25 | 26 | public override void OnInspectorGUI() { 27 | serializedObject.Update(); 28 | 29 | EditorGUILayout.PropertyField(m_Material, m_MaterialContent); 30 | EditorGUILayout.PropertyField(m_Weight, m_WeightContent); 31 | 32 | serializedObject.ApplyModifiedProperties(); 33 | } 34 | 35 | public override bool HasPreviewGUI() { 36 | return true; 37 | } 38 | 39 | public override GUIContent GetPreviewTitle() { 40 | return m_PreviewTitleContent; 41 | } 42 | 43 | public override void OnPreviewGUI(Rect r, GUIStyle background) { 44 | base.OnPreviewGUI(r, background); 45 | if (Event.current.type != EventType.Repaint) { 46 | return; 47 | } 48 | var material = m_Material.objectReferenceValue as GradationMaterial; 49 | if (material == null) { 50 | return; 51 | } 52 | 53 | var drawShortLength = Mathf.Min(r.width, r.height); 54 | var drawSize = drawShortLength * ((40.0f < drawShortLength)? 1.0f: 4.0f) * Vector2.one; 55 | var previewTexture = GradationMaterialEditor.CreatePreviewTexture2D(material, drawSize, Color.white, Color.gray); 56 | 57 | var drawRect = new Rect(r.center - drawShortLength * 0.5f * Vector2.one 58 | , drawShortLength * Vector2.one 59 | ); 60 | GUI.DrawTexture(drawRect, previewTexture); 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Assets/UIExtention/AroundLayoutGroup/Scripts/Editor/AroundLayoutGroupEditor.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEditor; 7 | 8 | namespace UIExtention { 9 | [CustomEditor(typeof(AroundLayoutGroup))] 10 | [CanEditMultipleObjects] 11 | public class AroundLayoutGroupEditor : Editor { 12 | SerializedProperty m_Path; 13 | SerializedProperty m_Range; 14 | SerializedProperty m_Justify; 15 | SerializedProperty m_Offset; 16 | SerializedProperty m_ChildAlignment; 17 | GUIContent m_PathContent; 18 | GUIContent m_RangeContent; 19 | GUIContent m_JustifyContent; 20 | GUIContent m_OffsetContent; 21 | GUIContent m_ChildAlignmentContent; 22 | 23 | protected virtual void OnEnable() { 24 | m_PathContent = new GUIContent("Path"); 25 | m_RangeContent = new GUIContent("Range"); 26 | m_JustifyContent = new GUIContent("Justify"); 27 | m_OffsetContent = new GUIContent("Offset"); 28 | m_ChildAlignmentContent = new GUIContent("Child Alignment"); 29 | m_Path = serializedObject.FindProperty("m_Path"); 30 | m_Range = serializedObject.FindProperty("m_Range"); 31 | m_Justify = serializedObject.FindProperty("m_Justify"); 32 | m_Offset = serializedObject.FindProperty("m_Offset"); 33 | m_ChildAlignment = serializedObject.FindProperty("m_ChildAlignment"); 34 | } 35 | 36 | public override void OnInspectorGUI() { 37 | serializedObject.Update(); 38 | 39 | EditorGUILayout.PropertyField(m_Path, m_PathContent); 40 | EditorGUILayout.PropertyField(m_Range, m_RangeContent); 41 | EditorGUILayout.PropertyField(m_Justify, m_JustifyContent); 42 | EditorGUILayout.PropertyField(m_Offset, m_OffsetContent); 43 | var position = GUILayoutUtility.GetRect(m_ChildAlignmentContent, EditorStyles.label); 44 | using (new EditorGUI.PropertyScope(position, m_ChildAlignmentContent, m_ChildAlignment)) { 45 | EditorGUI.BeginChangeCheck(); 46 | var enumValueIndex = (int)(AroundLayoutGroup.ChildAnchor)EditorGUI.EnumPopup(position, m_ChildAlignmentContent, (AroundLayoutGroup.ChildAnchor)m_ChildAlignment.enumValueIndex); 47 | if (EditorGUI.EndChangeCheck()) { 48 | m_ChildAlignment.enumValueIndex = enumValueIndex; 49 | } 50 | } 51 | 52 | serializedObject.ApplyModifiedProperties(); 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /Assets/MinMaxSliderPropertyDrawer/MinMaxSliderPropertyDrawer.cs: -------------------------------------------------------------------------------- 1 | // (C) 2015 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | 7 | #if UNITY_EDITOR 8 | using UnityEditor; 9 | 10 | [CustomPropertyDrawer(typeof(MinMaxSliderAttribute))] 11 | public class MinMaxSliderPropertyDrawer : PropertyDrawer { 12 | 13 | public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { 14 | var minMaxSliderAttribute = (MinMaxSliderAttribute)attribute; 15 | 16 | if (SerializedPropertyType.Vector2 == property.propertyType) { 17 | using (new EditorGUI.PropertyScope(position, label, property)) { 18 | const float kSpacing = 5.0f; 19 | 20 | var value = property.vector2Value; 21 | EditorGUI.BeginChangeCheck(); 22 | 23 | var prefixLabelPosition = position; 24 | prefixLabelPosition.width = EditorGUIUtility.labelWidth; 25 | EditorGUI.LabelField(prefixLabelPosition, label); 26 | position.xMin += prefixLabelPosition.width; 27 | 28 | var minFloatFieldPosition = position; 29 | minFloatFieldPosition.width = EditorGUIUtility.fieldWidth; 30 | value.x = EditorGUI.FloatField(minFloatFieldPosition, value.x); 31 | position.xMin += minFloatFieldPosition.width + kSpacing; 32 | 33 | var minMaxSliderPosition = position; 34 | minMaxSliderPosition.width -= EditorGUIUtility.fieldWidth + kSpacing; 35 | EditorGUI.MinMaxSlider(minMaxSliderPosition, ref value.x, ref value.y, minMaxSliderAttribute.min, minMaxSliderAttribute.max); 36 | position.xMin += minMaxSliderPosition.width + kSpacing; 37 | 38 | var maxFloatFieldPosition = position; 39 | maxFloatFieldPosition.width = EditorGUIUtility.fieldWidth; 40 | value.y = EditorGUI.FloatField(maxFloatFieldPosition, value.y); 41 | position.xMin += maxFloatFieldPosition.width + kSpacing; 42 | 43 | if (EditorGUI.EndChangeCheck()) { 44 | property.vector2Value = value; 45 | } 46 | } 47 | } else { 48 | EditorGUI.LabelField(position, label, new GUIContent("Use MinMaxSlider with Vector2.")); 49 | } 50 | } 51 | } 52 | #endif 53 | 54 | public class MinMaxSliderAttribute : PropertyAttribute { 55 | public readonly float min; 56 | public readonly float max; 57 | 58 | public MinMaxSliderAttribute(float min, float max) { 59 | this.min = min; 60 | this.max = max; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 9 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0} 38 | m_PreloadedShaders: [] 39 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 40 | type: 0} 41 | m_TierSettings_Tier1: 42 | renderingPath: 1 43 | useCascadedShadowMaps: 1 44 | m_TierSettings_Tier2: 45 | renderingPath: 1 46 | useCascadedShadowMaps: 1 47 | m_TierSettings_Tier3: 48 | renderingPath: 1 49 | useCascadedShadowMaps: 1 50 | m_DefaultRenderingPath: 1 51 | m_DefaultMobileRenderingPath: 1 52 | m_TierSettings: [] 53 | m_LightmapStripping: 0 54 | m_FogStripping: 0 55 | m_LightmapKeepPlain: 1 56 | m_LightmapKeepDirCombined: 1 57 | m_LightmapKeepDirSeparate: 1 58 | m_LightmapKeepDynamicPlain: 1 59 | m_LightmapKeepDynamicDirCombined: 1 60 | m_LightmapKeepDynamicDirSeparate: 1 61 | m_FogKeepLinear: 1 62 | m_FogKeepExp: 1 63 | m_FogKeepExp2: 1 64 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshLayers: 5 | m_ObjectHideFlags: 0 6 | Built-in Layer 0: 7 | name: Default 8 | cost: 1 9 | editType: 2 10 | Built-in Layer 1: 11 | name: Not Walkable 12 | cost: 1 13 | editType: 0 14 | Built-in Layer 2: 15 | name: Jump 16 | cost: 2 17 | editType: 2 18 | User Layer 0: 19 | name: 20 | cost: 1 21 | editType: 3 22 | User Layer 1: 23 | name: 24 | cost: 1 25 | editType: 3 26 | User Layer 2: 27 | name: 28 | cost: 1 29 | editType: 3 30 | User Layer 3: 31 | name: 32 | cost: 1 33 | editType: 3 34 | User Layer 4: 35 | name: 36 | cost: 1 37 | editType: 3 38 | User Layer 5: 39 | name: 40 | cost: 1 41 | editType: 3 42 | User Layer 6: 43 | name: 44 | cost: 1 45 | editType: 3 46 | User Layer 7: 47 | name: 48 | cost: 1 49 | editType: 3 50 | User Layer 8: 51 | name: 52 | cost: 1 53 | editType: 3 54 | User Layer 9: 55 | name: 56 | cost: 1 57 | editType: 3 58 | User Layer 10: 59 | name: 60 | cost: 1 61 | editType: 3 62 | User Layer 11: 63 | name: 64 | cost: 1 65 | editType: 3 66 | User Layer 12: 67 | name: 68 | cost: 1 69 | editType: 3 70 | User Layer 13: 71 | name: 72 | cost: 1 73 | editType: 3 74 | User Layer 14: 75 | name: 76 | cost: 1 77 | editType: 3 78 | User Layer 15: 79 | name: 80 | cost: 1 81 | editType: 3 82 | User Layer 16: 83 | name: 84 | cost: 1 85 | editType: 3 86 | User Layer 17: 87 | name: 88 | cost: 1 89 | editType: 3 90 | User Layer 18: 91 | name: 92 | cost: 1 93 | editType: 3 94 | User Layer 19: 95 | name: 96 | cost: 1 97 | editType: 3 98 | User Layer 20: 99 | name: 100 | cost: 1 101 | editType: 3 102 | User Layer 21: 103 | name: 104 | cost: 1 105 | editType: 3 106 | User Layer 22: 107 | name: 108 | cost: 1 109 | editType: 3 110 | User Layer 23: 111 | name: 112 | cost: 1 113 | editType: 3 114 | User Layer 24: 115 | name: 116 | cost: 1 117 | editType: 3 118 | User Layer 25: 119 | name: 120 | cost: 1 121 | editType: 3 122 | User Layer 26: 123 | name: 124 | cost: 1 125 | editType: 3 126 | User Layer 27: 127 | name: 128 | cost: 1 129 | editType: 3 130 | User Layer 28: 131 | name: 132 | cost: 1 133 | editType: 3 134 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshLayers.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshLayers: 5 | m_ObjectHideFlags: 0 6 | Built-in Layer 0: 7 | name: Default 8 | cost: 1 9 | editType: 2 10 | Built-in Layer 1: 11 | name: Not Walkable 12 | cost: 1 13 | editType: 0 14 | Built-in Layer 2: 15 | name: Jump 16 | cost: 2 17 | editType: 2 18 | User Layer 0: 19 | name: 20 | cost: 1 21 | editType: 3 22 | User Layer 1: 23 | name: 24 | cost: 1 25 | editType: 3 26 | User Layer 2: 27 | name: 28 | cost: 1 29 | editType: 3 30 | User Layer 3: 31 | name: 32 | cost: 1 33 | editType: 3 34 | User Layer 4: 35 | name: 36 | cost: 1 37 | editType: 3 38 | User Layer 5: 39 | name: 40 | cost: 1 41 | editType: 3 42 | User Layer 6: 43 | name: 44 | cost: 1 45 | editType: 3 46 | User Layer 7: 47 | name: 48 | cost: 1 49 | editType: 3 50 | User Layer 8: 51 | name: 52 | cost: 1 53 | editType: 3 54 | User Layer 9: 55 | name: 56 | cost: 1 57 | editType: 3 58 | User Layer 10: 59 | name: 60 | cost: 1 61 | editType: 3 62 | User Layer 11: 63 | name: 64 | cost: 1 65 | editType: 3 66 | User Layer 12: 67 | name: 68 | cost: 1 69 | editType: 3 70 | User Layer 13: 71 | name: 72 | cost: 1 73 | editType: 3 74 | User Layer 14: 75 | name: 76 | cost: 1 77 | editType: 3 78 | User Layer 15: 79 | name: 80 | cost: 1 81 | editType: 3 82 | User Layer 16: 83 | name: 84 | cost: 1 85 | editType: 3 86 | User Layer 17: 87 | name: 88 | cost: 1 89 | editType: 3 90 | User Layer 18: 91 | name: 92 | cost: 1 93 | editType: 3 94 | User Layer 19: 95 | name: 96 | cost: 1 97 | editType: 3 98 | User Layer 20: 99 | name: 100 | cost: 1 101 | editType: 3 102 | User Layer 21: 103 | name: 104 | cost: 1 105 | editType: 3 106 | User Layer 22: 107 | name: 108 | cost: 1 109 | editType: 3 110 | User Layer 23: 111 | name: 112 | cost: 1 113 | editType: 3 114 | User Layer 24: 115 | name: 116 | cost: 1 117 | editType: 3 118 | User Layer 25: 119 | name: 120 | cost: 1 121 | editType: 3 122 | User Layer 26: 123 | name: 124 | cost: 1 125 | editType: 3 126 | User Layer 27: 127 | name: 128 | cost: 1 129 | editType: 3 130 | User Layer 28: 131 | name: 132 | cost: 1 133 | editType: 3 134 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshLayers: 5 | m_ObjectHideFlags: 0 6 | Built-in Layer 0: 7 | name: Default 8 | cost: 1 9 | editType: 2 10 | Built-in Layer 1: 11 | name: Not Walkable 12 | cost: 1 13 | editType: 0 14 | Built-in Layer 2: 15 | name: Jump 16 | cost: 2 17 | editType: 2 18 | User Layer 0: 19 | name: 20 | cost: 1 21 | editType: 3 22 | User Layer 1: 23 | name: 24 | cost: 1 25 | editType: 3 26 | User Layer 2: 27 | name: 28 | cost: 1 29 | editType: 3 30 | User Layer 3: 31 | name: 32 | cost: 1 33 | editType: 3 34 | User Layer 4: 35 | name: 36 | cost: 1 37 | editType: 3 38 | User Layer 5: 39 | name: 40 | cost: 1 41 | editType: 3 42 | User Layer 6: 43 | name: 44 | cost: 1 45 | editType: 3 46 | User Layer 7: 47 | name: 48 | cost: 1 49 | editType: 3 50 | User Layer 8: 51 | name: 52 | cost: 1 53 | editType: 3 54 | User Layer 9: 55 | name: 56 | cost: 1 57 | editType: 3 58 | User Layer 10: 59 | name: 60 | cost: 1 61 | editType: 3 62 | User Layer 11: 63 | name: 64 | cost: 1 65 | editType: 3 66 | User Layer 12: 67 | name: 68 | cost: 1 69 | editType: 3 70 | User Layer 13: 71 | name: 72 | cost: 1 73 | editType: 3 74 | User Layer 14: 75 | name: 76 | cost: 1 77 | editType: 3 78 | User Layer 15: 79 | name: 80 | cost: 1 81 | editType: 3 82 | User Layer 16: 83 | name: 84 | cost: 1 85 | editType: 3 86 | User Layer 17: 87 | name: 88 | cost: 1 89 | editType: 3 90 | User Layer 18: 91 | name: 92 | cost: 1 93 | editType: 3 94 | User Layer 19: 95 | name: 96 | cost: 1 97 | editType: 3 98 | User Layer 20: 99 | name: 100 | cost: 1 101 | editType: 3 102 | User Layer 21: 103 | name: 104 | cost: 1 105 | editType: 3 106 | User Layer 22: 107 | name: 108 | cost: 1 109 | editType: 3 110 | User Layer 23: 111 | name: 112 | cost: 1 113 | editType: 3 114 | User Layer 24: 115 | name: 116 | cost: 1 117 | editType: 3 118 | User Layer 25: 119 | name: 120 | cost: 1 121 | editType: 3 122 | User Layer 26: 123 | name: 124 | cost: 1 125 | editType: 3 126 | User Layer 27: 127 | name: 128 | cost: 1 129 | editType: 3 130 | User Layer 28: 131 | name: 132 | cost: 1 133 | editType: 3 134 | -------------------------------------------------------------------------------- /Assets/UIExtention/CornerColors/Scripts/CornerColors.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEngine.UI; 7 | using System.Collections.Generic; 8 | 9 | namespace UIExtention { 10 | public class CornerColors : BaseMeshEffect { 11 | 12 | [SerializeField] private Color m_UpperLeftColor = Color.white; 13 | public Color upperLeftColor {get{return m_UpperLeftColor;} set{m_UpperLeftColor = value;}} 14 | 15 | [SerializeField] private Color m_UpperRightColor = Color.white; 16 | public Color upperRightColor {get{return m_UpperRightColor;} set{m_UpperRightColor = value;}} 17 | 18 | [SerializeField] private Color m_LowerLeftColor = Color.white; 19 | public Color lowerLeftColor {get{return m_LowerLeftColor;} set{m_LowerLeftColor = value;}} 20 | 21 | [SerializeField] private Color m_LowerRightColor = Color.white; 22 | public Color lowerRightColor {get{return m_LowerRightColor;} set{m_LowerRightColor = value;}} 23 | 24 | public RectTransform rectTransform { 25 | get { 26 | if (m_rectTransform == null) { 27 | m_rectTransform = transform as RectTransform; 28 | } 29 | return m_rectTransform; 30 | } 31 | } 32 | private RectTransform m_rectTransform; 33 | 34 | public override void ModifyMesh(VertexHelper vh) { 35 | if (!IsActive()) { 36 | return; 37 | } 38 | 39 | Vector3[] localCorners = new Vector3[4]; 40 | rectTransform.GetLocalCorners(localCorners); 41 | 42 | var vertices = new List(); 43 | vh.GetUIVertexStream(vertices); 44 | localCorners[3] = localCorners[2] - localCorners[0]; 45 | localCorners[1] = new Vector3(((0.0f < localCorners[3].x)? 1.0f / localCorners[3].x: 0.0f) 46 | , ((0.0f < localCorners[3].y)? 1.0f / localCorners[3].y: 0.0f) 47 | , ((0.0f < localCorners[3].z)? 1.0f / localCorners[3].z: 0.0f)); 48 | 49 | var lowerLeftColor32 = (Color32)lowerLeftColor; 50 | var lowerRightColor32 = (Color32)lowerRightColor; 51 | var upperLeftColor32 = (Color32)upperLeftColor; 52 | var upperRightColor32 = (Color32)upperRightColor; 53 | 54 | UIVertex vertex = new UIVertex(); 55 | for (int i = 0, i_max = vh.currentVertCount; i < i_max; ++i) { 56 | vh.PopulateUIVertex(ref vertex, i); 57 | var position = Vector3.Scale(vertex.position - localCorners[0], localCorners[1]); 58 | 59 | vertex.color = Color32.Lerp(Color32.Lerp(lowerLeftColor32, lowerRightColor32, position.x) 60 | , Color32.Lerp(upperLeftColor32, upperRightColor32, position.x) 61 | , position.y 62 | ); 63 | vh.SetUIVertex(vertex, i); 64 | } 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /Assets/UIExtention/Circle/Scripts/Circle.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEngine.UI; 7 | using System.Linq; 8 | 9 | namespace UIExtention { 10 | public class Circle : Image { 11 | 12 | [SerializeField] [Range(3, 120)] private int m_VertexCount = 16; 13 | public int vertexCount {get{return m_VertexCount;} set{if (m_VertexCount != value) {m_VertexCount = value; SetVerticesDirty();}}} 14 | 15 | [SerializeField] private bool m_Distortion = false; 16 | public bool distortion {get{return m_Distortion;} set{if (m_Distortion!= value) {m_Distortion = value; SetVerticesDirty();}}} 17 | 18 | protected Circle() { 19 | } 20 | 21 | protected override void OnPopulateMesh(VertexHelper toFill) { 22 | toFill.Clear(); 23 | 24 | var vert = UIVertex.simpleVert; 25 | vert.color = color; 26 | 27 | var pos = GetPixelAdjustedRect(); 28 | var uvVector4 = ((overrideSprite != null)? UnityEngine.Sprites.DataUtility.GetOuterUV(overrideSprite): Vector4.zero); 29 | var uv = new Rect(uvVector4.x, uvVector4.y, uvVector4.z - uvVector4.x, uvVector4.w - uvVector4.y); 30 | 31 | System.Func DistortionFunction; 32 | if (distortion) { 33 | DistortionFunction = x=>{ 34 | x = Mathf.PingPong(x, Mathf.PI * 0.25f); 35 | return 1.0f / Mathf.Cos(x); 36 | }; 37 | } else { 38 | DistortionFunction = x=>{ 39 | return 1.0f; 40 | }; 41 | } 42 | 43 | var centerVertex = vert; 44 | centerVertex.position = pos.center; 45 | centerVertex.uv0 = uv.center; 46 | toFill.AddVert(centerVertex); 47 | 48 | var halfSize = pos.size * 0.5f; 49 | var countToRad = Mathf.PI * 2.0f / vertexCount; 50 | var vertices = Enumerable.Range(0, vertexCount) 51 | .Select(x=>x * countToRad) 52 | .Select(x=>new{Sin = Mathf.Sin(x), Cos = Mathf.Cos(x), Distortion = DistortionFunction(x)}) 53 | .Select(x=>{ 54 | vert.position = new Vector3(x.Sin * halfSize.x, x.Cos * halfSize.y); 55 | vert.uv0 = new Vector2(x.Sin * 0.5f * uv.width * x.Distortion + uv.center.x, x.Cos * 0.5f * uv.height * x.Distortion + uv.center.y); 56 | return vert; 57 | }); 58 | foreach (var vertex in vertices) { 59 | toFill.AddVert(vertex); 60 | } 61 | for (int i = 0, iMax = vertexCount - 1; i < iMax; ++i) { 62 | toFill.AddTriangle(0, i + 1, i + 2); 63 | } 64 | toFill.AddTriangle(0, vertexCount, 1); 65 | } 66 | 67 | public override bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera) { 68 | Vector2 localPoint; 69 | RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform,screenPoint, eventCamera, out localPoint); 70 | var pos = GetPixelAdjustedRect(); 71 | localPoint = new Vector2(localPoint.x / pos.width, localPoint.y / pos.height); 72 | return localPoint.sqrMagnitude <= 0.25f; 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Shaders/UI-Perspective.shader: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | Shader "UI/UIExtention/Perspective" 6 | { 7 | Properties 8 | { 9 | [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} 10 | _Color ("Tint", Color) = (1,1,1,1) 11 | 12 | _StencilComp ("Stencil Comparison", Float) = 8 13 | _Stencil ("Stencil ID", Float) = 0 14 | _StencilOp ("Stencil Operation", Float) = 0 15 | _StencilWriteMask ("Stencil Write Mask", Float) = 255 16 | _StencilReadMask ("Stencil Read Mask", Float) = 255 17 | 18 | _ColorMask ("Color Mask", Float) = 15 19 | } 20 | 21 | SubShader 22 | { 23 | Tags 24 | { 25 | "Queue"="Transparent" 26 | "IgnoreProjector"="True" 27 | "RenderType"="Transparent" 28 | "PreviewType"="Plane" 29 | "CanUseSpriteAtlas"="True" 30 | } 31 | 32 | Stencil 33 | { 34 | Ref [_Stencil] 35 | Comp [_StencilComp] 36 | Pass [_StencilOp] 37 | ReadMask [_StencilReadMask] 38 | WriteMask [_StencilWriteMask] 39 | } 40 | 41 | Cull Off 42 | Lighting Off 43 | ZWrite Off 44 | ZTest [unity_GUIZTestMode] 45 | Blend SrcAlpha OneMinusSrcAlpha 46 | ColorMask [_ColorMask] 47 | 48 | Pass 49 | { 50 | CGPROGRAM 51 | #pragma vertex vert 52 | #pragma fragment frag 53 | 54 | #include "UnityCG.cginc" 55 | #include "UnityUI.cginc" 56 | 57 | struct appdata_t 58 | { 59 | float4 vertex : POSITION; 60 | float4 color : COLOR; 61 | float2 texcoord : TEXCOORD0; 62 | float2 texcoord1: TEXCOORD1; 63 | }; 64 | 65 | struct v2f 66 | { 67 | float4 vertex : SV_POSITION; 68 | fixed4 color : COLOR; 69 | half3 texcoord : TEXCOORD0; 70 | float4 worldPosition : TEXCOORD1; 71 | }; 72 | 73 | fixed4 _Color; 74 | fixed4 _TextureSampleAdd; 75 | 76 | bool _UseClipRect; 77 | float4 _ClipRect; 78 | 79 | bool _UseAlphaClip; 80 | 81 | v2f vert(appdata_t IN) 82 | { 83 | v2f OUT; 84 | OUT.worldPosition = IN.vertex; 85 | OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); 86 | 87 | OUT.texcoord = half3(IN.texcoord * IN.texcoord1.x, IN.texcoord1.x); 88 | 89 | #ifdef UNITY_HALF_TEXEL_OFFSET 90 | OUT.vertex.xy += (_ScreenParams.zw-1.0)*float2(-1,1); 91 | #endif 92 | 93 | OUT.color = IN.color * _Color; 94 | return OUT; 95 | } 96 | 97 | sampler2D _MainTex; 98 | 99 | fixed4 frag(v2f IN) : SV_Target 100 | { 101 | half2 texcoord = IN.texcoord.xy / IN.texcoord.z; 102 | half4 color = (tex2D(_MainTex, texcoord) + _TextureSampleAdd) * IN.color; 103 | 104 | if (_UseClipRect) 105 | color *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect); 106 | 107 | if (_UseAlphaClip) 108 | clip (color.a - 0.001); 109 | 110 | return color; 111 | } 112 | ENDCG 113 | } 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /Assets/UIExtention/CornerColors/Scripts/Editor/CornerColorsEditor.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEditor; 7 | 8 | namespace UIExtention { 9 | [CustomEditor(typeof(CornerColors))] 10 | [CanEditMultipleObjects] 11 | public class CornerColorsEditor : Editor { 12 | SerializedProperty m_UpperLeftColor; 13 | SerializedProperty m_UpperRightColor; 14 | SerializedProperty m_LowerLeftColor; 15 | SerializedProperty m_LowerRightColor; 16 | GUIContent m_CornerColorsContent; 17 | 18 | protected virtual void OnEnable() { 19 | m_CornerColorsContent = new GUIContent("Corner Colors"); 20 | m_UpperLeftColor = serializedObject.FindProperty("m_UpperLeftColor"); 21 | m_UpperRightColor = serializedObject.FindProperty("m_UpperRightColor"); 22 | m_LowerLeftColor = serializedObject.FindProperty("m_LowerLeftColor"); 23 | m_LowerRightColor = serializedObject.FindProperty("m_LowerRightColor"); 24 | } 25 | 26 | public override void OnInspectorGUI() { 27 | serializedObject.Update(); 28 | 29 | var position = GUILayoutUtility.GetRect(m_CornerColorsContent, EditorStyles.label); 30 | 31 | var labelPosition = position; 32 | labelPosition.width = EditorGUIUtility.labelWidth; 33 | EditorGUI.BeginProperty(position, m_CornerColorsContent, m_UpperLeftColor); 34 | var prefabOverride = m_UpperLeftColor.prefabOverride || m_UpperRightColor.prefabOverride || m_LowerLeftColor.prefabOverride || m_LowerRightColor.prefabOverride; 35 | var style = ((!prefabOverride)? EditorStyles.label: EditorStyles.boldLabel); 36 | EditorGUI.LabelField(position, m_CornerColorsContent, style); 37 | EditorGUI.EndProperty(); 38 | position.xMin += labelPosition.width; 39 | 40 | var indentLevel = EditorGUI.indentLevel++; 41 | const float c_spacing = 2.0f; 42 | var valuePosition = new Rect(); 43 | if (EditorGUIUtility.wideMode) { 44 | valuePosition = position; 45 | } else { 46 | valuePosition = GUILayoutUtility.GetRect(EditorGUIUtility.fieldWidth, EditorGUIUtility.singleLineHeight); 47 | valuePosition = EditorGUI.IndentedRect(valuePosition); 48 | } 49 | EditorGUI.indentLevel = 0; 50 | valuePosition.width = valuePosition.width * 0.5f - c_spacing; 51 | EditorGUI.PropertyField(valuePosition, m_UpperLeftColor, GUIContent.none); 52 | valuePosition.x += valuePosition.width + c_spacing; 53 | EditorGUI.PropertyField(valuePosition, m_UpperRightColor, GUIContent.none); 54 | EditorGUI.indentLevel = indentLevel + 1; 55 | if (EditorGUIUtility.wideMode) { 56 | valuePosition = GUILayoutUtility.GetRect(EditorGUIUtility.fieldWidth, EditorGUIUtility.singleLineHeight); 57 | valuePosition.xMin += labelPosition.width; 58 | } else { 59 | valuePosition = GUILayoutUtility.GetRect(EditorGUIUtility.fieldWidth, EditorGUIUtility.singleLineHeight); 60 | valuePosition = EditorGUI.IndentedRect(valuePosition); 61 | } 62 | EditorGUI.indentLevel = 0; 63 | valuePosition.width = valuePosition.width * 0.5f - c_spacing; 64 | EditorGUI.PropertyField(valuePosition, m_LowerLeftColor, GUIContent.none); 65 | valuePosition.x += valuePosition.width + c_spacing; 66 | EditorGUI.PropertyField(valuePosition, m_LowerRightColor, GUIContent.none); 67 | EditorGUI.indentLevel = indentLevel; 68 | 69 | serializedObject.ApplyModifiedProperties(); 70 | } 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Examples/Textures/SampleTexture.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b819802547e0fe146922b54d87aca1c6 3 | timeCreated: 1428941201 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: 7 | 21300000: SampleTexture0 8 | 21300002: SampleTexture1 9 | 21300004: SampleTexture2 10 | 21300006: SampleTexture3 11 | 21300008: SampleTexture 12 | serializedVersion: 2 13 | mipmaps: 14 | mipMapMode: 0 15 | enableMipMap: 0 16 | linearTexture: 0 17 | correctGamma: 0 18 | fadeOut: 0 19 | borderMipMap: 0 20 | mipMapFadeDistanceStart: 1 21 | mipMapFadeDistanceEnd: 3 22 | bumpmap: 23 | convertToNormalMap: 0 24 | externalNormalMap: 0 25 | heightScale: 0.25 26 | normalMapFilter: 0 27 | isReadable: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 0 30 | cubemapConvolution: 0 31 | cubemapConvolutionSteps: 8 32 | cubemapConvolutionExponent: 1.5 33 | seamlessCubemap: 0 34 | textureFormat: -5 35 | maxTextureSize: 2048 36 | textureSettings: 37 | filterMode: -1 38 | aniso: 16 39 | mipBias: -1 40 | wrapMode: 1 41 | nPOTScale: 0 42 | lightmap: 0 43 | rGBM: 0 44 | compressionQuality: 100 45 | allowsAlphaSplitting: 0 46 | spriteMode: 2 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spritePixelsToUnits: 100 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 8 56 | buildTargetSettings: [] 57 | spriteSheet: 58 | serializedVersion: 2 59 | sprites: 60 | - serializedVersion: 2 61 | name: SampleTexture0 62 | rect: 63 | serializedVersion: 2 64 | x: 0 65 | y: 256 66 | width: 256 67 | height: 256 68 | alignment: 0 69 | pivot: {x: 0.5, y: 0.5} 70 | border: {x: 0, y: 0, z: 0, w: 0} 71 | outline: [] 72 | tessellationDetail: -1 73 | - serializedVersion: 2 74 | name: SampleTexture1 75 | rect: 76 | serializedVersion: 2 77 | x: 256 78 | y: 256 79 | width: 256 80 | height: 256 81 | alignment: 0 82 | pivot: {x: 0.5, y: 0.5} 83 | border: {x: 0, y: 0, z: 0, w: 0} 84 | outline: [] 85 | tessellationDetail: -1 86 | - serializedVersion: 2 87 | name: SampleTexture2 88 | rect: 89 | serializedVersion: 2 90 | x: 0 91 | y: 0 92 | width: 256 93 | height: 256 94 | alignment: 0 95 | pivot: {x: 0.5, y: 0.5} 96 | border: {x: 64, y: 64, z: 64, w: 64} 97 | outline: [] 98 | tessellationDetail: -1 99 | - serializedVersion: 2 100 | name: SampleTexture3 101 | rect: 102 | serializedVersion: 2 103 | x: 256 104 | y: 0 105 | width: 256 106 | height: 256 107 | alignment: 0 108 | pivot: {x: 0.5, y: 0.5} 109 | border: {x: 0, y: 0, z: 0, w: 0} 110 | outline: [] 111 | tessellationDetail: -1 112 | - serializedVersion: 2 113 | name: SampleTexture 114 | rect: 115 | serializedVersion: 2 116 | x: 0 117 | y: 0 118 | width: 512 119 | height: 512 120 | alignment: 0 121 | pivot: {x: 0.5, y: 0.5} 122 | border: {x: 0, y: 0, z: 0, w: 0} 123 | outline: [] 124 | tessellationDetail: -1 125 | outline: [] 126 | spritePackingTag: 127 | userData: 128 | assetBundleName: 129 | assetBundleVariant: 130 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Scripts/Perspective.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEngine.UI; 7 | 8 | namespace UIExtention { 9 | public class Perspective : BaseMeshEffect { 10 | 11 | [SerializeField] [Range(0.0f, 179.0f)] 12 | private float m_FieldOfView = 60.0f; 13 | public float fieldOfView { 14 | get { 15 | return m_FieldOfView; 16 | } 17 | set { 18 | m_FieldOfView = value; 19 | m_Distance = float.NegativeInfinity; 20 | if (graphic != null) { 21 | graphic.SetVerticesDirty(); 22 | } 23 | } 24 | } 25 | 26 | [SerializeField] [HideInInspector] 27 | private float m_Distance = float.NegativeInfinity; 28 | private float distance { 29 | get { 30 | if (float.IsNegativeInfinity(m_Distance)) { 31 | if (fieldOfView <= 0.0f) { 32 | m_Distance = 0.0f; 33 | } else { 34 | if (graphic.canvas != null) { 35 | var canvasRectTransform = graphic.canvas.GetComponent(); 36 | if (canvasRectTransform != null) { 37 | m_Distance = (canvasRectTransform.sizeDelta.y * 0.5f) / Mathf.Tan(fieldOfView * 0.5f * Mathf.Deg2Rad); 38 | } 39 | } 40 | } 41 | } 42 | return m_Distance; 43 | } 44 | } 45 | 46 | [SerializeField] 47 | private bool m_PerspectiveCorrectShader = true; 48 | public bool perspectiveCorrectShader { 49 | get { 50 | return m_PerspectiveCorrectShader; 51 | } 52 | set { 53 | m_PerspectiveCorrectShader = value; 54 | if (graphic != null) { 55 | graphic.SetVerticesDirty(); 56 | } 57 | } 58 | } 59 | 60 | [System.NonSerialized] 61 | private Quaternion m_lastLocalRotation = Quaternion.identity; 62 | 63 | private RectTransform m_rectTransform; 64 | public RectTransform rectTransform { 65 | get { 66 | if (m_rectTransform == null) { 67 | m_rectTransform = transform as RectTransform; 68 | } 69 | return m_rectTransform; 70 | } 71 | } 72 | 73 | public void LateUpdate() { 74 | var is_update = !m_lastLocalRotation.Equals(rectTransform.localRotation); 75 | if (is_update) { 76 | m_lastLocalRotation = rectTransform.localRotation; 77 | if (graphic != null) { 78 | graphic.SetVerticesDirty(); 79 | } 80 | } 81 | } 82 | 83 | public override void ModifyMesh(VertexHelper vh) { 84 | if (!IsActive()) { 85 | return; 86 | } 87 | 88 | var distance = this.distance; 89 | if (distance <= 0.0f) { 90 | return; 91 | } 92 | 93 | var anchoredPosition3D = rectTransform.anchoredPosition3D; 94 | var localRotation = rectTransform.localRotation; 95 | 96 | UIVertex vertex = new UIVertex(); 97 | for (int i = 0, i_max = vh.currentVertCount; i < i_max; ++i) { 98 | vh.PopulateUIVertex(ref vertex, i); 99 | var offset = localRotation * (vertex.position + anchoredPosition3D); 100 | var scale = 1.0e10f; 101 | if (-offset.z < distance) { 102 | scale = distance / (distance + offset.z); 103 | } 104 | vertex.position = new Vector3(vertex.position.x * scale, vertex.position.y * scale, vertex.position.z); 105 | if (perspectiveCorrectShader) { 106 | vertex.uv1 = new Vector2(scale, 0.0f); 107 | } 108 | vh.SetUIVertex(vertex, i); 109 | } 110 | } 111 | 112 | protected override void OnDidApplyAnimationProperties() { 113 | base.OnDidApplyAnimationProperties(); 114 | fieldOfView = fieldOfView; 115 | } 116 | 117 | #if UNITY_EDITOR 118 | protected override void OnValidate() { 119 | base.OnValidate(); 120 | fieldOfView = fieldOfView; 121 | } 122 | #endif 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /Assets/UIExtention/SoftMask/Scripts/SoftMaskMeshEffect.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEngine.UI; 7 | using System.Collections.Generic; 8 | using System.Linq; 9 | 10 | namespace UIExtention { 11 | [DisallowMultipleComponent] 12 | [RequireComponent(typeof(RectTransform))] 13 | public class SoftMaskMeshEffect : BaseMeshEffect { 14 | public RectTransform rectTransform { 15 | get { 16 | if (m_rectTransform == null) { 17 | m_rectTransform = transform as RectTransform; 18 | } 19 | return m_rectTransform; 20 | } 21 | } 22 | private RectTransform m_rectTransform; 23 | 24 | public OrientedRect2D orientedRect2D { 25 | get { 26 | if (!m_orientedRect2D.HasValue) { 27 | m_orientedRect2D = new OrientedRect2D(rectTransform); 28 | } 29 | return m_orientedRect2D.Value; 30 | } 31 | } 32 | private OrientedRect2D? m_orientedRect2D; 33 | 34 | public SoftMaskRect softMaskRect { 35 | get { 36 | if (m_softMaskRect == null) { 37 | m_softMaskRect = GetComponentInParent(); 38 | } 39 | return m_softMaskRect; 40 | } 41 | } 42 | private SoftMaskRect m_softMaskRect; 43 | 44 | public void SetVerticesDirty() { 45 | graphic.SetVerticesDirty(); 46 | } 47 | 48 | public override void ModifyMesh(VertexHelper vh) { 49 | if (!IsActive()) { 50 | return; 51 | } 52 | 53 | if (!softMaskRect.orientedRect2D.Overlaps(orientedRect2D)) { 54 | vh.Clear(); 55 | return; 56 | } 57 | 58 | var vertices = new List(); 59 | vh.GetUIVertexStream(vertices); 60 | vh.Clear(); 61 | var indices = Enumerable.Range(0, vertices.Count).ToList(); 62 | for(int i = 0, iMax = vertices.Count; i < iMax; ++i) { 63 | vertices[i] = SetPosition(vertices[i], rectTransform.TransformPoint(vertices[i].position)); 64 | } 65 | VertexUtility.Intersect(vertices, indices, softMaskRect.Vertices); 66 | for(int i = 0, iMax = vertices.Count; i < iMax; ++i) { 67 | vertices[i] = SetPosition(vertices[i], rectTransform.InverseTransformPoint(vertices[i].position)); 68 | } 69 | vh.AddUIVertexStream(vertices, indices); 70 | } 71 | 72 | private static UIVertex SetPosition(UIVertex vertex, Vector3 position) { 73 | vertex.position = position; 74 | return vertex; 75 | } 76 | 77 | protected override void OnTransformParentChanged() { 78 | base.OnTransformParentChanged(); 79 | SetVerticesDirty(); 80 | transferToSoftMaskRect(); 81 | } 82 | 83 | private void transferToSoftMaskRect() { 84 | m_softMaskRect = null; 85 | if (softMaskRect == null) { 86 | #if UNITY_EDITOR 87 | if (!UnityEditor.EditorApplication.isPlaying) { 88 | DestroyImmediate(this); 89 | } else //fall through 90 | #endif 91 | Destroy(this); 92 | } 93 | } 94 | 95 | protected virtual void LateUpdate() { 96 | var rectTransformHashCode = HashUtility.GetValueHashCode(rectTransform); 97 | if (lastRectTransformHashCode != rectTransformHashCode) { 98 | lastRectTransformHashCode = rectTransformHashCode; 99 | 100 | m_orientedRect2D = null; 101 | var verticesDirty = softMaskRect.orientedRect2D.Overlaps(orientedRect2D); 102 | if (verticesDirty || lastVerticesDirty) { 103 | SetVerticesDirty(); 104 | } 105 | lastVerticesDirty = verticesDirty; 106 | } 107 | } 108 | 109 | #if UNITY_EDITOR 110 | protected override void OnValidate() { 111 | base.OnValidate(); 112 | } 113 | 114 | protected override void Reset() { 115 | base.Reset(); 116 | } 117 | #endif 118 | 119 | private int lastRectTransformHashCode; 120 | private bool lastVerticesDirty; 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /Assets/UIExtention/TextLikeLayoutGroup/Scripts/Editor/TextLikeLayoutGroupEditor.cs: -------------------------------------------------------------------------------- 1 | // (C) 2017 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEditor; 7 | using System.Linq; 8 | 9 | namespace UIExtention { 10 | [CustomEditor(typeof(TextLikeLayoutGroup))] 11 | [CanEditMultipleObjects] 12 | public class TextLikeLayoutGroupEditor : Editor { 13 | SerializedProperty m_Padding; 14 | SerializedProperty m_ElementSpacing; 15 | SerializedProperty m_LineSpacing; 16 | SerializedProperty m_WritingMode; 17 | SerializedProperty m_ChildAlignment; 18 | GUIContent m_ChildAlignmentContent; 19 | int m_ChildAlignmentDisplayIndex; 20 | GUIContent[] m_ChildAlignmentDisplayOptions; 21 | 22 | private static readonly string[] kWritingModeHorizontal = new[]{"Top (LeftTop)", "Center", "Bottom (RightBottom)", "Pivot"}; 23 | private static readonly string[] kWritingModeVertical = new[]{"Left (LeftTop)", "Center", "Right (RightBottom)", "Pivot"}; 24 | private static readonly string[][] kChildAlignmentSupplementaryDisplayOptions = new[]{ 25 | kWritingModeHorizontal, //WritingMode.HorizontalLRTB 26 | kWritingModeHorizontal, //WritingMode.HorizontalRLTB 27 | kWritingModeHorizontal, //WritingMode.HorizontalLRBT 28 | kWritingModeHorizontal, //WritingMode.HorizontalRLBT 29 | kWritingModeVertical, //WritingMode.VerticalTBLR 30 | kWritingModeVertical, //WritingMode.VerticalTBRL 31 | kWritingModeVertical, //WritingMode.VerticalBTLR 32 | kWritingModeVertical, //WritingMode.VerticalBTRL 33 | }; 34 | 35 | private GUIContent[] childAlignmentDisplayOptions {get{ 36 | if (m_ChildAlignment.enumValueIndex != m_ChildAlignmentDisplayIndex) { 37 | if (m_ChildAlignmentDisplayOptions == null) { 38 | Debug.Assert(System.Enum.GetValues(typeof(TextLikeLayoutGroup.ChildAnchor)).Length == kWritingModeHorizontal.Length); 39 | m_ChildAlignmentDisplayOptions = new GUIContent[kWritingModeHorizontal.Length]; 40 | for (int i = 0, iMax = m_ChildAlignmentDisplayOptions.Length; i < iMax; ++i) { 41 | m_ChildAlignmentDisplayOptions[i] = new GUIContent(); 42 | } 43 | } 44 | for (int i = 0, iMax = m_ChildAlignmentDisplayOptions.Length; i < iMax; ++i) { 45 | m_ChildAlignmentDisplayOptions[i].text = kChildAlignmentSupplementaryDisplayOptions[m_WritingMode.enumValueIndex][i]; 46 | } 47 | } 48 | return m_ChildAlignmentDisplayOptions; 49 | }} 50 | 51 | protected virtual void OnEnable() { 52 | m_ChildAlignmentContent = new GUIContent("Child Alignment"); 53 | m_Padding = serializedObject.FindProperty("m_Padding"); 54 | m_ElementSpacing = serializedObject.FindProperty("m_ElementSpacing"); 55 | m_LineSpacing = serializedObject.FindProperty("m_LineSpacing"); 56 | m_WritingMode = serializedObject.FindProperty("m_WritingMode"); 57 | m_ChildAlignment = serializedObject.FindProperty("m_ChildAlignment"); 58 | m_ChildAlignmentDisplayIndex = -1; 59 | } 60 | 61 | public override void OnInspectorGUI() { 62 | serializedObject.Update(); 63 | 64 | EditorGUILayout.PropertyField(m_Padding, true); 65 | EditorGUILayout.PropertyField(m_ElementSpacing, true); 66 | EditorGUILayout.PropertyField(m_LineSpacing, true); 67 | EditorGUILayout.PropertyField(m_WritingMode, true); 68 | var position = GUILayoutUtility.GetRect(m_ChildAlignmentContent, EditorStyles.label); 69 | using (new EditorGUI.PropertyScope(position, m_ChildAlignmentContent, m_ChildAlignment)) { 70 | EditorGUI.BeginChangeCheck(); 71 | var enumValueIndex = (int)EditorGUI.Popup(position, m_ChildAlignmentContent, m_ChildAlignment.enumValueIndex, childAlignmentDisplayOptions); 72 | if (EditorGUI.EndChangeCheck()) { 73 | m_ChildAlignment.enumValueIndex = enumValueIndex; 74 | } 75 | } 76 | 77 | serializedObject.ApplyModifiedProperties(); 78 | } 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /Assets/UIExtention/TargetLayoutElement/Scripts/TargetLayoutElement.cs: -------------------------------------------------------------------------------- 1 | // (C) 2014 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEngine.UI; 7 | using System.Linq; 8 | 9 | namespace UIExtention { 10 | [AddComponentMenu("Layout/Target Layout Element")] 11 | [RequireComponent(typeof(RectTransform))] 12 | [ExecuteInEditMode] 13 | public class TargetLayoutElement : MonoBehaviour, ILayoutElement { 14 | public ILayoutElement Target { 15 | get{ 16 | return null!=m_Target? (ILayoutElement)m_Target: null; 17 | } 18 | set{ 19 | m_Target = null!=value? (Component)value: null; 20 | updateRemoteBehaviour(); 21 | SetDirty(); 22 | } 23 | } 24 | [SerializeField] [RestrictInterface(typeof(ILayoutElement))] [UnityEngine.Serialization.FormerlySerializedAs("_target")] private Component m_Target; 25 | 26 | private RectTransform rectTransform {get{return _rectTransform ?? GetComponent();}} 27 | [System.NonSerialized] private RectTransform _rectTransform = null; 28 | [SerializeField] private TargetLayoutElementRemoteBehaviour _remoteBehaviour = null; 29 | 30 | public virtual float minWidth {get{return null!=Target? Target.minWidth: 0.0f;}} 31 | public virtual float minHeight {get{return null!=Target? Target.minHeight: 0.0f;}} 32 | public virtual float preferredWidth {get{return null!=Target? Target.preferredWidth: 0.0f;}} 33 | public virtual float preferredHeight {get{return null!=Target? Target.preferredHeight: 0.0f;}} 34 | public virtual float flexibleWidth {get{return null!=Target? Target.flexibleWidth: 0.0f;}} 35 | public virtual float flexibleHeight {get{return null!=Target? Target.flexibleHeight: 0.0f;}} 36 | public virtual int layoutPriority {get{return null!=Target? Target.layoutPriority: 1;}} 37 | 38 | public virtual void CalculateLayoutInputHorizontal() { 39 | } 40 | 41 | public virtual void CalculateLayoutInputVertical() { 42 | } 43 | 44 | public void Awake() { 45 | } 46 | 47 | public void OnDestroy() { 48 | Target = null; 49 | } 50 | 51 | public void OnDestroyOfRemoteBehaviour() { 52 | m_Target = null; 53 | _remoteBehaviour = null; 54 | } 55 | 56 | public void SetDirtyOfRemoteBehaviour() { 57 | SetDirty(); 58 | } 59 | 60 | public void OnBeforeTransformParentChanged() { 61 | SetDirty(); 62 | } 63 | 64 | public void OnDidApplyAnimationProperties() { 65 | SetDirty(); 66 | } 67 | 68 | public void OnDisable() { 69 | SetDirty(); 70 | } 71 | 72 | public void OnEnable() { 73 | SetDirty(); 74 | } 75 | 76 | public void OnTransformParentChanged() { 77 | SetDirty(); 78 | } 79 | 80 | public void SetLayoutHorizontalOfRemoteBehaviour() { 81 | foreach (var component in GetComponents().Select(x=>x as ILayoutController) 82 | .Where(x=>null != x)) { 83 | component.SetLayoutHorizontal(); 84 | } 85 | #if UNITY_EDITOR 86 | UnityEditor.EditorUtility.SetDirty(gameObject); 87 | #endif 88 | } 89 | 90 | public void SetLayoutVerticalOfRemoteBehaviour() { 91 | foreach (var component in GetComponents().Select(x=>x as ILayoutController) 92 | .Where(x=>null != x)) { 93 | component.SetLayoutVertical(); 94 | } 95 | #if UNITY_EDITOR 96 | UnityEditor.EditorUtility.SetDirty(gameObject); 97 | #endif 98 | } 99 | 100 | private void SetDirty() { 101 | if (IsActive()) { 102 | LayoutRebuilder.MarkLayoutForRebuild(rectTransform); 103 | #if UNITY_EDITOR 104 | //UnityEditor.EditorUtility.SetDirty(gameObject); 105 | #endif 106 | } 107 | } 108 | 109 | private bool IsActive() { 110 | return enabled && gameObject.activeInHierarchy; 111 | } 112 | 113 | private void updateRemoteBehaviour() { 114 | if (null != _remoteBehaviour) { 115 | _remoteBehaviour.Source = null; 116 | DestroyImmediate(_remoteBehaviour); 117 | _remoteBehaviour = null; 118 | } 119 | if (m_Target) { 120 | _remoteBehaviour = m_Target.gameObject.AddComponent(); 121 | _remoteBehaviour.Source = this; 122 | //_remoteBehaviour.hideFlags |= HideFlags.HideInInspector; 123 | } 124 | } 125 | 126 | #if UNITY_EDITOR 127 | public void OnValidate() { 128 | SetDirty(); 129 | } 130 | #endif 131 | } 132 | } 133 | -------------------------------------------------------------------------------- /Assets/UIExtention/Perspective/Examples/Materials/Perspective.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Perspective 10 | m_Shader: {fileID: 4800000, guid: 3591d043920dbca469e2393abc0f7d25, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 5 13 | m_CustomRenderQueue: 3000 14 | stringTagMap: {} 15 | m_SavedProperties: 16 | serializedVersion: 2 17 | m_TexEnvs: 18 | data: 19 | first: 20 | name: _MainTex 21 | second: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | data: 26 | first: 27 | name: _BumpMap 28 | second: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | data: 33 | first: 34 | name: _DetailNormalMap 35 | second: 36 | m_Texture: {fileID: 0} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | data: 40 | first: 41 | name: _ParallaxMap 42 | second: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | data: 47 | first: 48 | name: _OcclusionMap 49 | second: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | data: 54 | first: 55 | name: _EmissionMap 56 | second: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | data: 61 | first: 62 | name: _DetailMask 63 | second: 64 | m_Texture: {fileID: 0} 65 | m_Scale: {x: 1, y: 1} 66 | m_Offset: {x: 0, y: 0} 67 | data: 68 | first: 69 | name: _DetailAlbedoMap 70 | second: 71 | m_Texture: {fileID: 0} 72 | m_Scale: {x: 1, y: 1} 73 | m_Offset: {x: 0, y: 0} 74 | data: 75 | first: 76 | name: _MetallicGlossMap 77 | second: 78 | m_Texture: {fileID: 0} 79 | m_Scale: {x: 1, y: 1} 80 | m_Offset: {x: 0, y: 0} 81 | m_Floats: 82 | data: 83 | first: 84 | name: _SrcBlend 85 | second: 1 86 | data: 87 | first: 88 | name: _DstBlend 89 | second: 0 90 | data: 91 | first: 92 | name: _Cutoff 93 | second: 0.5 94 | data: 95 | first: 96 | name: PixelSnap 97 | second: 0 98 | data: 99 | first: 100 | name: _Parallax 101 | second: 0.02 102 | data: 103 | first: 104 | name: _ZWrite 105 | second: 1 106 | data: 107 | first: 108 | name: _Glossiness 109 | second: 0.5 110 | data: 111 | first: 112 | name: _BumpScale 113 | second: 1 114 | data: 115 | first: 116 | name: _OcclusionStrength 117 | second: 1 118 | data: 119 | first: 120 | name: _DetailNormalMapScale 121 | second: 1 122 | data: 123 | first: 124 | name: _UVSec 125 | second: 0 126 | data: 127 | first: 128 | name: _Mode 129 | second: 0 130 | data: 131 | first: 132 | name: _Metallic 133 | second: 0 134 | data: 135 | first: 136 | name: _Stencil 137 | second: 0 138 | data: 139 | first: 140 | name: _StencilComp 141 | second: 8 142 | data: 143 | first: 144 | name: _StencilOp 145 | second: 0 146 | data: 147 | first: 148 | name: _StencilReadMask 149 | second: 255 150 | data: 151 | first: 152 | name: _StencilWriteMask 153 | second: 255 154 | data: 155 | first: 156 | name: _ColorMask 157 | second: 15 158 | m_Colors: 159 | data: 160 | first: 161 | name: _EmissionColor 162 | second: {r: 0, g: 0, b: 0, a: 1} 163 | data: 164 | first: 165 | name: _Color 166 | second: {r: 1, g: 1, b: 1, a: 1} 167 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 3 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Fastest 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 2 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | blendWeights: 1 21 | textureQuality: 1 22 | anisotropicTextures: 0 23 | antiAliasing: 0 24 | softParticles: 0 25 | softVegetation: 0 26 | realtimeReflectionProbes: 0 27 | billboardsFaceCameraPosition: 0 28 | vSyncCount: 0 29 | lodBias: 0.3 30 | maximumLODLevel: 0 31 | particleRaycastBudget: 4 32 | asyncUploadTimeSlice: 2 33 | asyncUploadBufferSize: 4 34 | excludedTargetPlatforms: [] 35 | - serializedVersion: 2 36 | name: Fast 37 | pixelLightCount: 0 38 | shadows: 0 39 | shadowResolution: 0 40 | shadowProjection: 1 41 | shadowCascades: 1 42 | shadowDistance: 20 43 | shadowNearPlaneOffset: 2 44 | shadowCascade2Split: 0.33333334 45 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 46 | blendWeights: 2 47 | textureQuality: 0 48 | anisotropicTextures: 0 49 | antiAliasing: 0 50 | softParticles: 0 51 | softVegetation: 0 52 | realtimeReflectionProbes: 0 53 | billboardsFaceCameraPosition: 0 54 | vSyncCount: 0 55 | lodBias: 0.4 56 | maximumLODLevel: 0 57 | particleRaycastBudget: 16 58 | asyncUploadTimeSlice: 2 59 | asyncUploadBufferSize: 4 60 | excludedTargetPlatforms: [] 61 | - serializedVersion: 2 62 | name: Simple 63 | pixelLightCount: 1 64 | shadows: 1 65 | shadowResolution: 0 66 | shadowProjection: 1 67 | shadowCascades: 1 68 | shadowDistance: 20 69 | shadowNearPlaneOffset: 2 70 | shadowCascade2Split: 0.33333334 71 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 72 | blendWeights: 2 73 | textureQuality: 0 74 | anisotropicTextures: 1 75 | antiAliasing: 0 76 | softParticles: 0 77 | softVegetation: 0 78 | realtimeReflectionProbes: 0 79 | billboardsFaceCameraPosition: 0 80 | vSyncCount: 0 81 | lodBias: 0.7 82 | maximumLODLevel: 0 83 | particleRaycastBudget: 64 84 | asyncUploadTimeSlice: 2 85 | asyncUploadBufferSize: 4 86 | excludedTargetPlatforms: [] 87 | - serializedVersion: 2 88 | name: Good 89 | pixelLightCount: 2 90 | shadows: 2 91 | shadowResolution: 1 92 | shadowProjection: 1 93 | shadowCascades: 2 94 | shadowDistance: 40 95 | shadowNearPlaneOffset: 2 96 | shadowCascade2Split: 0.33333334 97 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 98 | blendWeights: 2 99 | textureQuality: 0 100 | anisotropicTextures: 1 101 | antiAliasing: 0 102 | softParticles: 0 103 | softVegetation: 1 104 | realtimeReflectionProbes: 1 105 | billboardsFaceCameraPosition: 1 106 | vSyncCount: 1 107 | lodBias: 1 108 | maximumLODLevel: 0 109 | particleRaycastBudget: 256 110 | asyncUploadTimeSlice: 2 111 | asyncUploadBufferSize: 4 112 | excludedTargetPlatforms: [] 113 | - serializedVersion: 2 114 | name: Beautiful 115 | pixelLightCount: 3 116 | shadows: 2 117 | shadowResolution: 2 118 | shadowProjection: 1 119 | shadowCascades: 2 120 | shadowDistance: 70 121 | shadowNearPlaneOffset: 2 122 | shadowCascade2Split: 0.33333334 123 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 124 | blendWeights: 4 125 | textureQuality: 0 126 | anisotropicTextures: 2 127 | antiAliasing: 2 128 | softParticles: 1 129 | softVegetation: 1 130 | realtimeReflectionProbes: 1 131 | billboardsFaceCameraPosition: 1 132 | vSyncCount: 1 133 | lodBias: 1.5 134 | maximumLODLevel: 0 135 | particleRaycastBudget: 1024 136 | asyncUploadTimeSlice: 2 137 | asyncUploadBufferSize: 4 138 | excludedTargetPlatforms: [] 139 | - serializedVersion: 2 140 | name: Fantastic 141 | pixelLightCount: 4 142 | shadows: 2 143 | shadowResolution: 2 144 | shadowProjection: 1 145 | shadowCascades: 4 146 | shadowDistance: 150 147 | shadowNearPlaneOffset: 2 148 | shadowCascade2Split: 0.33333334 149 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 150 | blendWeights: 4 151 | textureQuality: 0 152 | anisotropicTextures: 2 153 | antiAliasing: 2 154 | softParticles: 1 155 | softVegetation: 1 156 | realtimeReflectionProbes: 1 157 | billboardsFaceCameraPosition: 1 158 | vSyncCount: 1 159 | lodBias: 2 160 | maximumLODLevel: 0 161 | particleRaycastBudget: 4096 162 | asyncUploadTimeSlice: 2 163 | asyncUploadBufferSize: 4 164 | excludedTargetPlatforms: [] 165 | m_PerPlatformDefaultQuality: {} 166 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Scripts/GradationMaterial.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using System.Collections.Generic; 7 | using System.Linq; 8 | 9 | namespace UIExtention { 10 | [CreateAssetMenu] 11 | public class GradationMaterial : ScriptableObject { 12 | public enum Blend { 13 | Multiply, 14 | Override, 15 | Ignore, 16 | Add, 17 | Subtract, 18 | Screen, 19 | HardLight, //(Multiply + Screen) 20 | HardLightFast, //(Multiply + Add) 21 | Darken, 22 | Lighten, 23 | } 24 | 25 | public enum TextMapping { 26 | RectTransform, 27 | Line, 28 | Character, 29 | } 30 | 31 | [System.Serializable] 32 | public struct Key { 33 | public Vector2 position; 34 | public Color color; 35 | 36 | public static Key identity {get{ 37 | return new Key {position = Vector2.zero, color = Color.white}; 38 | }} 39 | } 40 | 41 | [SerializeField] 42 | private Blend m_ColorBlend = Blend.Multiply; 43 | public Blend colorBlend {get{return m_ColorBlend;} set{m_ColorBlend = value;}} 44 | 45 | [SerializeField] 46 | private Blend m_AlphaBlend = Blend.Multiply; 47 | public Blend alphaBlend {get{return m_AlphaBlend;} set{m_AlphaBlend = value;}} 48 | 49 | [SerializeField] 50 | private TextMapping m_TextMapping = TextMapping.RectTransform; 51 | public TextMapping textMapping {get{return m_TextMapping;} set{m_TextMapping = value;}} 52 | 53 | [SerializeField] 54 | private List m_Keys = new List{new Key {position = new Vector2(0.0f, 0.0f), color = Color.white} 55 | , new Key {position = new Vector2(0.0f, 1.0f), color = Color.white} 56 | , new Key {position = new Vector2(1.0f, 1.0f), color = Color.white} 57 | , new Key {position = new Vector2(1.0f, 0.0f), color = Color.white} 58 | }; 59 | public List keys {get{return m_Keys;}} 60 | 61 | public Mesh GetMesh() { 62 | var supportCornerKeys = GetSupportCornerKeys(); 63 | var verticesCount = keys.Count + ((supportCornerKeys != null)? supportCornerKeys.Count: 0); 64 | var vertices = new Vector3[verticesCount]; 65 | var colors = new Color32[verticesCount]; 66 | 67 | var verticesIndex = 0; 68 | foreach (var key in keys) { 69 | vertices[verticesIndex] = key.position; 70 | colors[verticesIndex] = key.color; 71 | ++verticesIndex; 72 | } 73 | if (supportCornerKeys != null) { 74 | foreach (var key in supportCornerKeys) { 75 | vertices[verticesIndex] = key.position; 76 | colors[verticesIndex] = key.color; 77 | ++verticesIndex; 78 | } 79 | } 80 | 81 | var index = VertexUtility.Triangulation(vertices.Select(x=>(Vector2)x).ToList()); 82 | 83 | var result = new Mesh(); 84 | result.vertices = vertices; 85 | result.colors32 = colors; 86 | result.SetTriangles(index, 0); 87 | return result; 88 | } 89 | 90 | private List GetSupportCornerKeys() { 91 | const int lowerLeft = 0, upperLeft = 1, upperRight = 2, lowerRight = 3; 92 | 93 | List result = null; 94 | var existKey = 0; 95 | foreach (var key in keys) { 96 | var position = key.position; 97 | if (position.x == 0.0f) { 98 | if (position.y == 0.0f) { 99 | existKey |= 1 << lowerLeft; 100 | } else if (position.y == 1.0f) { 101 | existKey |= 1 << upperLeft; 102 | } 103 | } else if (position.x == 1.0f) { 104 | if (position.y == 0.0f) { 105 | existKey |= 1 << lowerRight; 106 | } else if (position.y == 1.0f) { 107 | existKey |= 1 << upperRight; 108 | } 109 | } 110 | } 111 | var existKeyCount = (existKey & 0x5) + ((existKey & 0xA) >> 1); 112 | existKeyCount = (existKeyCount >> 2) + (existKeyCount & 0x3); 113 | if (existKeyCount < 4) { 114 | Vector2 lowerLeftPosition = new Vector2(0.0f, 0.0f), upperLeftPosition = new Vector2(0.0f, 1.0f), upperRightPosition = new Vector2(1.0f, 1.0f), lowerRightPosition = new Vector2(1.0f, 0.0f); 115 | int lowerLeftKeyIndex = 0, upperLeftKeyIndex = 0, upperRightKeyIndex = 0, lowerRightKeyIndex = 0; 116 | float lowerLeftSqrMagnitude = float.PositiveInfinity, upperLeftSqrMagnitude = float.PositiveInfinity, upperRightSqrMagnitude = float.PositiveInfinity, lowerRightSqrMagnitude = float.PositiveInfinity; 117 | for (int i = 0, iMax = keys.Count; i < iMax; ++i) { 118 | var position = keys[i].position; 119 | if ((existKey & (1 << lowerLeft)) == 0) { 120 | var sqrMagnitude = Vector2.SqrMagnitude(position - lowerLeftPosition); 121 | if (sqrMagnitude < lowerLeftSqrMagnitude) { 122 | lowerLeftSqrMagnitude = sqrMagnitude; 123 | lowerLeftKeyIndex = i; 124 | } 125 | } 126 | if ((existKey & (1 << upperLeft)) == 0) { 127 | var sqrMagnitude = Vector2.SqrMagnitude(position - upperLeftPosition); 128 | if (sqrMagnitude < upperLeftSqrMagnitude) { 129 | upperLeftSqrMagnitude = sqrMagnitude; 130 | upperLeftKeyIndex = i; 131 | } 132 | } 133 | if ((existKey & (1 << upperRight)) == 0) { 134 | var sqrMagnitude = Vector2.SqrMagnitude(position - upperRightPosition); 135 | if (sqrMagnitude < upperRightSqrMagnitude) { 136 | upperRightSqrMagnitude = sqrMagnitude; 137 | upperRightKeyIndex = i; 138 | } 139 | } 140 | if ((existKey & (1 << lowerRight)) == 0) { 141 | var sqrMagnitude = Vector2.SqrMagnitude(position - lowerRightPosition); 142 | if (sqrMagnitude < lowerRightSqrMagnitude) { 143 | lowerRightSqrMagnitude = sqrMagnitude; 144 | lowerRightKeyIndex = i; 145 | } 146 | } 147 | } 148 | result = new List(4 - existKeyCount); 149 | if ((existKey & (1 << lowerLeft)) == 0) { 150 | result.Add(new Key(){position = lowerLeftPosition, color = keys[lowerLeftKeyIndex].color}); 151 | } 152 | if ((existKey & (1 << upperLeft)) == 0) { 153 | result.Add(new Key(){position = upperLeftPosition, color = keys[upperLeftKeyIndex].color}); 154 | } 155 | if ((existKey & (1 << upperRight)) == 0) { 156 | result.Add(new Key(){position = upperRightPosition, color = keys[upperRightKeyIndex].color}); 157 | } 158 | if ((existKey & (1 << lowerRight)) == 0) { 159 | result.Add(new Key(){position = lowerRightPosition, color = keys[lowerRightKeyIndex].color}); 160 | } 161 | } 162 | return result; 163 | } 164 | } 165 | } 166 | -------------------------------------------------------------------------------- /Assets/UIExtention/SoftMask/Scripts/SoftMaskRect.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEngine.UI; 7 | using System.Collections.Generic; 8 | using System.Linq; 9 | 10 | namespace UIExtention { 11 | [DisallowMultipleComponent] 12 | [ExecuteInEditMode] 13 | [RequireComponent(typeof(RectTransform))] 14 | public class SoftMaskRect : MonoBehaviour { 15 | public RectOffset padding {get{return m_padding;} set{if (m_padding != value) {SetVerticesDirty();} m_padding = value;}} 16 | [SerializeField] protected RectOffset m_padding = new RectOffset(); 17 | 18 | public RectTransform rectTransform { 19 | get { 20 | if (m_rectTransform == null) { 21 | m_rectTransform = transform as RectTransform; 22 | } 23 | return m_rectTransform; 24 | } 25 | } 26 | private RectTransform m_rectTransform; 27 | 28 | public OrientedRect2D orientedRect2D { 29 | get { 30 | if (IsVerticesDirty()) UpdateVertices(); 31 | return m_orientedRect2D; 32 | } 33 | } 34 | private OrientedRect2D m_orientedRect2D; 35 | 36 | public OrientedRect2D offsetedOrientedRect2D { 37 | get { 38 | if (IsVerticesDirty()) UpdateVertices(); 39 | return m_offsetedOrientedRect2D; 40 | } 41 | } 42 | private OrientedRect2D m_offsetedOrientedRect2D; 43 | 44 | public List Vertices { 45 | get { 46 | if (IsVerticesDirty()) UpdateVertices(); 47 | return m_vertices; 48 | } 49 | } 50 | private List m_vertices; 51 | 52 | protected virtual void Awake() { 53 | subordinateChildrenGraphic(); 54 | } 55 | 56 | protected virtual void LateUpdate() { 57 | var rectTransformHashCode = HashUtility.GetValueHashCode(rectTransform); 58 | if (lastRectTransformHashCode != rectTransformHashCode) { 59 | lastRectTransformHashCode = rectTransformHashCode; 60 | 61 | SetVerticesDirty(); 62 | foreach (var effect in GetComponentsInChildren()) { 63 | effect.SetVerticesDirty(); 64 | } 65 | } 66 | } 67 | 68 | protected virtual void OnDestroy() { 69 | freeChildrenGraphic(); 70 | } 71 | 72 | protected virtual void OnTransformChildrenChanged() { 73 | subordinateChildrenGraphic(); 74 | } 75 | 76 | private void subordinateChildrenGraphic() { 77 | var graphicsWithoutEffect = GetComponentsInChildren().Where(x=>x.GetComponent() == null); 78 | foreach (var graphic in graphicsWithoutEffect) { 79 | graphic.gameObject.AddComponent(); 80 | } 81 | } 82 | 83 | private void freeChildrenGraphic() { 84 | foreach (var effect in GetComponentsInChildren()) { 85 | #if UNITY_EDITOR 86 | if (!UnityEditor.EditorApplication.isPlaying) { 87 | DestroyImmediate(effect); 88 | } else //fall through 89 | #endif 90 | Destroy(effect); 91 | } 92 | } 93 | 94 | private bool IsVerticesDirty() { 95 | return ((m_vertices == null) || (m_vertices.Count == 0)); 96 | } 97 | 98 | private void SetVerticesDirty() { 99 | if ((m_vertices != null) && (0 < m_vertices.Count)) { 100 | m_vertices.Clear(); 101 | } 102 | } 103 | 104 | private void UpdateVertices() { 105 | m_orientedRect2D = new OrientedRect2D(rectTransform); 106 | 107 | var rect = rectTransform.rect; 108 | rect.xMin += padding.left; 109 | rect.yMax -= padding.top; 110 | rect.xMax -= padding.right; 111 | rect.yMin += padding.bottom; 112 | m_offsetedOrientedRect2D = new OrientedRect2D((Vector2)rectTransform.position + Vector2.Scale(rect.center, rectTransform.lossyScale) 113 | , Vector2.Scale(rect.size, rectTransform.lossyScale) 114 | , rectTransform.rotation 115 | ); 116 | 117 | if (m_vertices == null) { 118 | m_vertices = new List(30); 119 | } else { 120 | m_vertices.Clear(); 121 | } 122 | var rectVertices = GetVertices(m_orientedRect2D).ToArray(); 123 | var rectOffsetedVertices = GetVertices(m_offsetedOrientedRect2D).ToArray(); 124 | if (!VertexUtility.IsDegeneracy(rectOffsetedVertices[0], rectOffsetedVertices[1], rectOffsetedVertices[2])) { 125 | m_vertices.Add(CreateUIVertex(rectOffsetedVertices[0], 1.0f)); 126 | m_vertices.Add(CreateUIVertex(rectOffsetedVertices[1], 1.0f)); 127 | m_vertices.Add(CreateUIVertex(rectOffsetedVertices[2], 1.0f)); 128 | } 129 | if (!VertexUtility.IsDegeneracy(rectOffsetedVertices[0], rectOffsetedVertices[2], rectOffsetedVertices[3])) { 130 | m_vertices.Add(CreateUIVertex(rectOffsetedVertices[0], 1.0f)); 131 | m_vertices.Add(CreateUIVertex(rectOffsetedVertices[2], 1.0f)); 132 | m_vertices.Add(CreateUIVertex(rectOffsetedVertices[3], 1.0f)); 133 | } 134 | for (int i = 0, iMax = 4; i < iMax; ++i) { 135 | var iNext = i + 1; 136 | if (iMax <= iNext) iNext = 0; 137 | if (!VertexUtility.IsDegeneracy(rectVertices[i], rectVertices[iNext], rectOffsetedVertices[i])) { 138 | m_vertices.Add(CreateUIVertex(rectVertices[i], 0.0f)); 139 | m_vertices.Add(CreateUIVertex(rectVertices[iNext], 0.0f)); 140 | m_vertices.Add(CreateUIVertex(rectOffsetedVertices[i], 1.0f)); 141 | } 142 | if (!VertexUtility.IsDegeneracy(rectVertices[iNext], rectOffsetedVertices[iNext], rectOffsetedVertices[i])) { 143 | m_vertices.Add(CreateUIVertex(rectVertices[iNext], 0.0f)); 144 | m_vertices.Add(CreateUIVertex(rectOffsetedVertices[iNext], 1.0f)); 145 | m_vertices.Add(CreateUIVertex(rectOffsetedVertices[i], 1.0f)); 146 | } 147 | } 148 | } 149 | 150 | #if UNITY_EDITOR 151 | protected virtual void OnValidate() { 152 | SetVerticesDirty(); 153 | foreach (var effect in GetComponentsInChildren()) { 154 | effect.SetVerticesDirty(); 155 | } 156 | } 157 | 158 | protected virtual void Reset() { 159 | m_padding = new RectOffset(4, 4, 4, 4); 160 | } 161 | #endif 162 | 163 | private static IEnumerable GetVertices(OrientedRect2D orientedRect) { 164 | var rotatedExtents = (Vector2)(orientedRect.rotation * orientedRect.extents); 165 | for (int i = 0, iMax = 4; i < iMax; ++i) { 166 | var sign = new Vector2(((((i ^ (i >> 1)) & 0x1) == 0)? 1.0f: -1.0f), (((i >> 1) == 0)? 1.0f: -1.0f)); //xy:[++, -+, --, +-] 167 | yield return orientedRect.position + Vector2.Scale(rotatedExtents, sign); 168 | } 169 | yield break; 170 | } 171 | private static UIVertex CreateUIVertex(Vector2 position, float alpha) { 172 | var r = new UIVertex(); 173 | r.position = position; 174 | r.color = new Color32(0xFF, 0xFF, 0xFF, (byte)(0xFF * alpha)); 175 | return r; 176 | } 177 | 178 | private int lastRectTransformHashCode; 179 | } 180 | } 181 | -------------------------------------------------------------------------------- /Assets/UIExtention/AroundLayoutGroup/Scripts/AroundLayoutGroup.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEngine.UI; 7 | 8 | namespace UIExtention { 9 | public class AroundLayoutGroup : LayoutGroup { 10 | 11 | public enum Path { 12 | Circle, 13 | RectangleCLV, //Constant Linear Velocity 14 | RectangleCAV, //Constant Angular Velocity 15 | RectangleExtensionCircle, //Extension Circle 16 | } 17 | [SerializeField] private Path m_Path = Path.Circle; 18 | public Path path {get{return m_Path;} set{if (m_Path != value) {m_Path = value; SetDirty();}}} 19 | 20 | [SerializeField] [MinMaxSlider(0.0f, 1.0f)] private Vector2 m_Range = new Vector2(0.0f, 1.0f); 21 | public Vector2 range {get{return m_Range;} set{if (m_Range != value) {m_Range = value; SetDirty();}}} 22 | 23 | [SerializeField] private bool m_Justify = false; 24 | public bool justify {get{return m_Justify;} set{if (m_Justify != value) {m_Justify = value; SetDirty();}}} 25 | 26 | [SerializeField] private float m_Offset = 0.0f; 27 | public float offset {get{return m_Offset;} set{if (m_Offset != value) {m_Offset = value; SetDirty();}}} 28 | 29 | public enum ChildAnchor { 30 | Nomodify, 31 | Center, 32 | Inscribe, 33 | Circumscribe, 34 | } 35 | public new ChildAnchor childAlignment {get{return (ChildAnchor)base.childAlignment;} set{if (base.childAlignment != (TextAnchor)value) {base.childAlignment = (TextAnchor)value; SetDirty();}}} 36 | 37 | protected AroundLayoutGroup() { 38 | } 39 | 40 | public override void CalculateLayoutInputVertical() { 41 | SetLayoutInputForAxis(-1.0f, -1.0f, -1.0f, 0); 42 | SetLayoutInputForAxis(-1.0f, -1.0f, -1.0f, 1); 43 | } 44 | 45 | public override void SetLayoutHorizontal() { 46 | setLayout(); 47 | } 48 | 49 | public override void SetLayoutVertical() { 50 | setLayout(); 51 | } 52 | 53 | #if UNITY_EDITOR 54 | protected override void Reset() { 55 | base.Reset(); 56 | childAlignment = ChildAnchor.Nomodify; 57 | } 58 | #endif 59 | 60 | private void setLayout() { 61 | switch (m_Path) { 62 | case Path.RectangleCLV: 63 | setLayoutRectangleCLV(); 64 | break; 65 | case Path.RectangleCAV: 66 | setLayoutRectangleCAV(); 67 | break; 68 | case Path.RectangleExtensionCircle: 69 | setLayoutRectangleExtensionCircle(); 70 | break; 71 | case Path.Circle: 72 | default: 73 | setLayoutCircle(); 74 | break; 75 | } 76 | } 77 | 78 | private void setLayoutCircle() { 79 | layoutBase((progress, sizeHalf)=>{ 80 | var radian = progress * Mathf.PI * 2.0f; 81 | return new Vector2(Mathf.Cos(radian) * sizeHalf.x 82 | , Mathf.Sin(radian) * sizeHalf.y 83 | ); 84 | }); 85 | } 86 | 87 | private void setLayoutRectangleCLV() { 88 | layoutBase((progress, sizeHalf)=>{ 89 | var total = (sizeHalf.x + sizeHalf.y) * 4.0f; 90 | progress = Mathf.Repeat(progress, 1.0f) * total; 91 | if (progress < sizeHalf.y) { 92 | return new Vector2(sizeHalf.x, progress); 93 | } 94 | progress -= sizeHalf.y; 95 | if (progress < (sizeHalf.x * 2.0f)) { 96 | return new Vector2(sizeHalf.x - progress, sizeHalf.y); 97 | } 98 | progress -= sizeHalf.x * 2.0f; 99 | if (progress < (sizeHalf.y * 2.0f)) { 100 | return new Vector2(-sizeHalf.x, sizeHalf.y - progress); 101 | } 102 | progress -= sizeHalf.y * 2.0f; 103 | if (progress < (sizeHalf.x * 2.0f)) { 104 | return new Vector2(progress - sizeHalf.x, -sizeHalf.y); 105 | } 106 | progress -= sizeHalf.x * 2.0f; 107 | return new Vector2(sizeHalf.x, progress - sizeHalf.y); 108 | }); 109 | } 110 | 111 | private void setLayoutRectangleCAV() { 112 | layoutBase((progress, sizeHalf)=>{ 113 | progress = Mathf.Repeat(progress, 1.0f); 114 | var pingPongProgress = Mathf.PingPong(progress, 0.25f); 115 | var pingPongRadian = pingPongProgress * Mathf.PI * 2.0f; 116 | var pingPongRay = new Vector2(Mathf.Cos(pingPongRadian), Mathf.Sin(pingPongRadian)); 117 | var fitPoint = new Vector2(sizeHalf.y * pingPongRay.x / pingPongRay.y, sizeHalf.y); 118 | if (sizeHalf.x < fitPoint.x) { 119 | fitPoint = new Vector2(sizeHalf.x, sizeHalf.x * pingPongRay.y / pingPongRay.x); 120 | } 121 | return new Vector2((((progress <= 0.25f) || (0.75f <= progress))? fitPoint.x: -fitPoint.x) 122 | , ((progress <= 0.5f)? fitPoint.y: -fitPoint.y) 123 | ); 124 | }); 125 | } 126 | 127 | private void setLayoutRectangleExtensionCircle() { 128 | layoutBase((progress, sizeHalf)=>{ 129 | var radian = progress * Mathf.PI * 2.0f; 130 | var distortion = 1.0f / Mathf.Cos(Mathf.PingPong(radian, Mathf.PI * 0.25f)); 131 | return new Vector2(Mathf.Cos(radian) * sizeHalf.x * distortion 132 | , Mathf.Sin(radian) * sizeHalf.y * distortion 133 | ); 134 | }); 135 | } 136 | 137 | private void layoutBase(System.Func layout) { 138 | var sizeHalf = new Vector2(rectTransform.rect.width * 0.5f, rectTransform.rect.height * 0.5f); 139 | var scribeSizeHalf = 0.0f; 140 | if (childAlignment == ChildAnchor.Inscribe) { 141 | scribeSizeHalf = 0.5f; 142 | } else if (childAlignment == ChildAnchor.Circumscribe) { 143 | scribeSizeHalf = -0.5f; 144 | } 145 | var centerOffset = new Vector2((rectTransform.pivot.x - 0.5f) * sizeHalf.x, (0.5f - rectTransform.pivot.y) * sizeHalf.y); 146 | 147 | var rectChildrenCount = rectChildren.Count; 148 | if (0 < rectChildrenCount) { 149 | var countToProgress = (range.y - range.x) / (float)(rectChildrenCount + (((1 <= rectChildrenCount) && justify)? -1: 0)); 150 | for (int i = 0, i_max = rectChildrenCount; i < i_max; ++i) { 151 | var child = rectChildren[i]; 152 | 153 | var childRectTransform = child.GetComponent(); 154 | var progress = (float)i * countToProgress + (offset + range.x); 155 | var childPivotPosition = layout(progress, sizeHalf); 156 | childRectTransform.localPosition = childPivotPosition + centerOffset; 157 | 158 | if (childAlignment == ChildAnchor.Nomodify) { 159 | m_Tracker.Add(this, child, DrivenTransformProperties.AnchoredPosition); 160 | } else { 161 | if (0.0f < scribeSizeHalf) { 162 | childRectTransform.pivot = layout(progress, new Vector2(scribeSizeHalf, scribeSizeHalf)) + new Vector2(0.5f, 0.5f); 163 | } else if (scribeSizeHalf < 0.0f) { 164 | childRectTransform.pivot = new Vector2(0.5f, 0.5f) - layout(progress, new Vector2(-scribeSizeHalf, -scribeSizeHalf)); 165 | } else { 166 | childRectTransform.pivot = new Vector2(0.5f, 0.5f); 167 | } 168 | 169 | m_Tracker.Add(this, child, DrivenTransformProperties.AnchoredPosition 170 | | DrivenTransformProperties.Pivot); 171 | } 172 | } 173 | } 174 | } 175 | } 176 | } 177 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Scripts/OrientedRect2D.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using System.Collections.Generic; 7 | using System.Linq; 8 | 9 | namespace UIExtention { 10 | public struct OrientedRect2D { 11 | public OrientedRect2D(OrientedRect2D source) { 12 | this.position = source.position; 13 | this.extents = source.extents; 14 | this.rotation = source.rotation; 15 | } 16 | public OrientedRect2D(Rect rect, Quaternion rotation) : this(rect.center, rect.size, rotation) { 17 | } 18 | public OrientedRect2D(Vector2 position, Vector2 size, Quaternion rotation) { 19 | this.position = position; 20 | this.extents = size * 0.5f; 21 | this.rotation = rotation; 22 | } 23 | public OrientedRect2D(float x, float y, float width, float height, Quaternion rotation) { 24 | this.position = new Vector2(x, y); 25 | this.extents = new Vector2(width * 0.5f, height * 0.5f); 26 | this.rotation = rotation; 27 | } 28 | public OrientedRect2D(RectTransform rectTransform) { 29 | var rect = rectTransform.rect; 30 | this.position = (Vector2)rectTransform.position + Vector2.Scale(rect.center, rectTransform.lossyScale); 31 | this.extents = Vector2.Scale(rect.size, rectTransform.lossyScale) * 0.5f; 32 | this.rotation = rectTransform.rotation; 33 | } 34 | 35 | public Vector2 position; 36 | public Vector2 extents; 37 | public Quaternion rotation; 38 | 39 | public Vector2 center { get{return position;} set{position = value;} } 40 | public float x { get{return position.x;} set{position = new Vector2(value, position.y);} } 41 | public float y { get{return position.y;} set{position = new Vector2(position.x, value);} } 42 | public Vector2 size { get{return extents * 2.0f;} set{extents = value * 0.5f;} } 43 | public float height { get{return extents.y * 2.0f;} set{extents = new Vector2(extents.x, value * 0.5f);} } 44 | public float width { get{return extents.x * 2.0f;} set{extents = new Vector2(value * 0.5f, extents.y);} } 45 | public Vector2 max { get{return position + extents;} set{var m = min; position = new Vector2((value.x + m.x) * 0.5f, (value.y - m.y) * 0.5f); size = new Vector2(Mathf.Abs(value.x - m.x), Mathf.Abs(value.y - m.y));} } 46 | public Vector2 min { get{return position - extents;} set{var m = max; position = new Vector2((m.x + value.x) * 0.5f, (m.y - value.y) * 0.5f); size = new Vector2(Mathf.Abs(m.x - value.x), Mathf.Abs(m.y - value.y));} } 47 | 48 | public float xMax { get{return position.x + extents.x;} } 49 | public float xMin { get{return position.x - extents.x;} } 50 | public float yMax { get{return position.y + extents.y;} } 51 | public float yMin { get{return position.y - extents.y;} } 52 | 53 | public static OrientedRect2D MinMaxOrientedRect(float xmin, float ymin, float xmax, float ymax, Quaternion rotation) { 54 | return new OrientedRect2D((xmax + xmin) * 0.5f, (ymax + ymin) * 0.5f, Mathf.Abs(xmax - xmin), Mathf.Abs(ymax - ymin), rotation); 55 | } 56 | 57 | public bool Contains(Vector3 point) { 58 | var localPoint = Quaternion.Inverse(rotation) * point; 59 | if (extents.x < Mathf.Abs(localPoint.x - position.x)) { 60 | return false; 61 | } else if (extents.y < Mathf.Abs(localPoint.y - position.y)) { 62 | return false; 63 | } 64 | return true; 65 | } 66 | 67 | public bool Contains(Vector2 point) { 68 | return Contains((Vector3)point); 69 | } 70 | 71 | public bool Overlaps(OrientedRect2D other) { 72 | var distanceAxis = position - other.position; 73 | var thisUnitAxis = new AxisPack3(rotation); 74 | var thisExtentsAxis = new AxisPack3(extents, rotation); 75 | var otherUnitAxis = new AxisPack3(other.rotation); 76 | var otherExtentsAxis = new AxisPack3(other.extents, other.rotation); 77 | 78 | //this 79 | for (int i = 0, iMax = 2; i < iMax; ++i) { 80 | var splitAxis = thisUnitAxis[i]; 81 | var distance = GetVectorLengthOfProjection(distanceAxis, splitAxis); 82 | distance -= this.extents[i]; 83 | distance -= GetVectorLengthOfProjection(otherExtentsAxis, splitAxis); 84 | if (0.0f < distance) { 85 | //NoHit 86 | return false; 87 | } 88 | } 89 | //other 90 | for (int i = 0, iMax = 2; i < iMax; ++i) { 91 | var splitAxis = otherUnitAxis[i]; 92 | var distance = GetVectorLengthOfProjection(distanceAxis, splitAxis); 93 | distance -= GetVectorLengthOfProjection(thisExtentsAxis, splitAxis); 94 | distance -= other.extents[i]; 95 | if (0.0f < distance) { 96 | //NoHit 97 | return false; 98 | } 99 | } 100 | //3rd split axis 101 | for (int i = 0, iMax = 2; i < iMax; ++i) { 102 | for (int k = 0, kMax = 2; k < kMax; ++k) { 103 | var splitAxis = Vector3.Cross(thisUnitAxis[i], otherUnitAxis[k]); 104 | var distance = GetVectorLengthOfProjection(distanceAxis, splitAxis); 105 | distance -= GetVectorLengthOfProjection(thisExtentsAxis, splitAxis); 106 | distance -= GetVectorLengthOfProjection(otherExtentsAxis, splitAxis); 107 | if (0.0f < distance) { 108 | //NoHit 109 | return false; 110 | } 111 | } 112 | } 113 | 114 | //Hit 115 | return true; 116 | } 117 | 118 | private class AxisPack3 { 119 | private Vector3[] axis; 120 | 121 | public Vector3 this[int i] { 122 | set{this.axis[i] = value;} 123 | get{return this.axis[i];} 124 | } 125 | public Vector3 right { 126 | set{this.axis[0] = value;} 127 | get{return this.axis[0];} 128 | } 129 | public Vector3 up { 130 | set{this.axis[1] = value;} 131 | get{return this.axis[1];} 132 | } 133 | public Vector3 forward { 134 | set{this.axis[2] = value;} 135 | get{return this.axis[2];} 136 | } 137 | public AxisPack3() : this(Vector3.one, Quaternion.identity) {} 138 | public AxisPack3(Vector3 scale) : this(scale, Quaternion.identity) {} 139 | public AxisPack3(Quaternion rotation) : this(Vector3.one, rotation) {} 140 | public AxisPack3(Vector3 scale, Quaternion rotation) { 141 | this.axis = new[]{Vector3.right * scale.x, Vector3.up * scale.y, Vector3.forward * scale.z}.Select(x=>rotation * x).ToArray(); 142 | } 143 | public AxisPack3(Vector3 right, Vector3 up, Vector3 forward) { 144 | this.axis = new[]{right, up, forward}.ToArray(); 145 | } 146 | } 147 | 148 | private static float GetVectorLengthOfProjection(Vector3 src, Vector3 projection) { 149 | return Mathf.Abs(Vector3.Dot(projection, src)); 150 | } 151 | 152 | private static float GetVectorLengthOfProjection(AxisPack3 axis, Vector3 projection) { 153 | float result = Enumerable.Range(0, 3) 154 | .Select(x=>GetVectorLengthOfProjection(projection, axis[x])) 155 | .Sum(); 156 | return result; 157 | } 158 | 159 | } 160 | } -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: .00100000005 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: .00100000005 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: .00100000005 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: .00100000005 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left cmd 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: .00100000005 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: .00100000005 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: .100000001 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: .100000001 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: .100000001 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: .189999998 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: .189999998 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: .00100000005 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: .00100000005 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: .00100000005 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: .00100000005 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: .00100000005 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: .00100000005 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: .00100000005 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /Assets/UIExtention/Common/Tests/Editor/VertexUtilityTest.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEditor; 7 | using NUnit.Framework; 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | 11 | namespace UIExtention { 12 | public class VertexUtilityTest { 13 | 14 | [Test] 15 | public void T000_IntersectInTriangle() 16 | { 17 | var triangle = new List(3); 18 | triangle.Add(CreateUIVertex(new Vector3(0.0f, 0.0f, 0.0f))); 19 | triangle.Add(CreateUIVertex(new Vector3(4.0f, 0.0f, 0.0f))); 20 | triangle.Add(CreateUIVertex(new Vector3(0.0f, 4.0f, 0.0f))); 21 | 22 | var mask = new List(3); 23 | mask.Add(CreateUIVertex(new Vector3(1.0f, 1.0f, 0.0f))); 24 | mask.Add(CreateUIVertex(new Vector3(3.0f, 1.0f, 0.0f))); 25 | mask.Add(CreateUIVertex(new Vector3(1.0f, 3.0f, 0.0f))); 26 | 27 | VertexUtility.Intersect(triangle, mask); 28 | Assert.AreEqual(3, triangle.Count); 29 | Assert.AreEqual(3, triangle.Select(x=>x.position).Distinct().Count()); 30 | 31 | var vertices = new List(3); 32 | vertices.Add(new Vector3(1.0f, 1.0f, 0.0f)); 33 | vertices.Add(new Vector3(3.0f, 1.0f, 0.0f)); 34 | vertices.Add(new Vector3(1.0f, 3.0f, 0.0f)); 35 | Assert.AreEqual(3, triangle.Select(x=>x.position).Concat(vertices).Distinct().Count()); 36 | } 37 | 38 | [Test] 39 | public void T001_IntersectOutTriangle() 40 | { 41 | var triangle = new List(3); 42 | triangle.Add(CreateUIVertex(new Vector3(1.0f, 1.0f, 0.0f))); 43 | triangle.Add(CreateUIVertex(new Vector3(3.0f, 1.0f, 0.0f))); 44 | triangle.Add(CreateUIVertex(new Vector3(1.0f, 3.0f, 0.0f))); 45 | 46 | var mask = new List(3); 47 | mask.Add(CreateUIVertex(new Vector3(0.0f, 0.0f, 0.0f))); 48 | mask.Add(CreateUIVertex(new Vector3(0.0f, 4.0f, 0.0f))); 49 | mask.Add(CreateUIVertex(new Vector3(4.0f, 0.0f, 0.0f))); 50 | 51 | VertexUtility.Intersect(triangle, mask); 52 | Assert.AreEqual(3, triangle.Count); 53 | Assert.AreEqual(3, triangle.Select(x=>x.position).Distinct().Count()); 54 | 55 | var vertices = new List(3); 56 | vertices.Add(new Vector3(1.0f, 1.0f, 0.0f)); 57 | vertices.Add(new Vector3(3.0f, 1.0f, 0.0f)); 58 | vertices.Add(new Vector3(1.0f, 3.0f, 0.0f)); 59 | Assert.AreEqual(3, triangle.Select(x=>x.position).Concat(vertices).Distinct().Count()); 60 | } 61 | 62 | [Test] 63 | public void T002_IntersectCrossTriangle() 64 | { 65 | var triangle = new List(3); 66 | triangle.Add(CreateUIVertex(new Vector3(0.0f, 0.0f, 0.0f))); 67 | triangle.Add(CreateUIVertex(new Vector3(4.0f, 0.0f, 0.0f))); 68 | triangle.Add(CreateUIVertex(new Vector3(0.0f, 4.0f, 0.0f))); 69 | 70 | var mask = new List(3); 71 | mask.Add(CreateUIVertex(new Vector3( 3.0f, 3.0f, 0.0f))); 72 | mask.Add(CreateUIVertex(new Vector3(-1.0f, 3.0f, 0.0f))); 73 | mask.Add(CreateUIVertex(new Vector3( 3.0f, -1.0f, 0.0f))); 74 | 75 | VertexUtility.Intersect(triangle, mask); 76 | Assert.AreEqual(12, triangle.Count); 77 | Assert.AreEqual(6, triangle.Select(x=>x.position).Distinct().Count()); 78 | 79 | var vertices = new List(3); 80 | vertices.Add(new Vector3(2.0f, 0.0f, 0.0f)); 81 | vertices.Add(new Vector3(3.0f, 0.0f, 0.0f)); 82 | vertices.Add(new Vector3(0.0f, 2.0f, 0.0f)); 83 | vertices.Add(new Vector3(0.0f, 3.0f, 0.0f)); 84 | vertices.Add(new Vector3(3.0f, 1.0f, 0.0f)); 85 | vertices.Add(new Vector3(1.0f, 3.0f, 0.0f)); 86 | Assert.AreEqual(6, triangle.Select(x=>x.position).Concat(vertices).Distinct().Count()); 87 | } 88 | 89 | [Test] 90 | public void T100_IntersectInSquare() 91 | { 92 | var triangle = new List(3); 93 | triangle.Add(CreateUIVertex(new Vector3(0.0f, 0.0f, 0.0f))); 94 | triangle.Add(CreateUIVertex(new Vector3(4.0f, 0.0f, 0.0f))); 95 | triangle.Add(CreateUIVertex(new Vector3(4.0f, 4.0f, 0.0f))); 96 | triangle.Add(CreateUIVertex(new Vector3(0.0f, 4.0f, 0.0f))); 97 | triangle = (new[]{0, 1, 2, 2, 0, 3}).Select(x=>triangle[x]).ToList(); 98 | 99 | var mask = new List(3); 100 | mask.Add(CreateUIVertex(new Vector3(1.0f, 1.0f, 0.0f))); 101 | mask.Add(CreateUIVertex(new Vector3(3.0f, 1.0f, 0.0f))); 102 | mask.Add(CreateUIVertex(new Vector3(3.0f, 3.0f, 0.0f))); 103 | mask.Add(CreateUIVertex(new Vector3(1.0f, 3.0f, 0.0f))); 104 | mask = (new[]{0, 1, 2, 2, 0, 3}).Select(x=>mask[x]).ToList(); 105 | 106 | VertexUtility.Intersect(triangle, mask); 107 | Assert.AreEqual(6, triangle.Count); 108 | Assert.AreEqual(4, triangle.Select(x=>x.position).Distinct().Count()); 109 | 110 | var vertices = new List(3); 111 | vertices.Add(new Vector3(1.0f, 1.0f, 0.0f)); 112 | vertices.Add(new Vector3(3.0f, 1.0f, 0.0f)); 113 | vertices.Add(new Vector3(3.0f, 3.0f, 0.0f)); 114 | vertices.Add(new Vector3(3.0f, 1.0f, 0.0f)); 115 | Assert.AreEqual(4, triangle.Select(x=>x.position).Concat(vertices).Distinct().Count()); 116 | } 117 | 118 | [Test] 119 | public void T101_IntersectOutSquare() 120 | { 121 | var triangle = new List(3); 122 | triangle.Add(CreateUIVertex(new Vector3(1.0f, 1.0f, 0.0f))); 123 | triangle.Add(CreateUIVertex(new Vector3(3.0f, 1.0f, 0.0f))); 124 | triangle.Add(CreateUIVertex(new Vector3(3.0f, 3.0f, 0.0f))); 125 | triangle.Add(CreateUIVertex(new Vector3(1.0f, 3.0f, 0.0f))); 126 | triangle = (new[]{0, 1, 2, 2, 0, 3}).Select(x=>triangle[x]).ToList(); 127 | 128 | var mask = new List(3); 129 | mask.Add(CreateUIVertex(new Vector3(0.0f, 0.0f, 0.0f))); 130 | mask.Add(CreateUIVertex(new Vector3(4.0f, 0.0f, 0.0f))); 131 | mask.Add(CreateUIVertex(new Vector3(4.0f, 4.0f, 0.0f))); 132 | mask.Add(CreateUIVertex(new Vector3(0.0f, 4.0f, 0.0f))); 133 | mask = (new[]{0, 1, 2, 2, 0, 3}).Select(x=>mask[x]).ToList(); 134 | 135 | VertexUtility.Intersect(triangle, mask); 136 | Assert.AreEqual(6, triangle.Count); 137 | Assert.AreEqual(4, triangle.Select(x=>x.position).Distinct().Count()); 138 | 139 | var vertices = new List(3); 140 | vertices.Add(new Vector3(1.0f, 1.0f, 0.0f)); 141 | vertices.Add(new Vector3(3.0f, 1.0f, 0.0f)); 142 | vertices.Add(new Vector3(3.0f, 3.0f, 0.0f)); 143 | vertices.Add(new Vector3(3.0f, 1.0f, 0.0f)); 144 | Assert.AreEqual(4, triangle.Select(x=>x.position).Concat(vertices).Distinct().Count()); 145 | } 146 | 147 | [Test] 148 | public void T102_IntersectCrossSquare() 149 | { 150 | var triangle = new List(3); 151 | triangle.Add(CreateUIVertex(new Vector3(0.0f, 0.0f, 0.0f))); 152 | triangle.Add(CreateUIVertex(new Vector3(4.0f, 0.0f, 0.0f))); 153 | triangle.Add(CreateUIVertex(new Vector3(4.0f, 4.0f, 0.0f))); 154 | triangle.Add(CreateUIVertex(new Vector3(0.0f, 4.0f, 0.0f))); 155 | triangle = (new[]{0, 1, 2, 2, 0, 3}).Select(x=>triangle[x]).ToList(); 156 | 157 | var mask = new List(3); 158 | mask.Add(CreateUIVertex(new Vector3( 2.0f,-1.0f, 0.0f))); 159 | mask.Add(CreateUIVertex(new Vector3( 5.0f, 2.0f, 0.0f))); 160 | mask.Add(CreateUIVertex(new Vector3( 2.0f, 5.0f, 0.0f))); 161 | mask.Add(CreateUIVertex(new Vector3(-1.0f, 2.0f, 0.0f))); 162 | mask = (new[]{0, 1, 2, 2, 0, 3}).Select(x=>mask[x]).ToList(); 163 | 164 | VertexUtility.Intersect(triangle, mask); 165 | Assert.AreEqual(30, triangle.Count); 166 | Assert.AreEqual(13, triangle.Select(x=>x.position).Distinct().Count()); 167 | 168 | var vertices = new List(3); 169 | vertices.Add(new Vector3(1.0f, 0.0f, 0.0f)); 170 | vertices.Add(new Vector3(2.0f, 0.0f, 0.0f)); 171 | vertices.Add(new Vector3(3.0f, 0.0f, 0.0f)); 172 | vertices.Add(new Vector3(0.5f, 0.5f, 0.0f)); 173 | vertices.Add(new Vector3(0.0f, 1.0f, 0.0f)); 174 | vertices.Add(new Vector3(4.0f, 1.0f, 0.0f)); 175 | vertices.Add(new Vector3(2.0f, 2.0f, 0.0f)); 176 | vertices.Add(new Vector3(0.0f, 3.0f, 0.0f)); 177 | vertices.Add(new Vector3(4.0f, 3.0f, 0.0f)); 178 | vertices.Add(new Vector3(3.5f, 3.5f, 0.0f)); 179 | vertices.Add(new Vector3(1.0f, 4.0f, 0.0f)); 180 | vertices.Add(new Vector3(2.0f, 4.0f, 0.0f)); 181 | vertices.Add(new Vector3(3.0f, 4.0f, 0.0f)); 182 | Assert.AreEqual(13, triangle.Select(x=>x.position).Concat(vertices).Distinct().Count()); 183 | } 184 | 185 | private UIVertex CreateUIVertex(Vector3 position) { 186 | var result = new UIVertex(); 187 | result.position = position; 188 | return result; 189 | } 190 | } 191 | } 192 | 193 | -------------------------------------------------------------------------------- /Assets/UIExtention/Gradation/Scripts/Editor/GradationMaterialEditor.cs: -------------------------------------------------------------------------------- 1 | // (C) 2016 ERAL 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | using UnityEngine; 6 | using UnityEditor; 7 | using System.Linq; 8 | using Array = System.Array; 9 | 10 | namespace UIExtention { 11 | [CustomEditor(typeof(GradationMaterial))] 12 | [CanEditMultipleObjects] 13 | public class GradationMaterialEditor : Editor { 14 | private GUIContent m_EditorWindowContent; 15 | private GUIContent m_PreviewTitleContent; 16 | private SerializedProperty m_ColorBlend; 17 | private GUIContent m_ColorBlendContent; 18 | private SerializedProperty m_AlphaBlend; 19 | private GUIContent m_AlphaBlendContent; 20 | private SerializedProperty m_TextMapping; 21 | private GUIContent m_TextMappingContent; 22 | private SerializedProperty m_Keys; 23 | private GUIContent m_KeysContent; 24 | 25 | protected virtual void OnEnable() { 26 | m_EditorWindowContent = new GUIContent("Gradation Editor"); 27 | m_PreviewTitleContent = new GUIContent(target.name); 28 | m_ColorBlendContent = new GUIContent("Color Blend"); 29 | m_ColorBlend = serializedObject.FindProperty("m_ColorBlend"); 30 | m_AlphaBlendContent = new GUIContent("Alpha Blend"); 31 | m_AlphaBlend = serializedObject.FindProperty("m_AlphaBlend"); 32 | m_TextMappingContent = new GUIContent("Text Mapping"); 33 | m_TextMapping = serializedObject.FindProperty("m_TextMapping"); 34 | m_KeysContent = new GUIContent("Keys"); 35 | m_Keys = serializedObject.FindProperty("m_Keys"); 36 | } 37 | 38 | public override void OnInspectorGUI() { 39 | serializedObject.Update(); 40 | 41 | EditorGUILayout.PropertyField(m_ColorBlend, m_ColorBlendContent, true); 42 | EditorGUILayout.PropertyField(m_AlphaBlend, m_AlphaBlendContent, true); 43 | EditorGUILayout.PropertyField(m_TextMapping, m_TextMappingContent, true); 44 | 45 | GUILayout.BeginHorizontal(); 46 | GUILayout.FlexibleSpace(); 47 | var oldGUIEnabled = GUI.enabled; 48 | GUI.enabled = !serializedObject.isEditingMultipleObjects; 49 | if (GUILayout.Button(m_EditorWindowContent, GUILayout.MaxWidth(105))) { 50 | GradationWindow.Instantiate((GradationMaterial)target); 51 | } 52 | GUI.enabled = oldGUIEnabled; 53 | GUILayout.EndHorizontal(); 54 | 55 | EditorGUILayout.PropertyField(m_Keys, m_KeysContent, true); 56 | 57 | serializedObject.ApplyModifiedProperties(); 58 | } 59 | 60 | public override bool HasPreviewGUI() { 61 | return true; 62 | } 63 | 64 | public override GUIContent GetPreviewTitle() { 65 | return m_PreviewTitleContent; 66 | } 67 | 68 | public override void OnPreviewGUI(Rect r, GUIStyle background) { 69 | base.OnPreviewGUI(r, background); 70 | if (Event.current.type != EventType.Repaint) { 71 | return; 72 | } 73 | 74 | var drawShortLength = Mathf.Min(r.width, r.height); 75 | var drawSize = drawShortLength * ((40.0f < drawShortLength)? 1.0f: 4.0f) * Vector2.one; 76 | var previewTexture = GradationMaterialEditor.CreatePreviewTexture2D((GradationMaterial)target, drawSize, Color.white, Color.gray); 77 | 78 | var drawRect = new Rect(r.center - drawShortLength * 0.5f * Vector2.one 79 | , drawShortLength * Vector2.one 80 | ); 81 | GUI.DrawTexture(drawRect, previewTexture); 82 | } 83 | 84 | public static Texture2D CreatePreviewTexture2D(GradationMaterial material, Vector2 size, Color lightColor, Color darkColor) { 85 | return CreatePreviewTexture2D(material, size, size, lightColor, darkColor); 86 | } 87 | public static Texture2D CreatePreviewTexture2D(GradationMaterial material, Vector2 textureSize, Vector2 drawSize, Color lightColor, Color darkColor) { 88 | var previewRender = new PreviewRenderUtility(); 89 | return CreatePreviewTexture2D(previewRender, material, textureSize, drawSize, lightColor, darkColor); 90 | } 91 | public static Texture2D CreatePreviewTexture2D(PreviewRenderUtility previewRender, GradationMaterial material, Vector2 textureSize, Vector2 drawSize, Color lightColor, Color darkColor) { 92 | previewRender.m_Camera.orthographic = true; 93 | previewRender.m_Camera.orthographicSize = 1.0f; 94 | previewRender.m_Camera.nearClipPlane = 0.0f; 95 | previewRender.m_Camera.farClipPlane = 2.0f; 96 | var previewMaterial = new Material(Shader.Find("Sprites/Default")); 97 | 98 | Rect r = new Rect(Vector2.zero, textureSize); 99 | previewRender.BeginStaticPreview(r); 100 | 101 | var matrix = Matrix4x4.TRS(new Vector3(-1.0f, -1.0f, 0.0f), Quaternion.identity, new Vector3(previewRender.m_Camera.aspect * 2.0f, 2.0f, 1.0f)); 102 | var mesh = CreateMesh(material, drawSize, lightColor, darkColor); 103 | previewRender.DrawMesh(mesh, matrix, previewMaterial, 0); 104 | 105 | previewRender.m_Camera.Render(); 106 | var result = previewRender.EndStaticPreview(); 107 | return result; 108 | } 109 | 110 | public static Mesh CreateMesh(GradationMaterial material) { 111 | return material.GetMesh(); 112 | } 113 | 114 | public static Mesh CreateMesh(GradationMaterial material, Vector2 drawSize, Color lightColor, Color darkColor) { 115 | var result = CreateMesh(material); 116 | if (material.keys.Any(x=>x.color.a < 1.0f)) { 117 | var cellSize = new Vector2(16.0f / drawSize.x, 16.0f / drawSize.y); 118 | var checkerMesh = CreateCheckerMesh(new Rect(0.0f, 0.0f, 1.0f, 1.0f), cellSize, Color.white, Color.gray); 119 | 120 | var vertices = new Vector3[result.vertices.Length + checkerMesh.vertices.Length]; 121 | Array.Copy(checkerMesh.vertices, 0, vertices, 0, checkerMesh.vertices.Length); 122 | Array.Copy(result.vertices, 0, vertices, checkerMesh.vertices.Length, result.vertices.Length); 123 | 124 | var colors = new Color[result.colors.Length + checkerMesh.colors.Length]; 125 | Array.Copy(checkerMesh.colors, 0, colors, 0, checkerMesh.colors.Length); 126 | Array.Copy(result.colors, 0, colors, checkerMesh.colors.Length, result.colors.Length); 127 | 128 | var indices = checkerMesh.GetIndices(0) 129 | .Concat(result.GetIndices(0) 130 | .Select(x=>x + checkerMesh.vertices.Length) 131 | ) 132 | .ToArray(); 133 | 134 | result.Clear(); 135 | result.vertices = vertices; 136 | result.colors = colors; 137 | result.SetIndices(indices, MeshTopology.Triangles, 0); 138 | } 139 | return result; 140 | } 141 | 142 | private static Mesh CreateCheckerMesh(Rect r, Vector2 cellSize, Color lightColor, Color darkColor) { 143 | var result = new Mesh(); 144 | 145 | var vertexXCount = Mathf.CeilToInt(r.width / cellSize.x) + 1; 146 | var vertexYCount = Mathf.CeilToInt(r.height / cellSize.y) + 1; 147 | var vertexCount = vertexXCount * vertexYCount; 148 | 149 | var vertices = new Vector3[vertexCount + 4]; 150 | vertices[0] = new Vector3(r.xMin, r.yMax, 0.0f); 151 | vertices[1] = new Vector3(r.xMax, r.yMax, 0.0f); 152 | vertices[2] = new Vector3(r.xMin, r.yMin, 0.0f); 153 | vertices[3] = new Vector3(r.xMax, r.yMin, 0.0f); 154 | for (int y = 0, yMax = vertexYCount; y < yMax; ++y) { 155 | for (int x = 0, xMax = vertexXCount; x < xMax; ++x) { 156 | var positon = new Vector3(r.xMax, r.yMin, 0.0f); 157 | if (x < (vertexXCount - 1)) { 158 | positon.x = cellSize.x * x + r.xMin; 159 | } 160 | if (y < (vertexYCount - 1)) { 161 | positon.y = r.yMax - cellSize.y * y; 162 | } 163 | var index = x + y * vertexXCount + 4; 164 | vertices[index] = positon; 165 | } 166 | } 167 | result.vertices = vertices; 168 | 169 | var colors = new Color[vertexCount + 4]; 170 | for (int i = 0, iMax = 4; i < iMax; ++i) { 171 | colors[i] = lightColor; 172 | } 173 | for (int i = 4, iMax = vertexCount + 4; i < iMax; ++i) { 174 | colors[i] = darkColor; 175 | } 176 | result.colors = colors; 177 | 178 | var indices = new int[((vertexXCount - 1) * (vertexYCount - 1) / 2 + 1) * 6]; 179 | { 180 | Array.Copy(new[]{0, 1, 2, 1, 3, 2}, indices, 6); 181 | var index = 6; 182 | for (int y = 0, yMax = vertexYCount - 1; y < yMax; ++y) { 183 | for (int x = 0, xMax = vertexXCount - 1; x < xMax; ++x) { 184 | if (((x + y) & 0x01) == 1) { 185 | var upperLeftIndex = x + y * vertexXCount + 4; 186 | var upperRightIndex = upperLeftIndex + 1; 187 | var lowerRightIndex = upperRightIndex + vertexXCount; 188 | var lowerLeftIndex = upperLeftIndex + vertexXCount; 189 | indices[index++] = upperLeftIndex; 190 | indices[index++] = upperRightIndex; 191 | indices[index++] = lowerLeftIndex; 192 | indices[index++] = upperRightIndex; 193 | indices[index++] = lowerRightIndex; 194 | indices[index++] = lowerLeftIndex; 195 | } 196 | } 197 | } 198 | } 199 | result.SetIndices(indices, MeshTopology.Triangles, 0); 200 | 201 | return result; 202 | } 203 | } 204 | } 205 | --------------------------------------------------------------------------------