├── .gitignore ├── LICENSE ├── LICENSE.meta ├── README.md ├── README.md.meta ├── RadialMenu_v1.meta ├── RadialMenu_v1 ├── Demo_v1.unity ├── Demo_v1.unity.meta ├── Scripts.meta ├── Scripts │ ├── ClockwisePolarCoord.cs │ ├── ClockwisePolarCoord.cs.meta │ ├── RadialMenu.cs │ └── RadialMenu.cs.meta ├── Sprites.meta ├── Sprites │ ├── Arrow_512.png │ ├── Arrow_512.png.meta │ ├── Circle_512.png │ └── Circle_512.png.meta ├── Test_RadialMenu.cs └── Test_RadialMenu.cs.meta ├── RadialMenu_v2.meta ├── RadialMenu_v2 ├── Demo_v2.unity ├── Demo_v2.unity.meta ├── Scripts.meta ├── Scripts │ ├── ClockwisePolarCoord.cs │ ├── ClockwisePolarCoord.cs.meta │ ├── Easing.cs │ ├── Easing.cs.meta │ ├── RadialMenu.cs │ ├── RadialMenu.cs.meta │ ├── RadialMenu_States.cs │ └── RadialMenu_States.cs.meta ├── Sprites.meta ├── Sprites │ ├── Arrow_512.png │ ├── Arrow_512.png.meta │ ├── Circle_512.png │ ├── Circle_512.png.meta │ ├── Kenny Animals.meta │ └── Kenny Animals │ │ ├── bear.png │ │ ├── bear.png.meta │ │ ├── chick.png │ │ ├── chick.png.meta │ │ ├── chicken.png │ │ ├── chicken.png.meta │ │ ├── cow.png │ │ ├── cow.png.meta │ │ ├── duck.png │ │ ├── duck.png.meta │ │ ├── elephant.png │ │ ├── elephant.png.meta │ │ ├── penguin.png │ │ ├── penguin.png.meta │ │ ├── pig.png │ │ └── pig.png.meta ├── Test_RadialMenu.cs └── Test_RadialMenu.cs.meta ├── RadialMenu_v3.meta └── RadialMenu_v3 ├── Demo_v3.unity ├── Demo_v3.unity.meta ├── Scripts.meta ├── Scripts ├── ClockwisePolarCoord.cs ├── ClockwisePolarCoord.cs.meta ├── Easing.cs ├── Easing.cs.meta ├── RadialMenu.cs ├── RadialMenu.cs.meta ├── RadialMenuEditor.cs ├── RadialMenuEditor.cs.meta ├── RadialMenu_States.cs └── RadialMenu_States.cs.meta ├── Sprites.meta ├── Sprites ├── Arrow_512.png ├── Arrow_512.png.meta ├── Circle_512.png ├── Circle_512.png.meta ├── Kenny Animals.meta └── Kenny Animals │ ├── bear.png │ ├── bear.png.meta │ ├── chick.png │ ├── chick.png.meta │ ├── chicken.png │ ├── chicken.png.meta │ ├── cow.png │ ├── cow.png.meta │ ├── duck.png │ ├── duck.png.meta │ ├── elephant.png │ ├── elephant.png.meta │ ├── penguin.png │ ├── penguin.png.meta │ ├── pig.png │ └── pig.png.meta ├── Test_RadialMenu.cs └── Test_RadialMenu.cs.meta /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Mm]emoryCaptures/ 12 | 13 | # Asset meta data should only be ignored when the corresponding asset is also ignored 14 | !/[Aa]ssets/**/*.meta 15 | 16 | # Uncomment this line if you wish to ignore the asset store tools plugin 17 | # /[Aa]ssets/AssetStoreTools* 18 | 19 | # Autogenerated Jetbrains Rider plugin 20 | [Aa]ssets/Plugins/Editor/JetBrains* 21 | 22 | # Visual Studio cache directory 23 | .vs/ 24 | 25 | # Gradle cache directory 26 | .gradle/ 27 | 28 | # Autogenerated VS/MD/Consulo solution and project files 29 | ExportedObj/ 30 | .consulo/ 31 | *.csproj 32 | *.unityproj 33 | *.sln 34 | *.suo 35 | *.tmp 36 | *.user 37 | *.userprefs 38 | *.pidb 39 | *.booproj 40 | *.svd 41 | *.pdb 42 | *.mdb 43 | *.opendb 44 | *.VC.db 45 | 46 | # Unity3D generated meta files 47 | *.pidb.meta 48 | *.pdb.meta 49 | *.mdb.meta 50 | 51 | # Unity3D generated file on crash reports 52 | sysinfo.txt 53 | 54 | # Builds 55 | *.apk 56 | *.unitypackage 57 | 58 | # Crashlytics generated file 59 | crashlytics-build.properties 60 | 61 | 62 | # Additions by Rito 63 | *.cmd 64 | *.cmd.meta 65 | _* 66 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 rito15 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /LICENSE.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 76c305922908de34bb0f7683b950fb6b 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Unity Radial Menu 2 | 3 | - 원형 다이얼 모양의 메뉴 UI 4 | 5 | - 6 | 7 |
8 | 9 | ## Preview 10 | 11 | ![](https://user-images.githubusercontent.com/42164422/116588062-0de00980-a956-11eb-940d-5cc93bd5cd2e.gif) -------------------------------------------------------------------------------- /README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 642bddb8d2e6c8742bddef6b772feb2c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /RadialMenu_v1.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0fa527da3e85f944884010f8f6f0e1f5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /RadialMenu_v1/Demo_v1.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 11 47 | m_GIWorkflowMode: 1 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 12 58 | m_Resolution: 2 59 | m_BakeResolution: 40 60 | m_AtlasSize: 1024 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_ExtractAmbientOcclusion: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 2 75 | m_BakeBackend: 1 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 512 79 | m_PVRBounces: 2 80 | m_PVREnvironmentSampleCount: 256 81 | m_PVREnvironmentReferencePointCount: 2048 82 | m_PVRFilteringMode: 1 83 | m_PVRDenoiserTypeDirect: 1 84 | m_PVRDenoiserTypeIndirect: 1 85 | m_PVRDenoiserTypeAO: 1 86 | m_PVRFilterTypeDirect: 0 87 | m_PVRFilterTypeIndirect: 0 88 | m_PVRFilterTypeAO: 0 89 | m_PVREnvironmentMIS: 1 90 | m_PVRCulling: 1 91 | m_PVRFilteringGaussRadiusDirect: 1 92 | m_PVRFilteringGaussRadiusIndirect: 5 93 | m_PVRFilteringGaussRadiusAO: 2 94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 96 | m_PVRFilteringAtrousPositionSigmaAO: 1 97 | m_ExportTrainingData: 0 98 | m_TrainingDataDestination: TrainingData 99 | m_LightProbeSampleCountMultiplier: 4 100 | m_LightingDataAsset: {fileID: 0} 101 | m_UseShadowmask: 1 102 | --- !u!196 &4 103 | NavMeshSettings: 104 | serializedVersion: 2 105 | m_ObjectHideFlags: 0 106 | m_BuildSettings: 107 | serializedVersion: 2 108 | agentTypeID: 0 109 | agentRadius: 0.5 110 | agentHeight: 2 111 | agentSlope: 45 112 | agentClimb: 0.4 113 | ledgeDropHeight: 0 114 | maxJumpAcrossDistance: 0 115 | minRegionArea: 2 116 | manualCellSize: 0 117 | cellSize: 0.16666667 118 | manualTileSize: 0 119 | tileSize: 256 120 | accuratePlacement: 0 121 | debug: 122 | m_Flags: 0 123 | m_NavMeshData: {fileID: 0} 124 | --- !u!1 &74853757 125 | GameObject: 126 | m_ObjectHideFlags: 0 127 | m_CorrespondingSourceObject: {fileID: 0} 128 | m_PrefabInstance: {fileID: 0} 129 | m_PrefabAsset: {fileID: 0} 130 | serializedVersion: 6 131 | m_Component: 132 | - component: {fileID: 74853758} 133 | - component: {fileID: 74853760} 134 | m_Layer: 5 135 | m_Name: Arrow Holder 136 | m_TagString: Untagged 137 | m_Icon: {fileID: 0} 138 | m_NavMeshLayer: 0 139 | m_StaticEditorFlags: 0 140 | m_IsActive: 1 141 | --- !u!224 &74853758 142 | RectTransform: 143 | m_ObjectHideFlags: 0 144 | m_CorrespondingSourceObject: {fileID: 0} 145 | m_PrefabInstance: {fileID: 0} 146 | m_PrefabAsset: {fileID: 0} 147 | m_GameObject: {fileID: 74853757} 148 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 149 | m_LocalPosition: {x: 0, y: 0, z: 0} 150 | m_LocalScale: {x: 1, y: 1, z: 1} 151 | m_Children: 152 | - {fileID: 1171156410} 153 | m_Father: {fileID: 298502875} 154 | m_RootOrder: 1 155 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 156 | m_AnchorMin: {x: 0.5, y: 0.5} 157 | m_AnchorMax: {x: 0.5, y: 0.5} 158 | m_AnchoredPosition: {x: 0, y: 0} 159 | m_SizeDelta: {x: 100, y: 100} 160 | m_Pivot: {x: 0.5, y: 0.5} 161 | --- !u!222 &74853760 162 | CanvasRenderer: 163 | m_ObjectHideFlags: 0 164 | m_CorrespondingSourceObject: {fileID: 0} 165 | m_PrefabInstance: {fileID: 0} 166 | m_PrefabAsset: {fileID: 0} 167 | m_GameObject: {fileID: 74853757} 168 | m_CullTransparentMesh: 0 169 | --- !u!1 &298502874 170 | GameObject: 171 | m_ObjectHideFlags: 0 172 | m_CorrespondingSourceObject: {fileID: 0} 173 | m_PrefabInstance: {fileID: 0} 174 | m_PrefabAsset: {fileID: 0} 175 | serializedVersion: 6 176 | m_Component: 177 | - component: {fileID: 298502875} 178 | - component: {fileID: 298502877} 179 | - component: {fileID: 298502876} 180 | - component: {fileID: 298502878} 181 | m_Layer: 5 182 | m_Name: Radial Menu Panel 183 | m_TagString: Untagged 184 | m_Icon: {fileID: 0} 185 | m_NavMeshLayer: 0 186 | m_StaticEditorFlags: 0 187 | m_IsActive: 1 188 | --- !u!224 &298502875 189 | RectTransform: 190 | m_ObjectHideFlags: 0 191 | m_CorrespondingSourceObject: {fileID: 0} 192 | m_PrefabInstance: {fileID: 0} 193 | m_PrefabAsset: {fileID: 0} 194 | m_GameObject: {fileID: 298502874} 195 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 196 | m_LocalPosition: {x: 0, y: 0, z: 0} 197 | m_LocalScale: {x: 1, y: 1, z: 1} 198 | m_Children: 199 | - {fileID: 677547023} 200 | - {fileID: 74853758} 201 | m_Father: {fileID: 1931663071} 202 | m_RootOrder: 0 203 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 204 | m_AnchorMin: {x: 0, y: 0} 205 | m_AnchorMax: {x: 1, y: 1} 206 | m_AnchoredPosition: {x: 0, y: 0} 207 | m_SizeDelta: {x: 0, y: 0} 208 | m_Pivot: {x: 0.5, y: 0.5} 209 | --- !u!114 &298502876 210 | MonoBehaviour: 211 | m_ObjectHideFlags: 0 212 | m_CorrespondingSourceObject: {fileID: 0} 213 | m_PrefabInstance: {fileID: 0} 214 | m_PrefabAsset: {fileID: 0} 215 | m_GameObject: {fileID: 298502874} 216 | m_Enabled: 0 217 | m_EditorHideFlags: 0 218 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 219 | m_Name: 220 | m_EditorClassIdentifier: 221 | m_Material: {fileID: 0} 222 | m_Color: {r: 1, g: 1, b: 1, a: 0.392} 223 | m_RaycastTarget: 1 224 | m_Maskable: 1 225 | m_OnCullStateChanged: 226 | m_PersistentCalls: 227 | m_Calls: [] 228 | m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} 229 | m_Type: 1 230 | m_PreserveAspect: 0 231 | m_FillCenter: 1 232 | m_FillMethod: 4 233 | m_FillAmount: 1 234 | m_FillClockwise: 1 235 | m_FillOrigin: 0 236 | m_UseSpriteMesh: 0 237 | m_PixelsPerUnitMultiplier: 1 238 | --- !u!222 &298502877 239 | CanvasRenderer: 240 | m_ObjectHideFlags: 0 241 | m_CorrespondingSourceObject: {fileID: 0} 242 | m_PrefabInstance: {fileID: 0} 243 | m_PrefabAsset: {fileID: 0} 244 | m_GameObject: {fileID: 298502874} 245 | m_CullTransparentMesh: 0 246 | --- !u!114 &298502878 247 | MonoBehaviour: 248 | m_ObjectHideFlags: 0 249 | m_CorrespondingSourceObject: {fileID: 0} 250 | m_PrefabInstance: {fileID: 0} 251 | m_PrefabAsset: {fileID: 0} 252 | m_GameObject: {fileID: 298502874} 253 | m_Enabled: 1 254 | m_EditorHideFlags: 0 255 | m_Script: {fileID: 11500000, guid: 3cf1398004eac7d48aa212ef965c5d23, type: 3} 256 | m_Name: 257 | m_EditorClassIdentifier: 258 | _pieceCount: 8 259 | _appearanceDuration: 0.3 260 | _disappearanceDuration: 0.3 261 | _pieceDist: 180 262 | _centerDistThreshold: 0.1 263 | _pieceSample: {fileID: 677547022} 264 | _arrow: {fileID: 74853758} 265 | _selectedIndex: -1 266 | --- !u!1 &383198611 267 | GameObject: 268 | m_ObjectHideFlags: 0 269 | m_CorrespondingSourceObject: {fileID: 0} 270 | m_PrefabInstance: {fileID: 0} 271 | m_PrefabAsset: {fileID: 0} 272 | serializedVersion: 6 273 | m_Component: 274 | - component: {fileID: 383198613} 275 | - component: {fileID: 383198612} 276 | m_Layer: 0 277 | m_Name: Tester 278 | m_TagString: Untagged 279 | m_Icon: {fileID: 0} 280 | m_NavMeshLayer: 0 281 | m_StaticEditorFlags: 0 282 | m_IsActive: 1 283 | --- !u!114 &383198612 284 | MonoBehaviour: 285 | m_ObjectHideFlags: 0 286 | m_CorrespondingSourceObject: {fileID: 0} 287 | m_PrefabInstance: {fileID: 0} 288 | m_PrefabAsset: {fileID: 0} 289 | m_GameObject: {fileID: 383198611} 290 | m_Enabled: 1 291 | m_EditorHideFlags: 0 292 | m_Script: {fileID: 11500000, guid: c955a632f05c96b4aa232dd398f11503, type: 3} 293 | m_Name: 294 | m_EditorClassIdentifier: 295 | radialMenu: {fileID: 298502878} 296 | key: 103 297 | --- !u!4 &383198613 298 | Transform: 299 | m_ObjectHideFlags: 0 300 | m_CorrespondingSourceObject: {fileID: 0} 301 | m_PrefabInstance: {fileID: 0} 302 | m_PrefabAsset: {fileID: 0} 303 | m_GameObject: {fileID: 383198611} 304 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 305 | m_LocalPosition: {x: 0, y: 0, z: 0} 306 | m_LocalScale: {x: 1, y: 1, z: 1} 307 | m_Children: [] 308 | m_Father: {fileID: 0} 309 | m_RootOrder: 4 310 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 311 | --- !u!1 &473142368 312 | GameObject: 313 | m_ObjectHideFlags: 0 314 | m_CorrespondingSourceObject: {fileID: 0} 315 | m_PrefabInstance: {fileID: 0} 316 | m_PrefabAsset: {fileID: 0} 317 | serializedVersion: 6 318 | m_Component: 319 | - component: {fileID: 473142371} 320 | - component: {fileID: 473142370} 321 | - component: {fileID: 473142369} 322 | m_Layer: 0 323 | m_Name: EventSystem 324 | m_TagString: Untagged 325 | m_Icon: {fileID: 0} 326 | m_NavMeshLayer: 0 327 | m_StaticEditorFlags: 0 328 | m_IsActive: 1 329 | --- !u!114 &473142369 330 | MonoBehaviour: 331 | m_ObjectHideFlags: 0 332 | m_CorrespondingSourceObject: {fileID: 0} 333 | m_PrefabInstance: {fileID: 0} 334 | m_PrefabAsset: {fileID: 0} 335 | m_GameObject: {fileID: 473142368} 336 | m_Enabled: 1 337 | m_EditorHideFlags: 0 338 | m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} 339 | m_Name: 340 | m_EditorClassIdentifier: 341 | m_HorizontalAxis: Horizontal 342 | m_VerticalAxis: Vertical 343 | m_SubmitButton: Submit 344 | m_CancelButton: Cancel 345 | m_InputActionsPerSecond: 10 346 | m_RepeatDelay: 0.5 347 | m_ForceModuleActive: 0 348 | --- !u!114 &473142370 349 | MonoBehaviour: 350 | m_ObjectHideFlags: 0 351 | m_CorrespondingSourceObject: {fileID: 0} 352 | m_PrefabInstance: {fileID: 0} 353 | m_PrefabAsset: {fileID: 0} 354 | m_GameObject: {fileID: 473142368} 355 | m_Enabled: 1 356 | m_EditorHideFlags: 0 357 | m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} 358 | m_Name: 359 | m_EditorClassIdentifier: 360 | m_FirstSelected: {fileID: 0} 361 | m_sendNavigationEvents: 1 362 | m_DragThreshold: 10 363 | --- !u!4 &473142371 364 | Transform: 365 | m_ObjectHideFlags: 0 366 | m_CorrespondingSourceObject: {fileID: 0} 367 | m_PrefabInstance: {fileID: 0} 368 | m_PrefabAsset: {fileID: 0} 369 | m_GameObject: {fileID: 473142368} 370 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 371 | m_LocalPosition: {x: 0, y: 0, z: 0} 372 | m_LocalScale: {x: 1, y: 1, z: 1} 373 | m_Children: [] 374 | m_Father: {fileID: 0} 375 | m_RootOrder: 3 376 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 377 | --- !u!1 &677547022 378 | GameObject: 379 | m_ObjectHideFlags: 0 380 | m_CorrespondingSourceObject: {fileID: 0} 381 | m_PrefabInstance: {fileID: 0} 382 | m_PrefabAsset: {fileID: 0} 383 | serializedVersion: 6 384 | m_Component: 385 | - component: {fileID: 677547023} 386 | - component: {fileID: 677547025} 387 | - component: {fileID: 677547024} 388 | m_Layer: 5 389 | m_Name: Piece 390 | m_TagString: Untagged 391 | m_Icon: {fileID: 0} 392 | m_NavMeshLayer: 0 393 | m_StaticEditorFlags: 0 394 | m_IsActive: 1 395 | --- !u!224 &677547023 396 | RectTransform: 397 | m_ObjectHideFlags: 0 398 | m_CorrespondingSourceObject: {fileID: 0} 399 | m_PrefabInstance: {fileID: 0} 400 | m_PrefabAsset: {fileID: 0} 401 | m_GameObject: {fileID: 677547022} 402 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 403 | m_LocalPosition: {x: 0, y: 0, z: 0} 404 | m_LocalScale: {x: 1, y: 1, z: 1} 405 | m_Children: [] 406 | m_Father: {fileID: 298502875} 407 | m_RootOrder: 0 408 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 409 | m_AnchorMin: {x: 0.5, y: 0.5} 410 | m_AnchorMax: {x: 0.5, y: 0.5} 411 | m_AnchoredPosition: {x: 0, y: 0} 412 | m_SizeDelta: {x: 100, y: 100} 413 | m_Pivot: {x: 0.5, y: 0.5} 414 | --- !u!114 &677547024 415 | MonoBehaviour: 416 | m_ObjectHideFlags: 0 417 | m_CorrespondingSourceObject: {fileID: 0} 418 | m_PrefabInstance: {fileID: 0} 419 | m_PrefabAsset: {fileID: 0} 420 | m_GameObject: {fileID: 677547022} 421 | m_Enabled: 1 422 | m_EditorHideFlags: 0 423 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 424 | m_Name: 425 | m_EditorClassIdentifier: 426 | m_Material: {fileID: 0} 427 | m_Color: {r: 1, g: 1, b: 1, a: 1} 428 | m_RaycastTarget: 1 429 | m_Maskable: 1 430 | m_OnCullStateChanged: 431 | m_PersistentCalls: 432 | m_Calls: [] 433 | m_Sprite: {fileID: 21300000, guid: 3b80dd1a67a45024980146031d649b7c, type: 3} 434 | m_Type: 0 435 | m_PreserveAspect: 0 436 | m_FillCenter: 1 437 | m_FillMethod: 4 438 | m_FillAmount: 1 439 | m_FillClockwise: 1 440 | m_FillOrigin: 0 441 | m_UseSpriteMesh: 0 442 | m_PixelsPerUnitMultiplier: 1 443 | --- !u!222 &677547025 444 | CanvasRenderer: 445 | m_ObjectHideFlags: 0 446 | m_CorrespondingSourceObject: {fileID: 0} 447 | m_PrefabInstance: {fileID: 0} 448 | m_PrefabAsset: {fileID: 0} 449 | m_GameObject: {fileID: 677547022} 450 | m_CullTransparentMesh: 0 451 | --- !u!1 &1171156409 452 | GameObject: 453 | m_ObjectHideFlags: 0 454 | m_CorrespondingSourceObject: {fileID: 0} 455 | m_PrefabInstance: {fileID: 0} 456 | m_PrefabAsset: {fileID: 0} 457 | serializedVersion: 6 458 | m_Component: 459 | - component: {fileID: 1171156410} 460 | - component: {fileID: 1171156412} 461 | - component: {fileID: 1171156411} 462 | m_Layer: 5 463 | m_Name: Arrow 464 | m_TagString: Untagged 465 | m_Icon: {fileID: 0} 466 | m_NavMeshLayer: 0 467 | m_StaticEditorFlags: 0 468 | m_IsActive: 1 469 | --- !u!224 &1171156410 470 | RectTransform: 471 | m_ObjectHideFlags: 0 472 | m_CorrespondingSourceObject: {fileID: 0} 473 | m_PrefabInstance: {fileID: 0} 474 | m_PrefabAsset: {fileID: 0} 475 | m_GameObject: {fileID: 1171156409} 476 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 477 | m_LocalPosition: {x: 0, y: 0, z: 0} 478 | m_LocalScale: {x: 1, y: 1, z: 1} 479 | m_Children: [] 480 | m_Father: {fileID: 74853758} 481 | m_RootOrder: 0 482 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 483 | m_AnchorMin: {x: 0.5, y: 0.5} 484 | m_AnchorMax: {x: 0.5, y: 0.5} 485 | m_AnchoredPosition: {x: 0, y: 100} 486 | m_SizeDelta: {x: 100, y: 100} 487 | m_Pivot: {x: 0.5, y: 0.5} 488 | --- !u!114 &1171156411 489 | MonoBehaviour: 490 | m_ObjectHideFlags: 0 491 | m_CorrespondingSourceObject: {fileID: 0} 492 | m_PrefabInstance: {fileID: 0} 493 | m_PrefabAsset: {fileID: 0} 494 | m_GameObject: {fileID: 1171156409} 495 | m_Enabled: 1 496 | m_EditorHideFlags: 0 497 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 498 | m_Name: 499 | m_EditorClassIdentifier: 500 | m_Material: {fileID: 0} 501 | m_Color: {r: 1, g: 1, b: 1, a: 1} 502 | m_RaycastTarget: 1 503 | m_Maskable: 1 504 | m_OnCullStateChanged: 505 | m_PersistentCalls: 506 | m_Calls: [] 507 | m_Sprite: {fileID: 21300000, guid: f07f71d07864d134d945f571422c9fba, type: 3} 508 | m_Type: 0 509 | m_PreserveAspect: 0 510 | m_FillCenter: 1 511 | m_FillMethod: 4 512 | m_FillAmount: 1 513 | m_FillClockwise: 1 514 | m_FillOrigin: 0 515 | m_UseSpriteMesh: 0 516 | m_PixelsPerUnitMultiplier: 1 517 | --- !u!222 &1171156412 518 | CanvasRenderer: 519 | m_ObjectHideFlags: 0 520 | m_CorrespondingSourceObject: {fileID: 0} 521 | m_PrefabInstance: {fileID: 0} 522 | m_PrefabAsset: {fileID: 0} 523 | m_GameObject: {fileID: 1171156409} 524 | m_CullTransparentMesh: 0 525 | --- !u!1 &1350011932 526 | GameObject: 527 | m_ObjectHideFlags: 0 528 | m_CorrespondingSourceObject: {fileID: 0} 529 | m_PrefabInstance: {fileID: 0} 530 | m_PrefabAsset: {fileID: 0} 531 | serializedVersion: 6 532 | m_Component: 533 | - component: {fileID: 1350011935} 534 | - component: {fileID: 1350011934} 535 | - component: {fileID: 1350011933} 536 | m_Layer: 0 537 | m_Name: Main Camera 538 | m_TagString: MainCamera 539 | m_Icon: {fileID: 0} 540 | m_NavMeshLayer: 0 541 | m_StaticEditorFlags: 0 542 | m_IsActive: 1 543 | --- !u!81 &1350011933 544 | AudioListener: 545 | m_ObjectHideFlags: 0 546 | m_CorrespondingSourceObject: {fileID: 0} 547 | m_PrefabInstance: {fileID: 0} 548 | m_PrefabAsset: {fileID: 0} 549 | m_GameObject: {fileID: 1350011932} 550 | m_Enabled: 1 551 | --- !u!20 &1350011934 552 | Camera: 553 | m_ObjectHideFlags: 0 554 | m_CorrespondingSourceObject: {fileID: 0} 555 | m_PrefabInstance: {fileID: 0} 556 | m_PrefabAsset: {fileID: 0} 557 | m_GameObject: {fileID: 1350011932} 558 | m_Enabled: 1 559 | serializedVersion: 2 560 | m_ClearFlags: 2 561 | m_BackGroundColor: {r: 0.04579032, g: 0.1981132, b: 0.13870606, a: 0} 562 | m_projectionMatrixMode: 1 563 | m_GateFitMode: 2 564 | m_FOVAxisMode: 0 565 | m_SensorSize: {x: 36, y: 24} 566 | m_LensShift: {x: 0, y: 0} 567 | m_FocalLength: 50 568 | m_NormalizedViewPortRect: 569 | serializedVersion: 2 570 | x: 0 571 | y: 0 572 | width: 1 573 | height: 1 574 | near clip plane: 0.3 575 | far clip plane: 1000 576 | field of view: 60 577 | orthographic: 0 578 | orthographic size: 5 579 | m_Depth: -1 580 | m_CullingMask: 581 | serializedVersion: 2 582 | m_Bits: 4294967295 583 | m_RenderingPath: -1 584 | m_TargetTexture: {fileID: 0} 585 | m_TargetDisplay: 0 586 | m_TargetEye: 3 587 | m_HDR: 1 588 | m_AllowMSAA: 1 589 | m_AllowDynamicResolution: 0 590 | m_ForceIntoRT: 0 591 | m_OcclusionCulling: 1 592 | m_StereoConvergence: 10 593 | m_StereoSeparation: 0.022 594 | --- !u!4 &1350011935 595 | Transform: 596 | m_ObjectHideFlags: 0 597 | m_CorrespondingSourceObject: {fileID: 0} 598 | m_PrefabInstance: {fileID: 0} 599 | m_PrefabAsset: {fileID: 0} 600 | m_GameObject: {fileID: 1350011932} 601 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 602 | m_LocalPosition: {x: 0, y: 1, z: -10} 603 | m_LocalScale: {x: 1, y: 1, z: 1} 604 | m_Children: [] 605 | m_Father: {fileID: 0} 606 | m_RootOrder: 0 607 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 608 | --- !u!1 &1536083966 609 | GameObject: 610 | m_ObjectHideFlags: 0 611 | m_CorrespondingSourceObject: {fileID: 0} 612 | m_PrefabInstance: {fileID: 0} 613 | m_PrefabAsset: {fileID: 0} 614 | serializedVersion: 6 615 | m_Component: 616 | - component: {fileID: 1536083968} 617 | - component: {fileID: 1536083967} 618 | m_Layer: 0 619 | m_Name: Directional Light 620 | m_TagString: Untagged 621 | m_Icon: {fileID: 0} 622 | m_NavMeshLayer: 0 623 | m_StaticEditorFlags: 0 624 | m_IsActive: 1 625 | --- !u!108 &1536083967 626 | Light: 627 | m_ObjectHideFlags: 0 628 | m_CorrespondingSourceObject: {fileID: 0} 629 | m_PrefabInstance: {fileID: 0} 630 | m_PrefabAsset: {fileID: 0} 631 | m_GameObject: {fileID: 1536083966} 632 | m_Enabled: 1 633 | serializedVersion: 10 634 | m_Type: 1 635 | m_Shape: 0 636 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 637 | m_Intensity: 1 638 | m_Range: 10 639 | m_SpotAngle: 30 640 | m_InnerSpotAngle: 21.80208 641 | m_CookieSize: 10 642 | m_Shadows: 643 | m_Type: 2 644 | m_Resolution: -1 645 | m_CustomResolution: -1 646 | m_Strength: 1 647 | m_Bias: 0.05 648 | m_NormalBias: 0.4 649 | m_NearPlane: 0.2 650 | m_CullingMatrixOverride: 651 | e00: 1 652 | e01: 0 653 | e02: 0 654 | e03: 0 655 | e10: 0 656 | e11: 1 657 | e12: 0 658 | e13: 0 659 | e20: 0 660 | e21: 0 661 | e22: 1 662 | e23: 0 663 | e30: 0 664 | e31: 0 665 | e32: 0 666 | e33: 1 667 | m_UseCullingMatrixOverride: 0 668 | m_Cookie: {fileID: 0} 669 | m_DrawHalo: 0 670 | m_Flare: {fileID: 0} 671 | m_RenderMode: 0 672 | m_CullingMask: 673 | serializedVersion: 2 674 | m_Bits: 4294967295 675 | m_RenderingLayerMask: 1 676 | m_Lightmapping: 4 677 | m_LightShadowCasterMode: 0 678 | m_AreaSize: {x: 1, y: 1} 679 | m_BounceIntensity: 1 680 | m_ColorTemperature: 6570 681 | m_UseColorTemperature: 0 682 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} 683 | m_UseBoundingSphereOverride: 0 684 | m_ShadowRadius: 0 685 | m_ShadowAngle: 0 686 | --- !u!4 &1536083968 687 | Transform: 688 | m_ObjectHideFlags: 0 689 | m_CorrespondingSourceObject: {fileID: 0} 690 | m_PrefabInstance: {fileID: 0} 691 | m_PrefabAsset: {fileID: 0} 692 | m_GameObject: {fileID: 1536083966} 693 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 694 | m_LocalPosition: {x: 0, y: 3, z: 0} 695 | m_LocalScale: {x: 1, y: 1, z: 1} 696 | m_Children: [] 697 | m_Father: {fileID: 0} 698 | m_RootOrder: 1 699 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 700 | --- !u!1 &1931663067 701 | GameObject: 702 | m_ObjectHideFlags: 0 703 | m_CorrespondingSourceObject: {fileID: 0} 704 | m_PrefabInstance: {fileID: 0} 705 | m_PrefabAsset: {fileID: 0} 706 | serializedVersion: 6 707 | m_Component: 708 | - component: {fileID: 1931663071} 709 | - component: {fileID: 1931663070} 710 | - component: {fileID: 1931663069} 711 | - component: {fileID: 1931663068} 712 | m_Layer: 5 713 | m_Name: Canvas 714 | m_TagString: Untagged 715 | m_Icon: {fileID: 0} 716 | m_NavMeshLayer: 0 717 | m_StaticEditorFlags: 0 718 | m_IsActive: 1 719 | --- !u!114 &1931663068 720 | MonoBehaviour: 721 | m_ObjectHideFlags: 0 722 | m_CorrespondingSourceObject: {fileID: 0} 723 | m_PrefabInstance: {fileID: 0} 724 | m_PrefabAsset: {fileID: 0} 725 | m_GameObject: {fileID: 1931663067} 726 | m_Enabled: 1 727 | m_EditorHideFlags: 0 728 | m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} 729 | m_Name: 730 | m_EditorClassIdentifier: 731 | m_IgnoreReversedGraphics: 1 732 | m_BlockingObjects: 0 733 | m_BlockingMask: 734 | serializedVersion: 2 735 | m_Bits: 4294967295 736 | --- !u!114 &1931663069 737 | MonoBehaviour: 738 | m_ObjectHideFlags: 0 739 | m_CorrespondingSourceObject: {fileID: 0} 740 | m_PrefabInstance: {fileID: 0} 741 | m_PrefabAsset: {fileID: 0} 742 | m_GameObject: {fileID: 1931663067} 743 | m_Enabled: 1 744 | m_EditorHideFlags: 0 745 | m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} 746 | m_Name: 747 | m_EditorClassIdentifier: 748 | m_UiScaleMode: 1 749 | m_ReferencePixelsPerUnit: 100 750 | m_ScaleFactor: 1 751 | m_ReferenceResolution: {x: 1920, y: 1080} 752 | m_ScreenMatchMode: 0 753 | m_MatchWidthOrHeight: 0.5 754 | m_PhysicalUnit: 3 755 | m_FallbackScreenDPI: 96 756 | m_DefaultSpriteDPI: 96 757 | m_DynamicPixelsPerUnit: 1 758 | --- !u!223 &1931663070 759 | Canvas: 760 | m_ObjectHideFlags: 0 761 | m_CorrespondingSourceObject: {fileID: 0} 762 | m_PrefabInstance: {fileID: 0} 763 | m_PrefabAsset: {fileID: 0} 764 | m_GameObject: {fileID: 1931663067} 765 | m_Enabled: 1 766 | serializedVersion: 3 767 | m_RenderMode: 0 768 | m_Camera: {fileID: 0} 769 | m_PlaneDistance: 100 770 | m_PixelPerfect: 0 771 | m_ReceivesEvents: 1 772 | m_OverrideSorting: 0 773 | m_OverridePixelPerfect: 0 774 | m_SortingBucketNormalizedSize: 0 775 | m_AdditionalShaderChannelsFlag: 0 776 | m_SortingLayerID: 0 777 | m_SortingOrder: 0 778 | m_TargetDisplay: 0 779 | --- !u!224 &1931663071 780 | RectTransform: 781 | m_ObjectHideFlags: 0 782 | m_CorrespondingSourceObject: {fileID: 0} 783 | m_PrefabInstance: {fileID: 0} 784 | m_PrefabAsset: {fileID: 0} 785 | m_GameObject: {fileID: 1931663067} 786 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 787 | m_LocalPosition: {x: 0, y: 0, z: 0} 788 | m_LocalScale: {x: 0, y: 0, z: 0} 789 | m_Children: 790 | - {fileID: 298502875} 791 | m_Father: {fileID: 0} 792 | m_RootOrder: 2 793 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 794 | m_AnchorMin: {x: 0, y: 0} 795 | m_AnchorMax: {x: 0, y: 0} 796 | m_AnchoredPosition: {x: 0, y: 0} 797 | m_SizeDelta: {x: 0, y: 0} 798 | m_Pivot: {x: 0, y: 0} 799 | -------------------------------------------------------------------------------- /RadialMenu_v1/Demo_v1.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3cef83dbd1e3a4e4da32b34b14e0eee1 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /RadialMenu_v1/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f25263a750481dc429bf020431833b7d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /RadialMenu_v1/Scripts/ClockwisePolarCoord.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | // 날짜 : 2021-04-26 PM 4:25:55 7 | // 작성자 : Rito 8 | 9 | namespace Rito.RadialMenu_v1 10 | { 11 | // 북쪽이 0도, 시계방향으로 각도가 커지는 시계 극좌표계의 좌표 12 | [Serializable] 13 | public struct ClockwisePolarCoord 14 | { 15 | /*********************************************************************** 16 | * Fields, Properties 17 | ***********************************************************************/ 18 | #region . 19 | /// 반지름 20 | public float Radius { get; set; } 21 | /// 0 ~ 360 각도 22 | public float Angle 23 | { 24 | get => _angle; 25 | set => _angle = ClampAngle(value); 26 | } 27 | private float _angle; 28 | 29 | #endregion 30 | /*********************************************************************** 31 | * Constructor 32 | ***********************************************************************/ 33 | #region . 34 | public ClockwisePolarCoord(float radius, float angle) 35 | { 36 | Radius = radius; 37 | _angle = ClampAngle(angle); 38 | } 39 | 40 | #endregion 41 | /*********************************************************************** 42 | * Private Static 43 | ***********************************************************************/ 44 | #region . 45 | /// 0 ~ 360 범위 내의 각도 값 리턴 46 | private static float ClampAngle(float angle) 47 | { 48 | angle %= 360f; 49 | if (angle < 0f) 50 | angle += 360f; 51 | return angle; 52 | } 53 | 54 | /// +x축 기준 반시계 각도 <-> +y축 기준 시계 각도 서로 변환 55 | private static float CovertAngle(float angle) 56 | => 90f - angle; 57 | 58 | /// Degree(0 ~ 360)로 Sin 계산 59 | private static float Sin(float angle) 60 | => Mathf.Sin(angle * Mathf.Deg2Rad); 61 | 62 | /// Degree(0 ~ 360)로 Cos 계산 63 | private static float Cos(float angle) 64 | => Mathf.Cos(angle * Mathf.Deg2Rad); 65 | 66 | #endregion 67 | /*********************************************************************** 68 | * Public Static 69 | ***********************************************************************/ 70 | #region . 71 | public static ClockwisePolarCoord Zero => new ClockwisePolarCoord(0f, 0f); 72 | public static ClockwisePolarCoord North => new ClockwisePolarCoord(1f, 0f); 73 | public static ClockwisePolarCoord East => new ClockwisePolarCoord(1f, 90f); 74 | public static ClockwisePolarCoord South => new ClockwisePolarCoord(1f, 180f); 75 | public static ClockwisePolarCoord West => new ClockwisePolarCoord(1f, 270f); 76 | 77 | /// 직교 좌표로부터 변환 78 | public static ClockwisePolarCoord FromVector2(in Vector2 vec) 79 | { 80 | if (vec == Vector2.zero) 81 | return Zero; 82 | 83 | float radius = vec.magnitude; 84 | float angle = Mathf.Atan2(vec.y, vec.x) * Mathf.Rad2Deg; 85 | 86 | return new ClockwisePolarCoord(radius, CovertAngle(angle)); 87 | } 88 | 89 | public static bool operator ==(ClockwisePolarCoord a, ClockwisePolarCoord b) 90 | { 91 | return Mathf.Approximately(a.Angle, b.Angle) && 92 | Mathf.Approximately(a.Radius, b.Radius); 93 | } 94 | 95 | public static bool operator !=(ClockwisePolarCoord a, ClockwisePolarCoord b) 96 | { 97 | return !(Mathf.Approximately(a.Angle, b.Angle) && 98 | Mathf.Approximately(a.Radius, b.Radius)); 99 | } 100 | 101 | #endregion 102 | /*********************************************************************** 103 | * Public 104 | ***********************************************************************/ 105 | #region . 106 | public ClockwisePolarCoord Normalized => new ClockwisePolarCoord(1f, Angle); 107 | 108 | public Vector2 ToVector2() 109 | { 110 | if (Radius == 0f && Angle == 0f) 111 | return Vector2.zero; 112 | 113 | float angle = CovertAngle(Angle); 114 | return new Vector2(Radius * Cos(angle), Radius * Sin(angle)); 115 | } 116 | 117 | public override string ToString() 118 | => $"({Radius}, {Angle})"; 119 | 120 | public override bool Equals(object obj) 121 | { 122 | if(obj == null) return false; 123 | 124 | if (obj is ClockwisePolarCoord other) 125 | { 126 | return this == other; 127 | } 128 | else 129 | return false; 130 | } 131 | 132 | public override int GetHashCode() 133 | { 134 | return base.GetHashCode(); 135 | } 136 | 137 | #endregion 138 | } 139 | } -------------------------------------------------------------------------------- /RadialMenu_v1/Scripts/ClockwisePolarCoord.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 42ac825e6e20798449154c3f4174393c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /RadialMenu_v1/Scripts/RadialMenu.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using UnityEngine.UI; 6 | 7 | // 날짜 : 2021-04-26 PM 2:47:40 8 | // 작성자 : Rito 9 | 10 | namespace Rito.RadialMenu_v1 11 | { 12 | [DisallowMultipleComponent] 13 | public class RadialMenu : MonoBehaviour 14 | { 15 | [Header("Options")] 16 | [Range(2, 16)] 17 | [SerializeField] private int _pieceCount = 8; // 조각 개수 18 | 19 | [Range(0.2f, 1f)] 20 | [SerializeField] private float _appearanceDuration = .3f; // 등장에 걸리는 시간 21 | [Range(0.2f, 1f)] 22 | [SerializeField] private float _disappearanceDuration = .3f; // 사라지는데 걸리는 시간 23 | [SerializeField] private float _pieceDist = 180f; // 중앙으로부터 각 조각의 거리 24 | 25 | [Range(0.01f, 0.5f)] 26 | [SerializeField] private float _centerDistThreshold = 0.1f; // 중앙에서부터의 마우스 거리 기준 27 | 28 | [Header("Objects")] 29 | [SerializeField] private GameObject _pieceSample; // 복제될 조각 게임오브젝트 30 | [SerializeField] private RectTransform _arrow; // 화살표 이미지의 부모 트랜스폼 31 | 32 | // 복제된 조각들 33 | private Image[] _pieceImages; 34 | private RectTransform[] _pieceRects; 35 | private Vector2[] _pieceDirections; // 각 조각이 위치할 방향의 벡터 36 | 37 | private float _arrowRotationZ; 38 | 39 | [SerializeField, Header("Debug")] 40 | private int _selectedIndex = -1; 41 | 42 | private static readonly Color SelectedPieceColor = new Color(1f, 1f, 1f, 1f); 43 | private static readonly Color NotSelectedPieceColor = new Color(1f, 1f, 1f, 0.3f); 44 | 45 | /*********************************************************************** 46 | * Unity Events 47 | ***********************************************************************/ 48 | #region . 49 | 50 | private void Awake() 51 | { 52 | InitPieceImages(); 53 | InitPieceDirections(); 54 | HideGameObject(); 55 | } 56 | 57 | #endregion 58 | /*********************************************************************** 59 | * Private Methods 60 | ***********************************************************************/ 61 | #region . 62 | /// 조각 샘플 복제하여 조각들 생성 63 | private void InitPieceImages() 64 | { 65 | _pieceSample.SetActive(true); 66 | 67 | _pieceImages = new Image[_pieceCount]; 68 | _pieceRects = new RectTransform[_pieceCount]; 69 | 70 | for (int i = 0; i < _pieceCount; i++) 71 | { 72 | // 조각 복제 73 | var clone = Instantiate(_pieceSample, transform); 74 | clone.name = $"Piece {i}"; 75 | 76 | // Image, RectTransform 가져와 배열에 초기화 77 | _pieceImages[i] = clone.GetComponent(); 78 | _pieceRects[i] = _pieceImages[i].rectTransform; 79 | } 80 | 81 | _pieceSample.SetActive(false); 82 | } 83 | 84 | /// 시계 극좌표계를 이용해 각 조각들의 방향벡터 계산 85 | private void InitPieceDirections() 86 | { 87 | _pieceDirections = new Vector2[_pieceCount]; 88 | 89 | float angle = 360f / _pieceCount; 90 | 91 | for (int i = 0; i < _pieceCount; i++) 92 | { 93 | _pieceDirections[i] = new ClockwisePolarCoord(1f, angle * i).ToVector2(); 94 | } 95 | } 96 | 97 | private void ShowGameObject() 98 | { 99 | gameObject.SetActive(true); 100 | } 101 | 102 | private void HideGameObject() 103 | { 104 | gameObject.SetActive(false); 105 | } 106 | 107 | /// 모든 조각의 색상 변경 108 | private void ResetAllPieceColors() 109 | { 110 | for (int i = 0; i < _pieceCount; i++) 111 | { 112 | _pieceImages[i].color = NotSelectedPieceColor; 113 | } 114 | } 115 | 116 | /// 현재 선택된 조각의 색상 변경 117 | private void SetSelectedPieceColors() 118 | { 119 | ResetAllPieceColors(); 120 | if(_selectedIndex >= 0) 121 | _pieceImages[_selectedIndex].color = SelectedPieceColor; 122 | } 123 | 124 | /// 화살표 이미지의 회전 설정 125 | private void SetArrowRotation(bool show) 126 | { 127 | _arrow.gameObject.SetActive(show); 128 | 129 | if (show) 130 | { 131 | _arrow.eulerAngles = Vector3.forward * _arrowRotationZ; 132 | } 133 | } 134 | #endregion 135 | /*********************************************************************** 136 | * Public Methods 137 | ***********************************************************************/ 138 | #region . 139 | 140 | /// 등장 141 | public void Show() 142 | { 143 | ShowGameObject(); 144 | ResetAllPieceColors(); 145 | SetArrowRotation(false); 146 | _selectedIndex = -1; 147 | 148 | StartCoroutine(nameof(MainRoutine)); 149 | } 150 | 151 | /// 사라지면서 인덱스 리턴 152 | public int Hide() 153 | { 154 | StopCoroutine(nameof(MainRoutine)); 155 | HideGameObject(); 156 | 157 | return _selectedIndex; 158 | } 159 | 160 | /// 각각 피스 이미지(스프라이트) 등록 161 | public void SetPieceImageSprites(Sprite[] sprites) 162 | { 163 | int i = 0; 164 | int len = sprites.Length; 165 | for (; i < _pieceCount && i < len; i++) 166 | { 167 | if (sprites[i] != null) 168 | { 169 | _pieceImages[i].sprite = sprites[i]; 170 | } 171 | } 172 | } 173 | 174 | #endregion 175 | /*********************************************************************** 176 | * Coroutines 177 | ***********************************************************************/ 178 | #region . 179 | private IEnumerator MainRoutine() 180 | { 181 | float t = 0; 182 | int prevSelectedIndex = -1; 183 | 184 | // 1. 등장 185 | while (t < _appearanceDuration) 186 | { 187 | // 중앙으로부터의 거리 계산 188 | float dist = t * _pieceDist / _appearanceDuration; 189 | 190 | // 각 조각들을 중앙에서부터 서서히 이동 191 | for (int i = 0; i < _pieceCount; i++) 192 | { 193 | _pieceRects[i].anchoredPosition = _pieceDirections[i] * dist; 194 | } 195 | 196 | t += Time.deltaTime; 197 | yield return null; 198 | } 199 | 200 | // 2. 유지 201 | while (true) 202 | { 203 | bool showArrow = false; 204 | 205 | // 마우스의 스크린 내 좌표(0.0 ~ 1.0 범위) 206 | var mViewportPos = Camera.main.ScreenToViewportPoint(Input.mousePosition); 207 | 208 | // 스크린의 중앙을 (0, 0)으로 하는 마우스 좌표(-0.5 ~ 0.5 범위) 209 | var mPos = new Vector2(mViewportPos.x - 0.5f, mViewportPos.y - 0.5f); 210 | 211 | // 중앙에서 마우스까지의 거리 212 | var mDist = new Vector2(mPos.x * Screen.width / Screen.height, mPos.y).magnitude; 213 | 214 | if (mDist < _centerDistThreshold) 215 | { 216 | _selectedIndex = -1; 217 | } 218 | else 219 | { 220 | // 마우스 위치의 직교 좌표를 시계 극좌표로 변환 221 | ClockwisePolarCoord mousePC = ClockwisePolarCoord.FromVector2(mPos); 222 | 223 | // Arrow 회전 설정 224 | _arrowRotationZ = -mousePC.Angle; 225 | showArrow = true; 226 | 227 | // 각도로부터 배열 인덱스 계산 228 | float fIndex = (mousePC.Angle / 360f) * _pieceCount; 229 | _selectedIndex = Mathf.RoundToInt(fIndex) % _pieceCount; 230 | } 231 | 232 | // 선택된 조각 색상 변경 233 | if(prevSelectedIndex != _selectedIndex) 234 | SetSelectedPieceColors(); 235 | 236 | // 화살표 회전 237 | SetArrowRotation(showArrow); 238 | 239 | yield return null; 240 | 241 | prevSelectedIndex = _selectedIndex; 242 | } 243 | } 244 | 245 | #endregion 246 | } 247 | } -------------------------------------------------------------------------------- /RadialMenu_v1/Scripts/RadialMenu.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3cf1398004eac7d48aa212ef965c5d23 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /RadialMenu_v1/Sprites.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 77f8e560a62556949b9f7ab6f66fb315 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /RadialMenu_v1/Sprites/Arrow_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v1/Sprites/Arrow_512.png -------------------------------------------------------------------------------- /RadialMenu_v1/Sprites/Arrow_512.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b7dba931503aba4bbe66f1317bc57d0 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 512 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 512 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v1/Sprites/Circle_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v1/Sprites/Circle_512.png -------------------------------------------------------------------------------- /RadialMenu_v1/Sprites/Circle_512.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ac9562bd1030964b8fd6c52ccb892d0 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 512 65 | resizeAlgorithm: 0 66 | textureFormat: 4 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 512 77 | resizeAlgorithm: 0 78 | textureFormat: 4 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v1/Test_RadialMenu.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | // 날짜 : 2021-04-26 PM 3:12:50 7 | // 작성자 : Rito 8 | 9 | namespace Rito.RadialMenu_v1.Test 10 | { 11 | public class Test_RadialMenu : MonoBehaviour 12 | { 13 | public RadialMenu radialMenu; 14 | public KeyCode key = KeyCode.G; 15 | 16 | private void Update() 17 | { 18 | if (Input.GetKeyDown(key)) 19 | radialMenu.Show(); 20 | else if (Input.GetKeyUp(key)) 21 | { 22 | int selected = radialMenu.Hide(); 23 | Debug.Log($"Selected : {selected}"); 24 | } 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /RadialMenu_v1/Test_RadialMenu.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c955a632f05c96b4aa232dd398f11503 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /RadialMenu_v2.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 043b4a6725163fb4a936600d0bce06e3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /RadialMenu_v2/Demo_v2.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 11 47 | m_GIWorkflowMode: 1 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 12 58 | m_Resolution: 2 59 | m_BakeResolution: 40 60 | m_AtlasSize: 1024 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_ExtractAmbientOcclusion: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 2 75 | m_BakeBackend: 1 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 512 79 | m_PVRBounces: 2 80 | m_PVREnvironmentSampleCount: 256 81 | m_PVREnvironmentReferencePointCount: 2048 82 | m_PVRFilteringMode: 1 83 | m_PVRDenoiserTypeDirect: 1 84 | m_PVRDenoiserTypeIndirect: 1 85 | m_PVRDenoiserTypeAO: 1 86 | m_PVRFilterTypeDirect: 0 87 | m_PVRFilterTypeIndirect: 0 88 | m_PVRFilterTypeAO: 0 89 | m_PVREnvironmentMIS: 1 90 | m_PVRCulling: 1 91 | m_PVRFilteringGaussRadiusDirect: 1 92 | m_PVRFilteringGaussRadiusIndirect: 5 93 | m_PVRFilteringGaussRadiusAO: 2 94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 96 | m_PVRFilteringAtrousPositionSigmaAO: 1 97 | m_ExportTrainingData: 0 98 | m_TrainingDataDestination: TrainingData 99 | m_LightProbeSampleCountMultiplier: 4 100 | m_LightingDataAsset: {fileID: 0} 101 | m_UseShadowmask: 1 102 | --- !u!196 &4 103 | NavMeshSettings: 104 | serializedVersion: 2 105 | m_ObjectHideFlags: 0 106 | m_BuildSettings: 107 | serializedVersion: 2 108 | agentTypeID: 0 109 | agentRadius: 0.5 110 | agentHeight: 2 111 | agentSlope: 45 112 | agentClimb: 0.4 113 | ledgeDropHeight: 0 114 | maxJumpAcrossDistance: 0 115 | minRegionArea: 2 116 | manualCellSize: 0 117 | cellSize: 0.16666667 118 | manualTileSize: 0 119 | tileSize: 256 120 | accuratePlacement: 0 121 | debug: 122 | m_Flags: 0 123 | m_NavMeshData: {fileID: 0} 124 | --- !u!1 &74853757 125 | GameObject: 126 | m_ObjectHideFlags: 0 127 | m_CorrespondingSourceObject: {fileID: 0} 128 | m_PrefabInstance: {fileID: 0} 129 | m_PrefabAsset: {fileID: 0} 130 | serializedVersion: 6 131 | m_Component: 132 | - component: {fileID: 74853758} 133 | - component: {fileID: 74853760} 134 | m_Layer: 5 135 | m_Name: Arrow Holder 136 | m_TagString: Untagged 137 | m_Icon: {fileID: 0} 138 | m_NavMeshLayer: 0 139 | m_StaticEditorFlags: 0 140 | m_IsActive: 1 141 | --- !u!224 &74853758 142 | RectTransform: 143 | m_ObjectHideFlags: 0 144 | m_CorrespondingSourceObject: {fileID: 0} 145 | m_PrefabInstance: {fileID: 0} 146 | m_PrefabAsset: {fileID: 0} 147 | m_GameObject: {fileID: 74853757} 148 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 149 | m_LocalPosition: {x: 0, y: 0, z: 0} 150 | m_LocalScale: {x: 1, y: 1, z: 1} 151 | m_Children: 152 | - {fileID: 1171156410} 153 | m_Father: {fileID: 298502875} 154 | m_RootOrder: 1 155 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 156 | m_AnchorMin: {x: 0.5, y: 0.5} 157 | m_AnchorMax: {x: 0.5, y: 0.5} 158 | m_AnchoredPosition: {x: 0, y: 0} 159 | m_SizeDelta: {x: 100, y: 100} 160 | m_Pivot: {x: 0.5, y: 0.5} 161 | --- !u!222 &74853760 162 | CanvasRenderer: 163 | m_ObjectHideFlags: 0 164 | m_CorrespondingSourceObject: {fileID: 0} 165 | m_PrefabInstance: {fileID: 0} 166 | m_PrefabAsset: {fileID: 0} 167 | m_GameObject: {fileID: 74853757} 168 | m_CullTransparentMesh: 0 169 | --- !u!1 &298502874 170 | GameObject: 171 | m_ObjectHideFlags: 0 172 | m_CorrespondingSourceObject: {fileID: 0} 173 | m_PrefabInstance: {fileID: 0} 174 | m_PrefabAsset: {fileID: 0} 175 | serializedVersion: 6 176 | m_Component: 177 | - component: {fileID: 298502875} 178 | - component: {fileID: 298502877} 179 | - component: {fileID: 298502876} 180 | - component: {fileID: 298502878} 181 | m_Layer: 5 182 | m_Name: Radial Menu Panel 183 | m_TagString: Untagged 184 | m_Icon: {fileID: 0} 185 | m_NavMeshLayer: 0 186 | m_StaticEditorFlags: 0 187 | m_IsActive: 1 188 | --- !u!224 &298502875 189 | RectTransform: 190 | m_ObjectHideFlags: 0 191 | m_CorrespondingSourceObject: {fileID: 0} 192 | m_PrefabInstance: {fileID: 0} 193 | m_PrefabAsset: {fileID: 0} 194 | m_GameObject: {fileID: 298502874} 195 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 196 | m_LocalPosition: {x: 0, y: 0, z: 0} 197 | m_LocalScale: {x: 1, y: 1, z: 1} 198 | m_Children: 199 | - {fileID: 1729358149} 200 | - {fileID: 74853758} 201 | m_Father: {fileID: 1931663071} 202 | m_RootOrder: 0 203 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 204 | m_AnchorMin: {x: 0, y: 0} 205 | m_AnchorMax: {x: 1, y: 1} 206 | m_AnchoredPosition: {x: 0, y: 0} 207 | m_SizeDelta: {x: 0, y: 0} 208 | m_Pivot: {x: 0.5, y: 0.5} 209 | --- !u!114 &298502876 210 | MonoBehaviour: 211 | m_ObjectHideFlags: 0 212 | m_CorrespondingSourceObject: {fileID: 0} 213 | m_PrefabInstance: {fileID: 0} 214 | m_PrefabAsset: {fileID: 0} 215 | m_GameObject: {fileID: 298502874} 216 | m_Enabled: 0 217 | m_EditorHideFlags: 0 218 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 219 | m_Name: 220 | m_EditorClassIdentifier: 221 | m_Material: {fileID: 0} 222 | m_Color: {r: 1, g: 1, b: 1, a: 0.392} 223 | m_RaycastTarget: 1 224 | m_Maskable: 1 225 | m_OnCullStateChanged: 226 | m_PersistentCalls: 227 | m_Calls: [] 228 | m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} 229 | m_Type: 1 230 | m_PreserveAspect: 0 231 | m_FillCenter: 1 232 | m_FillMethod: 4 233 | m_FillAmount: 1 234 | m_FillClockwise: 1 235 | m_FillOrigin: 0 236 | m_UseSpriteMesh: 0 237 | m_PixelsPerUnitMultiplier: 1 238 | --- !u!222 &298502877 239 | CanvasRenderer: 240 | m_ObjectHideFlags: 0 241 | m_CorrespondingSourceObject: {fileID: 0} 242 | m_PrefabInstance: {fileID: 0} 243 | m_PrefabAsset: {fileID: 0} 244 | m_GameObject: {fileID: 298502874} 245 | m_CullTransparentMesh: 0 246 | --- !u!114 &298502878 247 | MonoBehaviour: 248 | m_ObjectHideFlags: 0 249 | m_CorrespondingSourceObject: {fileID: 0} 250 | m_PrefabInstance: {fileID: 0} 251 | m_PrefabAsset: {fileID: 0} 252 | m_GameObject: {fileID: 298502874} 253 | m_Enabled: 1 254 | m_EditorHideFlags: 0 255 | m_Script: {fileID: 11500000, guid: fc0731cd2b32c1c43bacb728fa1ac79e, type: 3} 256 | m_Name: 257 | m_EditorClassIdentifier: 258 | _pieceCount: 8 259 | _appearanceDuration: 0.3 260 | _disppearanceDuration: 0.3 261 | _pieceDist: 180 262 | _centerDistThreshold: 0.1 263 | _pieceSample: {fileID: 1729358148} 264 | _arrow: {fileID: 74853758} 265 | _selectedIndex: -1 266 | _appearanceType: 1 267 | _mainType: 0 268 | _disappearanceType: 5 269 | --- !u!1 &383198611 270 | GameObject: 271 | m_ObjectHideFlags: 0 272 | m_CorrespondingSourceObject: {fileID: 0} 273 | m_PrefabInstance: {fileID: 0} 274 | m_PrefabAsset: {fileID: 0} 275 | serializedVersion: 6 276 | m_Component: 277 | - component: {fileID: 383198613} 278 | - component: {fileID: 383198612} 279 | m_Layer: 0 280 | m_Name: Tester 281 | m_TagString: Untagged 282 | m_Icon: {fileID: 0} 283 | m_NavMeshLayer: 0 284 | m_StaticEditorFlags: 0 285 | m_IsActive: 1 286 | --- !u!114 &383198612 287 | MonoBehaviour: 288 | m_ObjectHideFlags: 0 289 | m_CorrespondingSourceObject: {fileID: 0} 290 | m_PrefabInstance: {fileID: 0} 291 | m_PrefabAsset: {fileID: 0} 292 | m_GameObject: {fileID: 383198611} 293 | m_Enabled: 1 294 | m_EditorHideFlags: 0 295 | m_Script: {fileID: 11500000, guid: 9b32687a0907ba94e9504bba4e865114, type: 3} 296 | m_Name: 297 | m_EditorClassIdentifier: 298 | radialMenu: {fileID: 298502878} 299 | key: 103 300 | sprites: 301 | - {fileID: 21300000, guid: 16132416d2ccec84893381a90e4c35f6, type: 3} 302 | - {fileID: 21300000, guid: bf019b8577d32d741be9591a29f49023, type: 3} 303 | - {fileID: 21300000, guid: 97d2f7e77013fe6468b9ad5eb9072352, type: 3} 304 | - {fileID: 21300000, guid: 246449bc25e104a4e8c7707288183a15, type: 3} 305 | - {fileID: 21300000, guid: 7b58a3faa0efc9049b2864eb390a1b47, type: 3} 306 | - {fileID: 21300000, guid: f41ee47a4a4798a4580bc29884b4bc0b, type: 3} 307 | - {fileID: 21300000, guid: ae7548c8d8f420f4cad83e35df995636, type: 3} 308 | - {fileID: 21300000, guid: f15382fad07d97540ad128895b7a9c12, type: 3} 309 | --- !u!4 &383198613 310 | Transform: 311 | m_ObjectHideFlags: 0 312 | m_CorrespondingSourceObject: {fileID: 0} 313 | m_PrefabInstance: {fileID: 0} 314 | m_PrefabAsset: {fileID: 0} 315 | m_GameObject: {fileID: 383198611} 316 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 317 | m_LocalPosition: {x: 0, y: 0, z: 0} 318 | m_LocalScale: {x: 1, y: 1, z: 1} 319 | m_Children: [] 320 | m_Father: {fileID: 0} 321 | m_RootOrder: 4 322 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 323 | --- !u!1 &473142368 324 | GameObject: 325 | m_ObjectHideFlags: 0 326 | m_CorrespondingSourceObject: {fileID: 0} 327 | m_PrefabInstance: {fileID: 0} 328 | m_PrefabAsset: {fileID: 0} 329 | serializedVersion: 6 330 | m_Component: 331 | - component: {fileID: 473142371} 332 | - component: {fileID: 473142370} 333 | - component: {fileID: 473142369} 334 | m_Layer: 0 335 | m_Name: EventSystem 336 | m_TagString: Untagged 337 | m_Icon: {fileID: 0} 338 | m_NavMeshLayer: 0 339 | m_StaticEditorFlags: 0 340 | m_IsActive: 1 341 | --- !u!114 &473142369 342 | MonoBehaviour: 343 | m_ObjectHideFlags: 0 344 | m_CorrespondingSourceObject: {fileID: 0} 345 | m_PrefabInstance: {fileID: 0} 346 | m_PrefabAsset: {fileID: 0} 347 | m_GameObject: {fileID: 473142368} 348 | m_Enabled: 1 349 | m_EditorHideFlags: 0 350 | m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} 351 | m_Name: 352 | m_EditorClassIdentifier: 353 | m_HorizontalAxis: Horizontal 354 | m_VerticalAxis: Vertical 355 | m_SubmitButton: Submit 356 | m_CancelButton: Cancel 357 | m_InputActionsPerSecond: 10 358 | m_RepeatDelay: 0.5 359 | m_ForceModuleActive: 0 360 | --- !u!114 &473142370 361 | MonoBehaviour: 362 | m_ObjectHideFlags: 0 363 | m_CorrespondingSourceObject: {fileID: 0} 364 | m_PrefabInstance: {fileID: 0} 365 | m_PrefabAsset: {fileID: 0} 366 | m_GameObject: {fileID: 473142368} 367 | m_Enabled: 1 368 | m_EditorHideFlags: 0 369 | m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} 370 | m_Name: 371 | m_EditorClassIdentifier: 372 | m_FirstSelected: {fileID: 0} 373 | m_sendNavigationEvents: 1 374 | m_DragThreshold: 10 375 | --- !u!4 &473142371 376 | Transform: 377 | m_ObjectHideFlags: 0 378 | m_CorrespondingSourceObject: {fileID: 0} 379 | m_PrefabInstance: {fileID: 0} 380 | m_PrefabAsset: {fileID: 0} 381 | m_GameObject: {fileID: 473142368} 382 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 383 | m_LocalPosition: {x: 0, y: 0, z: 0} 384 | m_LocalScale: {x: 1, y: 1, z: 1} 385 | m_Children: [] 386 | m_Father: {fileID: 0} 387 | m_RootOrder: 3 388 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 389 | --- !u!1 &1171156409 390 | GameObject: 391 | m_ObjectHideFlags: 0 392 | m_CorrespondingSourceObject: {fileID: 0} 393 | m_PrefabInstance: {fileID: 0} 394 | m_PrefabAsset: {fileID: 0} 395 | serializedVersion: 6 396 | m_Component: 397 | - component: {fileID: 1171156410} 398 | - component: {fileID: 1171156412} 399 | - component: {fileID: 1171156411} 400 | m_Layer: 5 401 | m_Name: Arrow 402 | m_TagString: Untagged 403 | m_Icon: {fileID: 0} 404 | m_NavMeshLayer: 0 405 | m_StaticEditorFlags: 0 406 | m_IsActive: 1 407 | --- !u!224 &1171156410 408 | RectTransform: 409 | m_ObjectHideFlags: 0 410 | m_CorrespondingSourceObject: {fileID: 0} 411 | m_PrefabInstance: {fileID: 0} 412 | m_PrefabAsset: {fileID: 0} 413 | m_GameObject: {fileID: 1171156409} 414 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 415 | m_LocalPosition: {x: 0, y: 0, z: 0} 416 | m_LocalScale: {x: 1, y: 1, z: 1} 417 | m_Children: [] 418 | m_Father: {fileID: 74853758} 419 | m_RootOrder: 0 420 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 421 | m_AnchorMin: {x: 0.5, y: 0.5} 422 | m_AnchorMax: {x: 0.5, y: 0.5} 423 | m_AnchoredPosition: {x: 0, y: 100} 424 | m_SizeDelta: {x: 100, y: 100} 425 | m_Pivot: {x: 0.5, y: 0.5} 426 | --- !u!114 &1171156411 427 | MonoBehaviour: 428 | m_ObjectHideFlags: 0 429 | m_CorrespondingSourceObject: {fileID: 0} 430 | m_PrefabInstance: {fileID: 0} 431 | m_PrefabAsset: {fileID: 0} 432 | m_GameObject: {fileID: 1171156409} 433 | m_Enabled: 1 434 | m_EditorHideFlags: 0 435 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 436 | m_Name: 437 | m_EditorClassIdentifier: 438 | m_Material: {fileID: 0} 439 | m_Color: {r: 1, g: 1, b: 1, a: 1} 440 | m_RaycastTarget: 1 441 | m_Maskable: 1 442 | m_OnCullStateChanged: 443 | m_PersistentCalls: 444 | m_Calls: [] 445 | m_Sprite: {fileID: 21300000, guid: f07f71d07864d134d945f571422c9fba, type: 3} 446 | m_Type: 0 447 | m_PreserveAspect: 0 448 | m_FillCenter: 1 449 | m_FillMethod: 4 450 | m_FillAmount: 1 451 | m_FillClockwise: 1 452 | m_FillOrigin: 0 453 | m_UseSpriteMesh: 0 454 | m_PixelsPerUnitMultiplier: 1 455 | --- !u!222 &1171156412 456 | CanvasRenderer: 457 | m_ObjectHideFlags: 0 458 | m_CorrespondingSourceObject: {fileID: 0} 459 | m_PrefabInstance: {fileID: 0} 460 | m_PrefabAsset: {fileID: 0} 461 | m_GameObject: {fileID: 1171156409} 462 | m_CullTransparentMesh: 0 463 | --- !u!1 &1350011932 464 | GameObject: 465 | m_ObjectHideFlags: 0 466 | m_CorrespondingSourceObject: {fileID: 0} 467 | m_PrefabInstance: {fileID: 0} 468 | m_PrefabAsset: {fileID: 0} 469 | serializedVersion: 6 470 | m_Component: 471 | - component: {fileID: 1350011935} 472 | - component: {fileID: 1350011934} 473 | - component: {fileID: 1350011933} 474 | m_Layer: 0 475 | m_Name: Main Camera 476 | m_TagString: MainCamera 477 | m_Icon: {fileID: 0} 478 | m_NavMeshLayer: 0 479 | m_StaticEditorFlags: 0 480 | m_IsActive: 1 481 | --- !u!81 &1350011933 482 | AudioListener: 483 | m_ObjectHideFlags: 0 484 | m_CorrespondingSourceObject: {fileID: 0} 485 | m_PrefabInstance: {fileID: 0} 486 | m_PrefabAsset: {fileID: 0} 487 | m_GameObject: {fileID: 1350011932} 488 | m_Enabled: 1 489 | --- !u!20 &1350011934 490 | Camera: 491 | m_ObjectHideFlags: 0 492 | m_CorrespondingSourceObject: {fileID: 0} 493 | m_PrefabInstance: {fileID: 0} 494 | m_PrefabAsset: {fileID: 0} 495 | m_GameObject: {fileID: 1350011932} 496 | m_Enabled: 1 497 | serializedVersion: 2 498 | m_ClearFlags: 2 499 | m_BackGroundColor: {r: 0.006852974, g: 0.02868812, b: 0.13207549, a: 0} 500 | m_projectionMatrixMode: 1 501 | m_GateFitMode: 2 502 | m_FOVAxisMode: 0 503 | m_SensorSize: {x: 36, y: 24} 504 | m_LensShift: {x: 0, y: 0} 505 | m_FocalLength: 50 506 | m_NormalizedViewPortRect: 507 | serializedVersion: 2 508 | x: 0 509 | y: 0 510 | width: 1 511 | height: 1 512 | near clip plane: 0.3 513 | far clip plane: 1000 514 | field of view: 60 515 | orthographic: 0 516 | orthographic size: 5 517 | m_Depth: -1 518 | m_CullingMask: 519 | serializedVersion: 2 520 | m_Bits: 4294967295 521 | m_RenderingPath: -1 522 | m_TargetTexture: {fileID: 0} 523 | m_TargetDisplay: 0 524 | m_TargetEye: 3 525 | m_HDR: 1 526 | m_AllowMSAA: 1 527 | m_AllowDynamicResolution: 0 528 | m_ForceIntoRT: 0 529 | m_OcclusionCulling: 1 530 | m_StereoConvergence: 10 531 | m_StereoSeparation: 0.022 532 | --- !u!4 &1350011935 533 | Transform: 534 | m_ObjectHideFlags: 0 535 | m_CorrespondingSourceObject: {fileID: 0} 536 | m_PrefabInstance: {fileID: 0} 537 | m_PrefabAsset: {fileID: 0} 538 | m_GameObject: {fileID: 1350011932} 539 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 540 | m_LocalPosition: {x: 0, y: 1, z: -10} 541 | m_LocalScale: {x: 1, y: 1, z: 1} 542 | m_Children: [] 543 | m_Father: {fileID: 0} 544 | m_RootOrder: 0 545 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 546 | --- !u!1 &1536083966 547 | GameObject: 548 | m_ObjectHideFlags: 0 549 | m_CorrespondingSourceObject: {fileID: 0} 550 | m_PrefabInstance: {fileID: 0} 551 | m_PrefabAsset: {fileID: 0} 552 | serializedVersion: 6 553 | m_Component: 554 | - component: {fileID: 1536083968} 555 | - component: {fileID: 1536083967} 556 | m_Layer: 0 557 | m_Name: Directional Light 558 | m_TagString: Untagged 559 | m_Icon: {fileID: 0} 560 | m_NavMeshLayer: 0 561 | m_StaticEditorFlags: 0 562 | m_IsActive: 1 563 | --- !u!108 &1536083967 564 | Light: 565 | m_ObjectHideFlags: 0 566 | m_CorrespondingSourceObject: {fileID: 0} 567 | m_PrefabInstance: {fileID: 0} 568 | m_PrefabAsset: {fileID: 0} 569 | m_GameObject: {fileID: 1536083966} 570 | m_Enabled: 1 571 | serializedVersion: 10 572 | m_Type: 1 573 | m_Shape: 0 574 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 575 | m_Intensity: 1 576 | m_Range: 10 577 | m_SpotAngle: 30 578 | m_InnerSpotAngle: 21.80208 579 | m_CookieSize: 10 580 | m_Shadows: 581 | m_Type: 2 582 | m_Resolution: -1 583 | m_CustomResolution: -1 584 | m_Strength: 1 585 | m_Bias: 0.05 586 | m_NormalBias: 0.4 587 | m_NearPlane: 0.2 588 | m_CullingMatrixOverride: 589 | e00: 1 590 | e01: 0 591 | e02: 0 592 | e03: 0 593 | e10: 0 594 | e11: 1 595 | e12: 0 596 | e13: 0 597 | e20: 0 598 | e21: 0 599 | e22: 1 600 | e23: 0 601 | e30: 0 602 | e31: 0 603 | e32: 0 604 | e33: 1 605 | m_UseCullingMatrixOverride: 0 606 | m_Cookie: {fileID: 0} 607 | m_DrawHalo: 0 608 | m_Flare: {fileID: 0} 609 | m_RenderMode: 0 610 | m_CullingMask: 611 | serializedVersion: 2 612 | m_Bits: 4294967295 613 | m_RenderingLayerMask: 1 614 | m_Lightmapping: 4 615 | m_LightShadowCasterMode: 0 616 | m_AreaSize: {x: 1, y: 1} 617 | m_BounceIntensity: 1 618 | m_ColorTemperature: 6570 619 | m_UseColorTemperature: 0 620 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} 621 | m_UseBoundingSphereOverride: 0 622 | m_ShadowRadius: 0 623 | m_ShadowAngle: 0 624 | --- !u!4 &1536083968 625 | Transform: 626 | m_ObjectHideFlags: 0 627 | m_CorrespondingSourceObject: {fileID: 0} 628 | m_PrefabInstance: {fileID: 0} 629 | m_PrefabAsset: {fileID: 0} 630 | m_GameObject: {fileID: 1536083966} 631 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 632 | m_LocalPosition: {x: 0, y: 3, z: 0} 633 | m_LocalScale: {x: 1, y: 1, z: 1} 634 | m_Children: [] 635 | m_Father: {fileID: 0} 636 | m_RootOrder: 1 637 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 638 | --- !u!1 &1729358148 639 | GameObject: 640 | m_ObjectHideFlags: 0 641 | m_CorrespondingSourceObject: {fileID: 0} 642 | m_PrefabInstance: {fileID: 0} 643 | m_PrefabAsset: {fileID: 0} 644 | serializedVersion: 6 645 | m_Component: 646 | - component: {fileID: 1729358149} 647 | - component: {fileID: 1729358151} 648 | - component: {fileID: 1729358150} 649 | m_Layer: 5 650 | m_Name: Piece 651 | m_TagString: Untagged 652 | m_Icon: {fileID: 0} 653 | m_NavMeshLayer: 0 654 | m_StaticEditorFlags: 0 655 | m_IsActive: 1 656 | --- !u!224 &1729358149 657 | RectTransform: 658 | m_ObjectHideFlags: 0 659 | m_CorrespondingSourceObject: {fileID: 0} 660 | m_PrefabInstance: {fileID: 0} 661 | m_PrefabAsset: {fileID: 0} 662 | m_GameObject: {fileID: 1729358148} 663 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 664 | m_LocalPosition: {x: 0, y: 0, z: 0} 665 | m_LocalScale: {x: 1, y: 1, z: 1} 666 | m_Children: [] 667 | m_Father: {fileID: 298502875} 668 | m_RootOrder: 0 669 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 670 | m_AnchorMin: {x: 0.5, y: 0.5} 671 | m_AnchorMax: {x: 0.5, y: 0.5} 672 | m_AnchoredPosition: {x: 0, y: 0} 673 | m_SizeDelta: {x: 100, y: 100} 674 | m_Pivot: {x: 0.5, y: 0.5} 675 | --- !u!114 &1729358150 676 | MonoBehaviour: 677 | m_ObjectHideFlags: 0 678 | m_CorrespondingSourceObject: {fileID: 0} 679 | m_PrefabInstance: {fileID: 0} 680 | m_PrefabAsset: {fileID: 0} 681 | m_GameObject: {fileID: 1729358148} 682 | m_Enabled: 1 683 | m_EditorHideFlags: 0 684 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 685 | m_Name: 686 | m_EditorClassIdentifier: 687 | m_Material: {fileID: 0} 688 | m_Color: {r: 1, g: 1, b: 1, a: 1} 689 | m_RaycastTarget: 1 690 | m_Maskable: 1 691 | m_OnCullStateChanged: 692 | m_PersistentCalls: 693 | m_Calls: [] 694 | m_Sprite: {fileID: 21300000, guid: 3b80dd1a67a45024980146031d649b7c, type: 3} 695 | m_Type: 0 696 | m_PreserveAspect: 0 697 | m_FillCenter: 1 698 | m_FillMethod: 4 699 | m_FillAmount: 1 700 | m_FillClockwise: 1 701 | m_FillOrigin: 0 702 | m_UseSpriteMesh: 0 703 | m_PixelsPerUnitMultiplier: 1 704 | --- !u!222 &1729358151 705 | CanvasRenderer: 706 | m_ObjectHideFlags: 0 707 | m_CorrespondingSourceObject: {fileID: 0} 708 | m_PrefabInstance: {fileID: 0} 709 | m_PrefabAsset: {fileID: 0} 710 | m_GameObject: {fileID: 1729358148} 711 | m_CullTransparentMesh: 0 712 | --- !u!1 &1931663067 713 | GameObject: 714 | m_ObjectHideFlags: 0 715 | m_CorrespondingSourceObject: {fileID: 0} 716 | m_PrefabInstance: {fileID: 0} 717 | m_PrefabAsset: {fileID: 0} 718 | serializedVersion: 6 719 | m_Component: 720 | - component: {fileID: 1931663071} 721 | - component: {fileID: 1931663070} 722 | - component: {fileID: 1931663069} 723 | - component: {fileID: 1931663068} 724 | m_Layer: 5 725 | m_Name: Canvas 726 | m_TagString: Untagged 727 | m_Icon: {fileID: 0} 728 | m_NavMeshLayer: 0 729 | m_StaticEditorFlags: 0 730 | m_IsActive: 1 731 | --- !u!114 &1931663068 732 | MonoBehaviour: 733 | m_ObjectHideFlags: 0 734 | m_CorrespondingSourceObject: {fileID: 0} 735 | m_PrefabInstance: {fileID: 0} 736 | m_PrefabAsset: {fileID: 0} 737 | m_GameObject: {fileID: 1931663067} 738 | m_Enabled: 1 739 | m_EditorHideFlags: 0 740 | m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} 741 | m_Name: 742 | m_EditorClassIdentifier: 743 | m_IgnoreReversedGraphics: 1 744 | m_BlockingObjects: 0 745 | m_BlockingMask: 746 | serializedVersion: 2 747 | m_Bits: 4294967295 748 | --- !u!114 &1931663069 749 | MonoBehaviour: 750 | m_ObjectHideFlags: 0 751 | m_CorrespondingSourceObject: {fileID: 0} 752 | m_PrefabInstance: {fileID: 0} 753 | m_PrefabAsset: {fileID: 0} 754 | m_GameObject: {fileID: 1931663067} 755 | m_Enabled: 1 756 | m_EditorHideFlags: 0 757 | m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} 758 | m_Name: 759 | m_EditorClassIdentifier: 760 | m_UiScaleMode: 1 761 | m_ReferencePixelsPerUnit: 100 762 | m_ScaleFactor: 1 763 | m_ReferenceResolution: {x: 1920, y: 1080} 764 | m_ScreenMatchMode: 0 765 | m_MatchWidthOrHeight: 0.5 766 | m_PhysicalUnit: 3 767 | m_FallbackScreenDPI: 96 768 | m_DefaultSpriteDPI: 96 769 | m_DynamicPixelsPerUnit: 1 770 | --- !u!223 &1931663070 771 | Canvas: 772 | m_ObjectHideFlags: 0 773 | m_CorrespondingSourceObject: {fileID: 0} 774 | m_PrefabInstance: {fileID: 0} 775 | m_PrefabAsset: {fileID: 0} 776 | m_GameObject: {fileID: 1931663067} 777 | m_Enabled: 1 778 | serializedVersion: 3 779 | m_RenderMode: 0 780 | m_Camera: {fileID: 0} 781 | m_PlaneDistance: 100 782 | m_PixelPerfect: 0 783 | m_ReceivesEvents: 1 784 | m_OverrideSorting: 0 785 | m_OverridePixelPerfect: 0 786 | m_SortingBucketNormalizedSize: 0 787 | m_AdditionalShaderChannelsFlag: 0 788 | m_SortingLayerID: 0 789 | m_SortingOrder: 0 790 | m_TargetDisplay: 0 791 | --- !u!224 &1931663071 792 | RectTransform: 793 | m_ObjectHideFlags: 0 794 | m_CorrespondingSourceObject: {fileID: 0} 795 | m_PrefabInstance: {fileID: 0} 796 | m_PrefabAsset: {fileID: 0} 797 | m_GameObject: {fileID: 1931663067} 798 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 799 | m_LocalPosition: {x: 0, y: 0, z: 0} 800 | m_LocalScale: {x: 0, y: 0, z: 0} 801 | m_Children: 802 | - {fileID: 298502875} 803 | m_Father: {fileID: 0} 804 | m_RootOrder: 2 805 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 806 | m_AnchorMin: {x: 0, y: 0} 807 | m_AnchorMax: {x: 0, y: 0} 808 | m_AnchoredPosition: {x: 0, y: 0} 809 | m_SizeDelta: {x: 0, y: 0} 810 | m_Pivot: {x: 0, y: 0} 811 | -------------------------------------------------------------------------------- /RadialMenu_v2/Demo_v2.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 052e777f5cbf25a4f9ee7803619f84b7 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /RadialMenu_v2/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 124d89d6296def44ab78e289a22cf9d6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /RadialMenu_v2/Scripts/ClockwisePolarCoord.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | // 날짜 : 2021-04-26 PM 4:25:55 7 | // 작성자 : Rito 8 | 9 | namespace Rito.RadialMenu_v2 10 | { 11 | // 북쪽이 0도, 시계방향으로 각도가 커지는 시계 극좌표계의 좌표 12 | [Serializable] 13 | public struct ClockwisePolarCoord 14 | { 15 | /*********************************************************************** 16 | * Fields, Properties 17 | ***********************************************************************/ 18 | #region . 19 | /// 반지름 20 | public float Radius { get; set; } 21 | /// 0 ~ 360 각도 22 | public float Angle 23 | { 24 | get => _angle; 25 | set => _angle = ClampAngle(value); 26 | } 27 | private float _angle; 28 | 29 | #endregion 30 | /*********************************************************************** 31 | * Constructor 32 | ***********************************************************************/ 33 | #region . 34 | public ClockwisePolarCoord(float radius, float angle) 35 | { 36 | Radius = radius; 37 | _angle = ClampAngle(angle); 38 | } 39 | 40 | #endregion 41 | /*********************************************************************** 42 | * Private Static 43 | ***********************************************************************/ 44 | #region . 45 | /// 0 ~ 360 범위 내의 각도 값 리턴 46 | private static float ClampAngle(float angle) 47 | { 48 | angle %= 360f; 49 | if (angle < 0f) 50 | angle += 360f; 51 | return angle; 52 | } 53 | 54 | /// +x축 기준 반시계 각도 <-> +y축 기준 시계 각도 서로 변환 55 | private static float CovertAngle(float angle) 56 | => 90f - angle; 57 | 58 | /// Degree(0 ~ 360)로 Sin 계산 59 | private static float Sin(float angle) 60 | => Mathf.Sin(angle * Mathf.Deg2Rad); 61 | 62 | /// Degree(0 ~ 360)로 Cos 계산 63 | private static float Cos(float angle) 64 | => Mathf.Cos(angle * Mathf.Deg2Rad); 65 | 66 | #endregion 67 | /*********************************************************************** 68 | * Public Static 69 | ***********************************************************************/ 70 | #region . 71 | public static ClockwisePolarCoord Zero => new ClockwisePolarCoord(0f, 0f); 72 | public static ClockwisePolarCoord North => new ClockwisePolarCoord(1f, 0f); 73 | public static ClockwisePolarCoord East => new ClockwisePolarCoord(1f, 90f); 74 | public static ClockwisePolarCoord South => new ClockwisePolarCoord(1f, 180f); 75 | public static ClockwisePolarCoord West => new ClockwisePolarCoord(1f, 270f); 76 | 77 | /// 직교 좌표로부터 변환 78 | public static ClockwisePolarCoord FromVector2(in Vector2 vec) 79 | { 80 | if (vec == Vector2.zero) 81 | return Zero; 82 | 83 | float radius = vec.magnitude; 84 | float angle = Mathf.Atan2(vec.y, vec.x) * Mathf.Rad2Deg; 85 | 86 | return new ClockwisePolarCoord(radius, CovertAngle(angle)); 87 | } 88 | 89 | public static bool operator ==(ClockwisePolarCoord a, ClockwisePolarCoord b) 90 | { 91 | return Mathf.Approximately(a.Angle, b.Angle) && 92 | Mathf.Approximately(a.Radius, b.Radius); 93 | } 94 | 95 | public static bool operator !=(ClockwisePolarCoord a, ClockwisePolarCoord b) 96 | { 97 | return !(Mathf.Approximately(a.Angle, b.Angle) && 98 | Mathf.Approximately(a.Radius, b.Radius)); 99 | } 100 | 101 | #endregion 102 | /*********************************************************************** 103 | * Public 104 | ***********************************************************************/ 105 | #region . 106 | public ClockwisePolarCoord Normalized => new ClockwisePolarCoord(1f, Angle); 107 | 108 | public Vector2 ToVector2() 109 | { 110 | if (Radius == 0f && Angle == 0f) 111 | return Vector2.zero; 112 | 113 | float angle = CovertAngle(Angle); 114 | return new Vector2(Radius * Cos(angle), Radius * Sin(angle)); 115 | } 116 | 117 | public override string ToString() 118 | => $"({Radius}, {Angle})"; 119 | 120 | public override bool Equals(object obj) 121 | { 122 | if(obj == null) return false; 123 | 124 | if (obj is ClockwisePolarCoord other) 125 | { 126 | return this == other; 127 | } 128 | else 129 | return false; 130 | } 131 | 132 | public override int GetHashCode() 133 | { 134 | return base.GetHashCode(); 135 | } 136 | 137 | #endregion 138 | } 139 | } -------------------------------------------------------------------------------- /RadialMenu_v2/Scripts/ClockwisePolarCoord.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d75a6cb049dd0054baa21309d7061702 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /RadialMenu_v2/Scripts/Easing.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | // 날짜 : 2021-04-28 PM 7:11:21 7 | // 작성자 : Rito 8 | 9 | namespace Rito.RadialMenu_v2 10 | { 11 | public static class Easing 12 | { 13 | public static float EaseInExpo(float x) 14 | { 15 | return x == 0f ? 0f : Mathf.Pow(2f, 10f * x - 10f); 16 | } 17 | public static float EaseOutExpo(float x) 18 | { 19 | return x == 1f ? 1f : 1f - Mathf.Pow(2f, -10f * x); 20 | } 21 | 22 | public static float EaseInBounce(float x) 23 | { 24 | return 1 - EaseOutBounce(1 - x); 25 | } 26 | public static float EaseOutBounce(float x) 27 | { 28 | const float n1 = 7.5625f; 29 | const float d1 = 2.75f; 30 | 31 | if (x < 1f / d1) 32 | { 33 | return n1 * x * x; 34 | } 35 | else if (x < 2f / d1) 36 | { 37 | return n1 * (x -= 1.5f / d1) * x + 0.75f; 38 | } 39 | else if (x < 2.5f / d1) 40 | { 41 | return n1 * (x -= 2.25f / d1) * x + 0.9375f; 42 | } 43 | else 44 | { 45 | return n1 * (x -= 2.625f / d1) * x + 0.984375f; 46 | } 47 | } 48 | 49 | } 50 | } -------------------------------------------------------------------------------- /RadialMenu_v2/Scripts/Easing.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4055917367aa56b4db174d668e816888 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /RadialMenu_v2/Scripts/RadialMenu.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using UnityEngine.UI; 6 | 7 | // 날짜 : 2021-04-26 PM 2:47:40 8 | // 작성자 : Rito 9 | 10 | namespace Rito.RadialMenu_v2 11 | { 12 | [DisallowMultipleComponent] 13 | public partial class RadialMenu : MonoBehaviour 14 | { 15 | [Header("Options")] 16 | [Range(2, 16)] 17 | [SerializeField] private int _pieceCount = 8; // 조각 개수 18 | 19 | [Range(0.2f, 1f)] 20 | [SerializeField] private float _appearanceDuration = .3f; // 등장에 걸리는 시간 21 | [Range(0.2f, 1f)] 22 | [SerializeField] private float _disppearanceDuration = .3f; // 소멸에 걸리는 시간 23 | [SerializeField] private float _pieceDist = 180f; // 중앙으로부터 각 조각의 거리 24 | 25 | [Range(0.01f, 0.5f)] 26 | [SerializeField] private float _centerDistThreshold = 0.1f; // 중앙에서부터의 마우스 거리 기준 27 | 28 | [Header("Objects")] 29 | [SerializeField] private GameObject _pieceSample; // 복제될 조각 게임오브젝트 30 | [SerializeField] private RectTransform _arrow; // 화살표 이미지의 부모 트랜스폼 31 | 32 | // 복제된 조각들 33 | private Image[] _pieceImages; 34 | private RectTransform[] _pieceRects; 35 | private Vector2[] _pieceDirections; // 각 조각이 위치할 방향의 벡터 36 | 37 | private float _arrowRotationZ; 38 | 39 | [SerializeField, Header("Debug")] 40 | private int _selectedIndex = -1; 41 | 42 | private const float NotSelectedPieceAlpha = 0.5f; 43 | 44 | /*********************************************************************** 45 | * Unity Events 46 | ***********************************************************************/ 47 | #region . 48 | 49 | private void Awake() 50 | { 51 | InitPieceImages(); 52 | InitPieceDirections(); 53 | InitStateDicts(); 54 | 55 | HideGameObject(); 56 | } 57 | 58 | #endregion 59 | /*********************************************************************** 60 | * Private Methods 61 | ***********************************************************************/ 62 | #region . 63 | /// 조각 샘플 복제하여 조각들 생성 64 | private void InitPieceImages() 65 | { 66 | _pieceSample.SetActive(true); 67 | 68 | _pieceImages = new Image[_pieceCount]; 69 | _pieceRects = new RectTransform[_pieceCount]; 70 | 71 | for (int i = 0; i < _pieceCount; i++) 72 | { 73 | // 조각 복제 74 | var clone = Instantiate(_pieceSample, transform); 75 | clone.name = $"Piece {i}"; 76 | 77 | // Image, RectTransform 가져와 배열에 초기화 78 | _pieceImages[i] = clone.GetComponent(); 79 | _pieceRects[i] = _pieceImages[i].rectTransform; 80 | } 81 | 82 | _pieceSample.SetActive(false); 83 | } 84 | 85 | /// 시계 극좌표계를 이용해 각 조각들의 방향벡터 계산 86 | private void InitPieceDirections() 87 | { 88 | _pieceDirections = new Vector2[_pieceCount]; 89 | 90 | float angle = 360f / _pieceCount; 91 | 92 | for (int i = 0; i < _pieceCount; i++) 93 | { 94 | _pieceDirections[i] = new ClockwisePolarCoord(1f, angle * i).ToVector2(); 95 | } 96 | } 97 | 98 | private void ShowGameObject() 99 | { 100 | gameObject.SetActive(true); 101 | } 102 | 103 | private void HideGameObject() 104 | { 105 | gameObject.SetActive(false); 106 | } 107 | 108 | /// 지정한 이미지의 알파값 변경 109 | private void SetPieceAlpha(int index, float alpha) 110 | { 111 | _pieceImages[index].color = new Color(1f, 1f, 1f, alpha); 112 | } 113 | 114 | /// 지정한 이미지의 중심으로부터의 거리 변경 115 | private void SetPieceDistance(int index, float distance) 116 | { 117 | _pieceRects[index].anchoredPosition = _pieceDirections[index] * distance; 118 | } 119 | 120 | /// 해당 인덱스의 조각 크기 변경 121 | private void SetPieceScale(int index, float scale) 122 | { 123 | _pieceRects[index].localScale = new Vector3(scale, scale, 1f); 124 | } 125 | 126 | /// 모든 조각을 중심으로부터 지정 거리만큼 이동 127 | private void SetAllPieceDistance(float distance) 128 | { 129 | for (int i = 0; i < _pieceCount; i++) 130 | { 131 | _pieceRects[i].anchoredPosition = _pieceDirections[i] * distance; 132 | } 133 | } 134 | 135 | /// 모든 조각 이미지의 알파값 변경 136 | private void SetAllPieceAlpha(float alpha) 137 | { 138 | for (int i = 0; i < _pieceCount; i++) 139 | { 140 | _pieceImages[i].color = new Color(1f, 1f, 1f, alpha); 141 | } 142 | } 143 | 144 | /// 모든 조각의 크기 변경 145 | private void SetAllPieceScale(float scale) 146 | { 147 | for (int i = 0; i < _pieceCount; i++) 148 | { 149 | _pieceRects[i].localScale = new Vector3(scale, scale, 1f); 150 | } 151 | } 152 | 153 | private void SetAllPieceImageEnabled(bool enabled) 154 | { 155 | for (int i = 0; i < _pieceCount; i++) 156 | { 157 | _pieceImages[i].enabled = enabled; 158 | } 159 | } 160 | 161 | /// 화살표 이미지 게임오브젝트 활성화 여부, 회전 설정 162 | private void SetArrow(bool show) 163 | { 164 | _arrow.gameObject.SetActive(show); 165 | 166 | if (show) 167 | { 168 | _arrow.eulerAngles = Vector3.forward * _arrowRotationZ; 169 | } 170 | } 171 | #endregion 172 | /*********************************************************************** 173 | * Public Methods 174 | ***********************************************************************/ 175 | #region . 176 | 177 | /// 등장 178 | public void Show() 179 | { 180 | ForceToEnterAppearanceState(); 181 | } 182 | 183 | /// 사라지면서 인덱스 리턴 184 | public int Hide() 185 | { 186 | ForceToEnterDisappearanceState(); 187 | SetArrow(false); 188 | 189 | return _selectedIndex; 190 | } 191 | 192 | /// 각각 피스 이미지(스프라이트) 등록 193 | public void SetPieceImageSprites(Sprite[] sprites) 194 | { 195 | int i = 0; 196 | int len = sprites.Length; 197 | for (; i < _pieceCount && i < len; i++) 198 | { 199 | if (sprites[i] != null) 200 | { 201 | _pieceImages[i].sprite = sprites[i]; 202 | } 203 | } 204 | } 205 | 206 | #endregion 207 | } 208 | } -------------------------------------------------------------------------------- /RadialMenu_v2/Scripts/RadialMenu.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fc0731cd2b32c1c43bacb728fa1ac79e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /RadialMenu_v2/Scripts/RadialMenu_States.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf2200d08219a9942809a87b5aa9d8eb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fae1d5d3e9cf8704d9336b427048b3b7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Arrow_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v2/Sprites/Arrow_512.png -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Arrow_512.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1c32b34f5f39d5a48a32646d7951e670 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 512 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 512 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Circle_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v2/Sprites/Circle_512.png -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Circle_512.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9eb052d2e2d277749b20b39d4f13dc62 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 512 65 | resizeAlgorithm: 0 66 | textureFormat: 4 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 512 77 | resizeAlgorithm: 0 78 | textureFormat: 4 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 427d1f29ee74f26478e1992849c7651e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/bear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v2/Sprites/Kenny Animals/bear.png -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/bear.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 16132416d2ccec84893381a90e4c35f6 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/chick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v2/Sprites/Kenny Animals/chick.png -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/chick.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bf019b8577d32d741be9591a29f49023 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/chicken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v2/Sprites/Kenny Animals/chicken.png -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/chicken.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 97d2f7e77013fe6468b9ad5eb9072352 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/cow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v2/Sprites/Kenny Animals/cow.png -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/cow.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 246449bc25e104a4e8c7707288183a15 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/duck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v2/Sprites/Kenny Animals/duck.png -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/duck.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b58a3faa0efc9049b2864eb390a1b47 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/elephant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v2/Sprites/Kenny Animals/elephant.png -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/elephant.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f41ee47a4a4798a4580bc29884b4bc0b 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/penguin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v2/Sprites/Kenny Animals/penguin.png -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/penguin.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ae7548c8d8f420f4cad83e35df995636 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/pig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v2/Sprites/Kenny Animals/pig.png -------------------------------------------------------------------------------- /RadialMenu_v2/Sprites/Kenny Animals/pig.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f15382fad07d97540ad128895b7a9c12 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v2/Test_RadialMenu.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | // 날짜 : 2021-04-26 PM 3:12:50 7 | // 작성자 : Rito 8 | 9 | namespace Rito.RadialMenu_v2.Test 10 | { 11 | public class Test_RadialMenu : MonoBehaviour 12 | { 13 | public RadialMenu radialMenu; 14 | public KeyCode key = KeyCode.G; 15 | 16 | [Space] 17 | public Sprite[] sprites; 18 | 19 | private void Start() 20 | { 21 | radialMenu.SetPieceImageSprites(sprites); 22 | } 23 | 24 | private void Update() 25 | { 26 | if (Input.GetKeyDown(key)) 27 | { 28 | radialMenu.Show(); 29 | } 30 | else if (Input.GetKeyUp(key)) 31 | { 32 | int selected = radialMenu.Hide(); 33 | Debug.Log($"Selected : {selected}"); 34 | } 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /RadialMenu_v2/Test_RadialMenu.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9b32687a0907ba94e9504bba4e865114 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /RadialMenu_v3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 16dd4b4691ddb504b9979f078e78ce9f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /RadialMenu_v3/Demo_v3.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 11 47 | m_GIWorkflowMode: 1 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 12 58 | m_Resolution: 2 59 | m_BakeResolution: 40 60 | m_AtlasSize: 1024 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_ExtractAmbientOcclusion: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 2 75 | m_BakeBackend: 1 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 512 79 | m_PVRBounces: 2 80 | m_PVREnvironmentSampleCount: 256 81 | m_PVREnvironmentReferencePointCount: 2048 82 | m_PVRFilteringMode: 1 83 | m_PVRDenoiserTypeDirect: 1 84 | m_PVRDenoiserTypeIndirect: 1 85 | m_PVRDenoiserTypeAO: 1 86 | m_PVRFilterTypeDirect: 0 87 | m_PVRFilterTypeIndirect: 0 88 | m_PVRFilterTypeAO: 0 89 | m_PVREnvironmentMIS: 1 90 | m_PVRCulling: 1 91 | m_PVRFilteringGaussRadiusDirect: 1 92 | m_PVRFilteringGaussRadiusIndirect: 5 93 | m_PVRFilteringGaussRadiusAO: 2 94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 96 | m_PVRFilteringAtrousPositionSigmaAO: 1 97 | m_ExportTrainingData: 0 98 | m_TrainingDataDestination: TrainingData 99 | m_LightProbeSampleCountMultiplier: 4 100 | m_LightingDataAsset: {fileID: 0} 101 | m_UseShadowmask: 1 102 | --- !u!196 &4 103 | NavMeshSettings: 104 | serializedVersion: 2 105 | m_ObjectHideFlags: 0 106 | m_BuildSettings: 107 | serializedVersion: 2 108 | agentTypeID: 0 109 | agentRadius: 0.5 110 | agentHeight: 2 111 | agentSlope: 45 112 | agentClimb: 0.4 113 | ledgeDropHeight: 0 114 | maxJumpAcrossDistance: 0 115 | minRegionArea: 2 116 | manualCellSize: 0 117 | cellSize: 0.16666667 118 | manualTileSize: 0 119 | tileSize: 256 120 | accuratePlacement: 0 121 | debug: 122 | m_Flags: 0 123 | m_NavMeshData: {fileID: 0} 124 | --- !u!1 &74853757 125 | GameObject: 126 | m_ObjectHideFlags: 0 127 | m_CorrespondingSourceObject: {fileID: 0} 128 | m_PrefabInstance: {fileID: 0} 129 | m_PrefabAsset: {fileID: 0} 130 | serializedVersion: 6 131 | m_Component: 132 | - component: {fileID: 74853758} 133 | - component: {fileID: 74853760} 134 | m_Layer: 5 135 | m_Name: Arrow Holder 136 | m_TagString: Untagged 137 | m_Icon: {fileID: 0} 138 | m_NavMeshLayer: 0 139 | m_StaticEditorFlags: 0 140 | m_IsActive: 1 141 | --- !u!224 &74853758 142 | RectTransform: 143 | m_ObjectHideFlags: 0 144 | m_CorrespondingSourceObject: {fileID: 0} 145 | m_PrefabInstance: {fileID: 0} 146 | m_PrefabAsset: {fileID: 0} 147 | m_GameObject: {fileID: 74853757} 148 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 149 | m_LocalPosition: {x: 0, y: 0, z: 0} 150 | m_LocalScale: {x: 1, y: 1, z: 1} 151 | m_Children: 152 | - {fileID: 1171156410} 153 | m_Father: {fileID: 298502875} 154 | m_RootOrder: 1 155 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 156 | m_AnchorMin: {x: 0.5, y: 0.5} 157 | m_AnchorMax: {x: 0.5, y: 0.5} 158 | m_AnchoredPosition: {x: 0, y: 0} 159 | m_SizeDelta: {x: 100, y: 100} 160 | m_Pivot: {x: 0.5, y: 0.5} 161 | --- !u!222 &74853760 162 | CanvasRenderer: 163 | m_ObjectHideFlags: 0 164 | m_CorrespondingSourceObject: {fileID: 0} 165 | m_PrefabInstance: {fileID: 0} 166 | m_PrefabAsset: {fileID: 0} 167 | m_GameObject: {fileID: 74853757} 168 | m_CullTransparentMesh: 0 169 | --- !u!1 &298502874 170 | GameObject: 171 | m_ObjectHideFlags: 0 172 | m_CorrespondingSourceObject: {fileID: 0} 173 | m_PrefabInstance: {fileID: 0} 174 | m_PrefabAsset: {fileID: 0} 175 | serializedVersion: 6 176 | m_Component: 177 | - component: {fileID: 298502875} 178 | - component: {fileID: 298502877} 179 | - component: {fileID: 298502876} 180 | - component: {fileID: 298502878} 181 | m_Layer: 5 182 | m_Name: Radial Menu Panel 183 | m_TagString: Untagged 184 | m_Icon: {fileID: 0} 185 | m_NavMeshLayer: 0 186 | m_StaticEditorFlags: 0 187 | m_IsActive: 1 188 | --- !u!224 &298502875 189 | RectTransform: 190 | m_ObjectHideFlags: 0 191 | m_CorrespondingSourceObject: {fileID: 0} 192 | m_PrefabInstance: {fileID: 0} 193 | m_PrefabAsset: {fileID: 0} 194 | m_GameObject: {fileID: 298502874} 195 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 196 | m_LocalPosition: {x: 0, y: 0, z: 0} 197 | m_LocalScale: {x: 1, y: 1, z: 1} 198 | m_Children: 199 | - {fileID: 1729358149} 200 | - {fileID: 74853758} 201 | m_Father: {fileID: 1931663071} 202 | m_RootOrder: 0 203 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 204 | m_AnchorMin: {x: 0, y: 0} 205 | m_AnchorMax: {x: 1, y: 1} 206 | m_AnchoredPosition: {x: 0, y: 0} 207 | m_SizeDelta: {x: 0, y: 0} 208 | m_Pivot: {x: 0.5, y: 0.5} 209 | --- !u!114 &298502876 210 | MonoBehaviour: 211 | m_ObjectHideFlags: 0 212 | m_CorrespondingSourceObject: {fileID: 0} 213 | m_PrefabInstance: {fileID: 0} 214 | m_PrefabAsset: {fileID: 0} 215 | m_GameObject: {fileID: 298502874} 216 | m_Enabled: 0 217 | m_EditorHideFlags: 0 218 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 219 | m_Name: 220 | m_EditorClassIdentifier: 221 | m_Material: {fileID: 0} 222 | m_Color: {r: 1, g: 1, b: 1, a: 0.392} 223 | m_RaycastTarget: 1 224 | m_Maskable: 1 225 | m_OnCullStateChanged: 226 | m_PersistentCalls: 227 | m_Calls: [] 228 | m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} 229 | m_Type: 1 230 | m_PreserveAspect: 0 231 | m_FillCenter: 1 232 | m_FillMethod: 4 233 | m_FillAmount: 1 234 | m_FillClockwise: 1 235 | m_FillOrigin: 0 236 | m_UseSpriteMesh: 0 237 | m_PixelsPerUnitMultiplier: 1 238 | --- !u!222 &298502877 239 | CanvasRenderer: 240 | m_ObjectHideFlags: 0 241 | m_CorrespondingSourceObject: {fileID: 0} 242 | m_PrefabInstance: {fileID: 0} 243 | m_PrefabAsset: {fileID: 0} 244 | m_GameObject: {fileID: 298502874} 245 | m_CullTransparentMesh: 0 246 | --- !u!114 &298502878 247 | MonoBehaviour: 248 | m_ObjectHideFlags: 0 249 | m_CorrespondingSourceObject: {fileID: 0} 250 | m_PrefabInstance: {fileID: 0} 251 | m_PrefabAsset: {fileID: 0} 252 | m_GameObject: {fileID: 298502874} 253 | m_Enabled: 1 254 | m_EditorHideFlags: 0 255 | m_Script: {fileID: 11500000, guid: 7479e11c29522a34d9bcc736b2c8464d, type: 3} 256 | m_Name: 257 | m_EditorClassIdentifier: 258 | _pieceCount: 8 259 | _appearanceDuration: 0.4 260 | _disppearanceDuration: 0.4 261 | _pieceDist: 180 262 | _centerRange: 0.1 263 | _pieceSample: {fileID: 1729358148} 264 | _arrow: {fileID: 74853758} 265 | _selectedIndex: -1 266 | _appearanceType: 2 267 | _appearanceEasing: 5 268 | _mainType: 1 269 | _disappearanceType: 4 270 | _disappearanceEasing: 4 271 | --- !u!1 &383198611 272 | GameObject: 273 | m_ObjectHideFlags: 0 274 | m_CorrespondingSourceObject: {fileID: 0} 275 | m_PrefabInstance: {fileID: 0} 276 | m_PrefabAsset: {fileID: 0} 277 | serializedVersion: 6 278 | m_Component: 279 | - component: {fileID: 383198613} 280 | - component: {fileID: 383198612} 281 | m_Layer: 0 282 | m_Name: Tester 283 | m_TagString: Untagged 284 | m_Icon: {fileID: 0} 285 | m_NavMeshLayer: 0 286 | m_StaticEditorFlags: 0 287 | m_IsActive: 1 288 | --- !u!114 &383198612 289 | MonoBehaviour: 290 | m_ObjectHideFlags: 0 291 | m_CorrespondingSourceObject: {fileID: 0} 292 | m_PrefabInstance: {fileID: 0} 293 | m_PrefabAsset: {fileID: 0} 294 | m_GameObject: {fileID: 383198611} 295 | m_Enabled: 1 296 | m_EditorHideFlags: 0 297 | m_Script: {fileID: 11500000, guid: fea75795c8b614e4b8912ec45a306927, type: 3} 298 | m_Name: 299 | m_EditorClassIdentifier: 300 | radialMenu: {fileID: 298502878} 301 | key: 103 302 | sprites: 303 | - {fileID: 21300000, guid: fda47973982a80a40a3641067a9fedf0, type: 3} 304 | - {fileID: 21300000, guid: 96b97ad148ec9eb4495df6577730f10c, type: 3} 305 | - {fileID: 21300000, guid: 806e360eb89988e41a135520936be6be, type: 3} 306 | - {fileID: 21300000, guid: 4990d8f182075e34296d5375565d54c0, type: 3} 307 | - {fileID: 21300000, guid: f2689a3d925203b489ef31bdd36f614d, type: 3} 308 | - {fileID: 21300000, guid: 83e912a581a7d67489e4ef11e81b531d, type: 3} 309 | - {fileID: 21300000, guid: 2ef7f7b507929ff4b962cd1820828ae0, type: 3} 310 | - {fileID: 21300000, guid: 9354303bf5223d14c9216f722c44c0ff, type: 3} 311 | --- !u!4 &383198613 312 | Transform: 313 | m_ObjectHideFlags: 0 314 | m_CorrespondingSourceObject: {fileID: 0} 315 | m_PrefabInstance: {fileID: 0} 316 | m_PrefabAsset: {fileID: 0} 317 | m_GameObject: {fileID: 383198611} 318 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 319 | m_LocalPosition: {x: 0, y: 0, z: 0} 320 | m_LocalScale: {x: 1, y: 1, z: 1} 321 | m_Children: [] 322 | m_Father: {fileID: 0} 323 | m_RootOrder: 4 324 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 325 | --- !u!1 &473142368 326 | GameObject: 327 | m_ObjectHideFlags: 0 328 | m_CorrespondingSourceObject: {fileID: 0} 329 | m_PrefabInstance: {fileID: 0} 330 | m_PrefabAsset: {fileID: 0} 331 | serializedVersion: 6 332 | m_Component: 333 | - component: {fileID: 473142371} 334 | - component: {fileID: 473142370} 335 | - component: {fileID: 473142369} 336 | m_Layer: 0 337 | m_Name: EventSystem 338 | m_TagString: Untagged 339 | m_Icon: {fileID: 0} 340 | m_NavMeshLayer: 0 341 | m_StaticEditorFlags: 0 342 | m_IsActive: 1 343 | --- !u!114 &473142369 344 | MonoBehaviour: 345 | m_ObjectHideFlags: 0 346 | m_CorrespondingSourceObject: {fileID: 0} 347 | m_PrefabInstance: {fileID: 0} 348 | m_PrefabAsset: {fileID: 0} 349 | m_GameObject: {fileID: 473142368} 350 | m_Enabled: 1 351 | m_EditorHideFlags: 0 352 | m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} 353 | m_Name: 354 | m_EditorClassIdentifier: 355 | m_HorizontalAxis: Horizontal 356 | m_VerticalAxis: Vertical 357 | m_SubmitButton: Submit 358 | m_CancelButton: Cancel 359 | m_InputActionsPerSecond: 10 360 | m_RepeatDelay: 0.5 361 | m_ForceModuleActive: 0 362 | --- !u!114 &473142370 363 | MonoBehaviour: 364 | m_ObjectHideFlags: 0 365 | m_CorrespondingSourceObject: {fileID: 0} 366 | m_PrefabInstance: {fileID: 0} 367 | m_PrefabAsset: {fileID: 0} 368 | m_GameObject: {fileID: 473142368} 369 | m_Enabled: 1 370 | m_EditorHideFlags: 0 371 | m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} 372 | m_Name: 373 | m_EditorClassIdentifier: 374 | m_FirstSelected: {fileID: 0} 375 | m_sendNavigationEvents: 1 376 | m_DragThreshold: 10 377 | --- !u!4 &473142371 378 | Transform: 379 | m_ObjectHideFlags: 0 380 | m_CorrespondingSourceObject: {fileID: 0} 381 | m_PrefabInstance: {fileID: 0} 382 | m_PrefabAsset: {fileID: 0} 383 | m_GameObject: {fileID: 473142368} 384 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 385 | m_LocalPosition: {x: 0, y: 0, z: 0} 386 | m_LocalScale: {x: 1, y: 1, z: 1} 387 | m_Children: [] 388 | m_Father: {fileID: 0} 389 | m_RootOrder: 3 390 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 391 | --- !u!1 &1171156409 392 | GameObject: 393 | m_ObjectHideFlags: 0 394 | m_CorrespondingSourceObject: {fileID: 0} 395 | m_PrefabInstance: {fileID: 0} 396 | m_PrefabAsset: {fileID: 0} 397 | serializedVersion: 6 398 | m_Component: 399 | - component: {fileID: 1171156410} 400 | - component: {fileID: 1171156412} 401 | - component: {fileID: 1171156411} 402 | m_Layer: 5 403 | m_Name: Arrow 404 | m_TagString: Untagged 405 | m_Icon: {fileID: 0} 406 | m_NavMeshLayer: 0 407 | m_StaticEditorFlags: 0 408 | m_IsActive: 1 409 | --- !u!224 &1171156410 410 | RectTransform: 411 | m_ObjectHideFlags: 0 412 | m_CorrespondingSourceObject: {fileID: 0} 413 | m_PrefabInstance: {fileID: 0} 414 | m_PrefabAsset: {fileID: 0} 415 | m_GameObject: {fileID: 1171156409} 416 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 417 | m_LocalPosition: {x: 0, y: 0, z: 0} 418 | m_LocalScale: {x: 1, y: 1, z: 1} 419 | m_Children: [] 420 | m_Father: {fileID: 74853758} 421 | m_RootOrder: 0 422 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 423 | m_AnchorMin: {x: 0.5, y: 0.5} 424 | m_AnchorMax: {x: 0.5, y: 0.5} 425 | m_AnchoredPosition: {x: 0, y: 100} 426 | m_SizeDelta: {x: 100, y: 100} 427 | m_Pivot: {x: 0.5, y: 0.5} 428 | --- !u!114 &1171156411 429 | MonoBehaviour: 430 | m_ObjectHideFlags: 0 431 | m_CorrespondingSourceObject: {fileID: 0} 432 | m_PrefabInstance: {fileID: 0} 433 | m_PrefabAsset: {fileID: 0} 434 | m_GameObject: {fileID: 1171156409} 435 | m_Enabled: 1 436 | m_EditorHideFlags: 0 437 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 438 | m_Name: 439 | m_EditorClassIdentifier: 440 | m_Material: {fileID: 0} 441 | m_Color: {r: 1, g: 1, b: 1, a: 1} 442 | m_RaycastTarget: 1 443 | m_Maskable: 1 444 | m_OnCullStateChanged: 445 | m_PersistentCalls: 446 | m_Calls: [] 447 | m_Sprite: {fileID: 21300000, guid: f07f71d07864d134d945f571422c9fba, type: 3} 448 | m_Type: 0 449 | m_PreserveAspect: 0 450 | m_FillCenter: 1 451 | m_FillMethod: 4 452 | m_FillAmount: 1 453 | m_FillClockwise: 1 454 | m_FillOrigin: 0 455 | m_UseSpriteMesh: 0 456 | m_PixelsPerUnitMultiplier: 1 457 | --- !u!222 &1171156412 458 | CanvasRenderer: 459 | m_ObjectHideFlags: 0 460 | m_CorrespondingSourceObject: {fileID: 0} 461 | m_PrefabInstance: {fileID: 0} 462 | m_PrefabAsset: {fileID: 0} 463 | m_GameObject: {fileID: 1171156409} 464 | m_CullTransparentMesh: 0 465 | --- !u!1 &1350011932 466 | GameObject: 467 | m_ObjectHideFlags: 0 468 | m_CorrespondingSourceObject: {fileID: 0} 469 | m_PrefabInstance: {fileID: 0} 470 | m_PrefabAsset: {fileID: 0} 471 | serializedVersion: 6 472 | m_Component: 473 | - component: {fileID: 1350011935} 474 | - component: {fileID: 1350011934} 475 | - component: {fileID: 1350011933} 476 | m_Layer: 0 477 | m_Name: Main Camera 478 | m_TagString: MainCamera 479 | m_Icon: {fileID: 0} 480 | m_NavMeshLayer: 0 481 | m_StaticEditorFlags: 0 482 | m_IsActive: 1 483 | --- !u!81 &1350011933 484 | AudioListener: 485 | m_ObjectHideFlags: 0 486 | m_CorrespondingSourceObject: {fileID: 0} 487 | m_PrefabInstance: {fileID: 0} 488 | m_PrefabAsset: {fileID: 0} 489 | m_GameObject: {fileID: 1350011932} 490 | m_Enabled: 1 491 | --- !u!20 &1350011934 492 | Camera: 493 | m_ObjectHideFlags: 0 494 | m_CorrespondingSourceObject: {fileID: 0} 495 | m_PrefabInstance: {fileID: 0} 496 | m_PrefabAsset: {fileID: 0} 497 | m_GameObject: {fileID: 1350011932} 498 | m_Enabled: 1 499 | serializedVersion: 2 500 | m_ClearFlags: 2 501 | m_BackGroundColor: {r: 0.1509434, g: 0.08308748, b: 0.016375938, a: 0} 502 | m_projectionMatrixMode: 1 503 | m_GateFitMode: 2 504 | m_FOVAxisMode: 0 505 | m_SensorSize: {x: 36, y: 24} 506 | m_LensShift: {x: 0, y: 0} 507 | m_FocalLength: 50 508 | m_NormalizedViewPortRect: 509 | serializedVersion: 2 510 | x: 0 511 | y: 0 512 | width: 1 513 | height: 1 514 | near clip plane: 0.3 515 | far clip plane: 1000 516 | field of view: 60 517 | orthographic: 0 518 | orthographic size: 5 519 | m_Depth: -1 520 | m_CullingMask: 521 | serializedVersion: 2 522 | m_Bits: 4294967295 523 | m_RenderingPath: -1 524 | m_TargetTexture: {fileID: 0} 525 | m_TargetDisplay: 0 526 | m_TargetEye: 3 527 | m_HDR: 1 528 | m_AllowMSAA: 1 529 | m_AllowDynamicResolution: 0 530 | m_ForceIntoRT: 0 531 | m_OcclusionCulling: 1 532 | m_StereoConvergence: 10 533 | m_StereoSeparation: 0.022 534 | --- !u!4 &1350011935 535 | Transform: 536 | m_ObjectHideFlags: 0 537 | m_CorrespondingSourceObject: {fileID: 0} 538 | m_PrefabInstance: {fileID: 0} 539 | m_PrefabAsset: {fileID: 0} 540 | m_GameObject: {fileID: 1350011932} 541 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 542 | m_LocalPosition: {x: 0, y: 1, z: -10} 543 | m_LocalScale: {x: 1, y: 1, z: 1} 544 | m_Children: [] 545 | m_Father: {fileID: 0} 546 | m_RootOrder: 0 547 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 548 | --- !u!1 &1536083966 549 | GameObject: 550 | m_ObjectHideFlags: 0 551 | m_CorrespondingSourceObject: {fileID: 0} 552 | m_PrefabInstance: {fileID: 0} 553 | m_PrefabAsset: {fileID: 0} 554 | serializedVersion: 6 555 | m_Component: 556 | - component: {fileID: 1536083968} 557 | - component: {fileID: 1536083967} 558 | m_Layer: 0 559 | m_Name: Directional Light 560 | m_TagString: Untagged 561 | m_Icon: {fileID: 0} 562 | m_NavMeshLayer: 0 563 | m_StaticEditorFlags: 0 564 | m_IsActive: 1 565 | --- !u!108 &1536083967 566 | Light: 567 | m_ObjectHideFlags: 0 568 | m_CorrespondingSourceObject: {fileID: 0} 569 | m_PrefabInstance: {fileID: 0} 570 | m_PrefabAsset: {fileID: 0} 571 | m_GameObject: {fileID: 1536083966} 572 | m_Enabled: 1 573 | serializedVersion: 10 574 | m_Type: 1 575 | m_Shape: 0 576 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 577 | m_Intensity: 1 578 | m_Range: 10 579 | m_SpotAngle: 30 580 | m_InnerSpotAngle: 21.80208 581 | m_CookieSize: 10 582 | m_Shadows: 583 | m_Type: 2 584 | m_Resolution: -1 585 | m_CustomResolution: -1 586 | m_Strength: 1 587 | m_Bias: 0.05 588 | m_NormalBias: 0.4 589 | m_NearPlane: 0.2 590 | m_CullingMatrixOverride: 591 | e00: 1 592 | e01: 0 593 | e02: 0 594 | e03: 0 595 | e10: 0 596 | e11: 1 597 | e12: 0 598 | e13: 0 599 | e20: 0 600 | e21: 0 601 | e22: 1 602 | e23: 0 603 | e30: 0 604 | e31: 0 605 | e32: 0 606 | e33: 1 607 | m_UseCullingMatrixOverride: 0 608 | m_Cookie: {fileID: 0} 609 | m_DrawHalo: 0 610 | m_Flare: {fileID: 0} 611 | m_RenderMode: 0 612 | m_CullingMask: 613 | serializedVersion: 2 614 | m_Bits: 4294967295 615 | m_RenderingLayerMask: 1 616 | m_Lightmapping: 4 617 | m_LightShadowCasterMode: 0 618 | m_AreaSize: {x: 1, y: 1} 619 | m_BounceIntensity: 1 620 | m_ColorTemperature: 6570 621 | m_UseColorTemperature: 0 622 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} 623 | m_UseBoundingSphereOverride: 0 624 | m_ShadowRadius: 0 625 | m_ShadowAngle: 0 626 | --- !u!4 &1536083968 627 | Transform: 628 | m_ObjectHideFlags: 0 629 | m_CorrespondingSourceObject: {fileID: 0} 630 | m_PrefabInstance: {fileID: 0} 631 | m_PrefabAsset: {fileID: 0} 632 | m_GameObject: {fileID: 1536083966} 633 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 634 | m_LocalPosition: {x: 0, y: 3, z: 0} 635 | m_LocalScale: {x: 1, y: 1, z: 1} 636 | m_Children: [] 637 | m_Father: {fileID: 0} 638 | m_RootOrder: 1 639 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 640 | --- !u!1 &1729358148 641 | GameObject: 642 | m_ObjectHideFlags: 0 643 | m_CorrespondingSourceObject: {fileID: 0} 644 | m_PrefabInstance: {fileID: 0} 645 | m_PrefabAsset: {fileID: 0} 646 | serializedVersion: 6 647 | m_Component: 648 | - component: {fileID: 1729358149} 649 | - component: {fileID: 1729358151} 650 | - component: {fileID: 1729358150} 651 | m_Layer: 5 652 | m_Name: Piece 653 | m_TagString: Untagged 654 | m_Icon: {fileID: 0} 655 | m_NavMeshLayer: 0 656 | m_StaticEditorFlags: 0 657 | m_IsActive: 1 658 | --- !u!224 &1729358149 659 | RectTransform: 660 | m_ObjectHideFlags: 0 661 | m_CorrespondingSourceObject: {fileID: 0} 662 | m_PrefabInstance: {fileID: 0} 663 | m_PrefabAsset: {fileID: 0} 664 | m_GameObject: {fileID: 1729358148} 665 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 666 | m_LocalPosition: {x: 0, y: 0, z: 0} 667 | m_LocalScale: {x: 1, y: 1, z: 1} 668 | m_Children: [] 669 | m_Father: {fileID: 298502875} 670 | m_RootOrder: 0 671 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 672 | m_AnchorMin: {x: 0.5, y: 0.5} 673 | m_AnchorMax: {x: 0.5, y: 0.5} 674 | m_AnchoredPosition: {x: 0, y: 0} 675 | m_SizeDelta: {x: 100, y: 100} 676 | m_Pivot: {x: 0.5, y: 0.5} 677 | --- !u!114 &1729358150 678 | MonoBehaviour: 679 | m_ObjectHideFlags: 0 680 | m_CorrespondingSourceObject: {fileID: 0} 681 | m_PrefabInstance: {fileID: 0} 682 | m_PrefabAsset: {fileID: 0} 683 | m_GameObject: {fileID: 1729358148} 684 | m_Enabled: 1 685 | m_EditorHideFlags: 0 686 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 687 | m_Name: 688 | m_EditorClassIdentifier: 689 | m_Material: {fileID: 0} 690 | m_Color: {r: 1, g: 1, b: 1, a: 1} 691 | m_RaycastTarget: 1 692 | m_Maskable: 1 693 | m_OnCullStateChanged: 694 | m_PersistentCalls: 695 | m_Calls: [] 696 | m_Sprite: {fileID: 21300000, guid: 3b80dd1a67a45024980146031d649b7c, type: 3} 697 | m_Type: 0 698 | m_PreserveAspect: 0 699 | m_FillCenter: 1 700 | m_FillMethod: 4 701 | m_FillAmount: 1 702 | m_FillClockwise: 1 703 | m_FillOrigin: 0 704 | m_UseSpriteMesh: 0 705 | m_PixelsPerUnitMultiplier: 1 706 | --- !u!222 &1729358151 707 | CanvasRenderer: 708 | m_ObjectHideFlags: 0 709 | m_CorrespondingSourceObject: {fileID: 0} 710 | m_PrefabInstance: {fileID: 0} 711 | m_PrefabAsset: {fileID: 0} 712 | m_GameObject: {fileID: 1729358148} 713 | m_CullTransparentMesh: 0 714 | --- !u!1 &1931663067 715 | GameObject: 716 | m_ObjectHideFlags: 0 717 | m_CorrespondingSourceObject: {fileID: 0} 718 | m_PrefabInstance: {fileID: 0} 719 | m_PrefabAsset: {fileID: 0} 720 | serializedVersion: 6 721 | m_Component: 722 | - component: {fileID: 1931663071} 723 | - component: {fileID: 1931663070} 724 | - component: {fileID: 1931663069} 725 | - component: {fileID: 1931663068} 726 | m_Layer: 5 727 | m_Name: Canvas 728 | m_TagString: Untagged 729 | m_Icon: {fileID: 0} 730 | m_NavMeshLayer: 0 731 | m_StaticEditorFlags: 0 732 | m_IsActive: 1 733 | --- !u!114 &1931663068 734 | MonoBehaviour: 735 | m_ObjectHideFlags: 0 736 | m_CorrespondingSourceObject: {fileID: 0} 737 | m_PrefabInstance: {fileID: 0} 738 | m_PrefabAsset: {fileID: 0} 739 | m_GameObject: {fileID: 1931663067} 740 | m_Enabled: 1 741 | m_EditorHideFlags: 0 742 | m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} 743 | m_Name: 744 | m_EditorClassIdentifier: 745 | m_IgnoreReversedGraphics: 1 746 | m_BlockingObjects: 0 747 | m_BlockingMask: 748 | serializedVersion: 2 749 | m_Bits: 4294967295 750 | --- !u!114 &1931663069 751 | MonoBehaviour: 752 | m_ObjectHideFlags: 0 753 | m_CorrespondingSourceObject: {fileID: 0} 754 | m_PrefabInstance: {fileID: 0} 755 | m_PrefabAsset: {fileID: 0} 756 | m_GameObject: {fileID: 1931663067} 757 | m_Enabled: 1 758 | m_EditorHideFlags: 0 759 | m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} 760 | m_Name: 761 | m_EditorClassIdentifier: 762 | m_UiScaleMode: 1 763 | m_ReferencePixelsPerUnit: 100 764 | m_ScaleFactor: 1 765 | m_ReferenceResolution: {x: 1920, y: 1080} 766 | m_ScreenMatchMode: 0 767 | m_MatchWidthOrHeight: 0.5 768 | m_PhysicalUnit: 3 769 | m_FallbackScreenDPI: 96 770 | m_DefaultSpriteDPI: 96 771 | m_DynamicPixelsPerUnit: 1 772 | --- !u!223 &1931663070 773 | Canvas: 774 | m_ObjectHideFlags: 0 775 | m_CorrespondingSourceObject: {fileID: 0} 776 | m_PrefabInstance: {fileID: 0} 777 | m_PrefabAsset: {fileID: 0} 778 | m_GameObject: {fileID: 1931663067} 779 | m_Enabled: 1 780 | serializedVersion: 3 781 | m_RenderMode: 0 782 | m_Camera: {fileID: 0} 783 | m_PlaneDistance: 100 784 | m_PixelPerfect: 0 785 | m_ReceivesEvents: 1 786 | m_OverrideSorting: 0 787 | m_OverridePixelPerfect: 0 788 | m_SortingBucketNormalizedSize: 0 789 | m_AdditionalShaderChannelsFlag: 0 790 | m_SortingLayerID: 0 791 | m_SortingOrder: 0 792 | m_TargetDisplay: 0 793 | --- !u!224 &1931663071 794 | RectTransform: 795 | m_ObjectHideFlags: 0 796 | m_CorrespondingSourceObject: {fileID: 0} 797 | m_PrefabInstance: {fileID: 0} 798 | m_PrefabAsset: {fileID: 0} 799 | m_GameObject: {fileID: 1931663067} 800 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 801 | m_LocalPosition: {x: 0, y: 0, z: 0} 802 | m_LocalScale: {x: 0, y: 0, z: 0} 803 | m_Children: 804 | - {fileID: 298502875} 805 | m_Father: {fileID: 0} 806 | m_RootOrder: 2 807 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 808 | m_AnchorMin: {x: 0, y: 0} 809 | m_AnchorMax: {x: 0, y: 0} 810 | m_AnchoredPosition: {x: 0, y: 0} 811 | m_SizeDelta: {x: 0, y: 0} 812 | m_Pivot: {x: 0, y: 0} 813 | -------------------------------------------------------------------------------- /RadialMenu_v3/Demo_v3.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0dc32c8d9d715204c8fddf57da42e649 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /RadialMenu_v3/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f0cef201fe84ca347a1bc06907b6a13f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /RadialMenu_v3/Scripts/ClockwisePolarCoord.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | // 날짜 : 2021-04-26 PM 4:25:55 7 | // 작성자 : Rito 8 | 9 | namespace Rito.RadialMenu_v3 10 | { 11 | // 북쪽이 0도, 시계방향으로 각도가 커지는 시계 극좌표계의 좌표 12 | [Serializable] 13 | public struct ClockwisePolarCoord 14 | { 15 | /*********************************************************************** 16 | * Fields, Properties 17 | ***********************************************************************/ 18 | #region . 19 | /// 반지름 20 | public float Radius { get; set; } 21 | /// 0 ~ 360 각도 22 | public float Angle 23 | { 24 | get => _angle; 25 | set => _angle = ClampAngle(value); 26 | } 27 | private float _angle; 28 | 29 | #endregion 30 | /*********************************************************************** 31 | * Constructor 32 | ***********************************************************************/ 33 | #region . 34 | public ClockwisePolarCoord(float radius, float angle) 35 | { 36 | Radius = radius; 37 | _angle = ClampAngle(angle); 38 | } 39 | 40 | #endregion 41 | /*********************************************************************** 42 | * Private Static 43 | ***********************************************************************/ 44 | #region . 45 | /// 0 ~ 360 범위 내의 각도 값 리턴 46 | private static float ClampAngle(float angle) 47 | { 48 | angle %= 360f; 49 | if (angle < 0f) 50 | angle += 360f; 51 | return angle; 52 | } 53 | 54 | /// +x축 기준 반시계 각도 <-> +y축 기준 시계 각도 서로 변환 55 | private static float CovertAngle(float angle) 56 | => 90f - angle; 57 | 58 | /// Degree(0 ~ 360)로 Sin 계산 59 | private static float Sin(float angle) 60 | => Mathf.Sin(angle * Mathf.Deg2Rad); 61 | 62 | /// Degree(0 ~ 360)로 Cos 계산 63 | private static float Cos(float angle) 64 | => Mathf.Cos(angle * Mathf.Deg2Rad); 65 | 66 | #endregion 67 | /*********************************************************************** 68 | * Public Static 69 | ***********************************************************************/ 70 | #region . 71 | public static ClockwisePolarCoord Zero => new ClockwisePolarCoord(0f, 0f); 72 | public static ClockwisePolarCoord North => new ClockwisePolarCoord(1f, 0f); 73 | public static ClockwisePolarCoord East => new ClockwisePolarCoord(1f, 90f); 74 | public static ClockwisePolarCoord South => new ClockwisePolarCoord(1f, 180f); 75 | public static ClockwisePolarCoord West => new ClockwisePolarCoord(1f, 270f); 76 | 77 | /// 직교 좌표로부터 변환 78 | public static ClockwisePolarCoord FromVector2(in Vector2 vec) 79 | { 80 | if (vec == Vector2.zero) 81 | return Zero; 82 | 83 | float radius = vec.magnitude; 84 | float angle = Mathf.Atan2(vec.y, vec.x) * Mathf.Rad2Deg; 85 | 86 | return new ClockwisePolarCoord(radius, CovertAngle(angle)); 87 | } 88 | 89 | public static bool operator ==(ClockwisePolarCoord a, ClockwisePolarCoord b) 90 | { 91 | return Mathf.Approximately(a.Angle, b.Angle) && 92 | Mathf.Approximately(a.Radius, b.Radius); 93 | } 94 | 95 | public static bool operator !=(ClockwisePolarCoord a, ClockwisePolarCoord b) 96 | { 97 | return !(Mathf.Approximately(a.Angle, b.Angle) && 98 | Mathf.Approximately(a.Radius, b.Radius)); 99 | } 100 | 101 | #endregion 102 | /*********************************************************************** 103 | * Public 104 | ***********************************************************************/ 105 | #region . 106 | public ClockwisePolarCoord Normalized => new ClockwisePolarCoord(1f, Angle); 107 | 108 | public Vector2 ToVector2() 109 | { 110 | if (Radius == 0f && Angle == 0f) 111 | return Vector2.zero; 112 | 113 | float angle = CovertAngle(Angle); 114 | return new Vector2(Radius * Cos(angle), Radius * Sin(angle)); 115 | } 116 | 117 | public override string ToString() 118 | => $"({Radius}, {Angle})"; 119 | 120 | public override bool Equals(object obj) 121 | { 122 | if(obj == null) return false; 123 | 124 | if (obj is ClockwisePolarCoord other) 125 | { 126 | return this == other; 127 | } 128 | else 129 | return false; 130 | } 131 | 132 | public override int GetHashCode() 133 | { 134 | return base.GetHashCode(); 135 | } 136 | 137 | #endregion 138 | } 139 | } -------------------------------------------------------------------------------- /RadialMenu_v3/Scripts/ClockwisePolarCoord.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6369e330427740b4bb260cdbc05beb2b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /RadialMenu_v3/Scripts/Easing.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | // 날짜 : 2021-04-28 PM 7:11:21 7 | // 작성자 : Rito 8 | 9 | namespace Rito.RadialMenu_v3 10 | { 11 | public enum EasingType 12 | { 13 | None, 14 | InExpo, 15 | OutExpo, 16 | OutBack, 17 | InBounce, 18 | OutBounce, 19 | InOutBounce, 20 | OutElastic, 21 | } 22 | 23 | public static class Easing 24 | { 25 | public static float Get(float x, EasingType type) 26 | { 27 | switch (type) 28 | { 29 | default: 30 | case EasingType.None: return x; 31 | case EasingType.InExpo: return EaseInExpo(x); 32 | case EasingType.OutExpo: return EaseOutExpo(x); 33 | case EasingType.OutBack: return EaseOutBack(x); 34 | case EasingType.InBounce: return EaseInBounce(x); 35 | case EasingType.OutBounce: return EaseOutBounce(x); 36 | case EasingType.InOutBounce: return EaseInOutBounce(x); 37 | case EasingType.OutElastic: return EaseOutElastic(x); 38 | } 39 | } 40 | 41 | public static float EaseInExpo(float x) 42 | { 43 | return x == 0f ? 0f : Mathf.Pow(2f, 10f * x - 10f); 44 | } 45 | public static float EaseOutExpo(float x) 46 | { 47 | return x == 1f ? 1f : 1f - Mathf.Pow(2f, -10f * x); 48 | } 49 | 50 | public static float EaseOutBack(float x) 51 | { 52 | const float c1 = 1.70158f; 53 | const float c3 = c1 + 1f; 54 | 55 | return 1f + c3 * Mathf.Pow(x - 1f, 3f) + c1 * Mathf.Pow(x - 1f, 2f); 56 | } 57 | 58 | public static float EaseInBounce(float x) 59 | { 60 | return 1 - EaseOutBounce(1 - x); 61 | } 62 | public static float EaseOutBounce(float x) 63 | { 64 | const float n1 = 7.5625f; 65 | const float d1 = 2.75f; 66 | 67 | if (x < 1f / d1) 68 | { 69 | return n1 * x * x; 70 | } 71 | else if (x < 2f / d1) 72 | { 73 | return n1 * (x -= 1.5f / d1) * x + 0.75f; 74 | } 75 | else if (x < 2.5f / d1) 76 | { 77 | return n1 * (x -= 2.25f / d1) * x + 0.9375f; 78 | } 79 | else 80 | { 81 | return n1 * (x -= 2.625f / d1) * x + 0.984375f; 82 | } 83 | } 84 | public static float EaseInOutBounce(float x) 85 | { 86 | return x < 0.5f 87 | ? (1f - EaseOutBounce(1f - 2f * x)) * 0.5f 88 | : (1f + EaseOutBounce(2f * x - 1f)) * 0.5f; 89 | } 90 | 91 | public static float EaseOutElastic(float x) 92 | { 93 | const float c4 = (2f * Mathf.PI) / 3f; 94 | 95 | return x == 0f 96 | ? 0f 97 | : x == 1f 98 | ? 1f 99 | : Mathf.Pow(2f, -10f * x) * Mathf.Sin((x * 10f - 0.75f) * c4) + 1f; 100 | } 101 | } 102 | } -------------------------------------------------------------------------------- /RadialMenu_v3/Scripts/Easing.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e33825b52528870468a26c5cb06f488e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /RadialMenu_v3/Scripts/RadialMenu.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using UnityEngine.UI; 6 | 7 | // 날짜 : 2021-04-26 PM 2:47:40 8 | // 작성자 : Rito 9 | 10 | namespace Rito.RadialMenu_v3 11 | { 12 | [DisallowMultipleComponent] 13 | public partial class RadialMenu : MonoBehaviour 14 | { 15 | //[Header("Options")] 16 | //[Range(2, 16)] 17 | [SerializeField] private int _pieceCount = 8; // 조각 개수 18 | 19 | //[Range(0.2f, 1f)] 20 | [SerializeField] private float _appearanceDuration = .3f; // 등장에 걸리는 시간 21 | //[Range(0.2f, 1f)] 22 | [SerializeField] private float _disppearanceDuration = .3f; // 소멸에 걸리는 시간 23 | [SerializeField] private float _pieceDist = 180f; // 중앙으로부터 각 조각의 거리 24 | 25 | //[Range(0.01f, 0.5f)] 26 | [SerializeField] private float _centerRange = 0.1f; // 커서 인식 안되는 중앙 범위 27 | 28 | //[Header("Objects")] 29 | [SerializeField] private GameObject _pieceSample; // 복제될 조각 게임오브젝트 30 | [SerializeField] private RectTransform _arrow; // 화살표 이미지의 부모 트랜스폼 31 | 32 | // 복제된 조각들 33 | private Image[] _pieceImages; 34 | private RectTransform[] _pieceRects; 35 | private Vector2[] _pieceDirections; // 각 조각이 위치할 방향의 벡터 36 | 37 | private float _arrowRotationZ; 38 | 39 | //[Header("Debug"), Space(20)] 40 | [SerializeField] 41 | private int _selectedIndex = -1; 42 | 43 | private const float NotSelectedPieceAlpha = 0.5f; 44 | private static readonly Color SelectedPieceColor = new Color(1f, 1f, 1f, 1f); 45 | private static readonly Color NotSelectedPieceColor = new Color(1f, 1f, 1f, NotSelectedPieceAlpha); 46 | 47 | /*********************************************************************** 48 | * Unity Events 49 | ***********************************************************************/ 50 | #region . 51 | 52 | private void Awake() 53 | { 54 | InitPieceImages(); 55 | InitPieceDirections(); 56 | InitStateDicts(); 57 | 58 | HideGameObject(); 59 | } 60 | 61 | #endregion 62 | /*********************************************************************** 63 | * Private Methods 64 | ***********************************************************************/ 65 | #region . 66 | /// 조각 샘플 복제하여 조각들 생성 67 | private void InitPieceImages() 68 | { 69 | _pieceSample.SetActive(true); 70 | 71 | _pieceImages = new Image[_pieceCount]; 72 | _pieceRects = new RectTransform[_pieceCount]; 73 | 74 | for (int i = 0; i < _pieceCount; i++) 75 | { 76 | // 조각 복제 77 | var clone = Instantiate(_pieceSample, transform); 78 | clone.name = $"Piece {i}"; 79 | 80 | // Image, RectTransform 가져와 배열에 초기화 81 | _pieceImages[i] = clone.GetComponent(); 82 | _pieceRects[i] = _pieceImages[i].rectTransform; 83 | } 84 | 85 | _pieceSample.SetActive(false); 86 | } 87 | 88 | /// 시계 극좌표계를 이용해 각 조각들의 방향벡터 계산 89 | private void InitPieceDirections() 90 | { 91 | _pieceDirections = new Vector2[_pieceCount]; 92 | 93 | float angle = 360f / _pieceCount; 94 | 95 | for (int i = 0; i < _pieceCount; i++) 96 | { 97 | _pieceDirections[i] = new ClockwisePolarCoord(1f, angle * i).ToVector2(); 98 | } 99 | } 100 | 101 | private void ShowGameObject() 102 | { 103 | gameObject.SetActive(true); 104 | } 105 | 106 | private void HideGameObject() 107 | { 108 | gameObject.SetActive(false); 109 | } 110 | 111 | /// 지정한 이미지의 알파값 변경 112 | private void SetPieceAlpha(int index, float alpha) 113 | { 114 | _pieceImages[index].color = new Color(1f, 1f, 1f, alpha); 115 | } 116 | 117 | /// 지정한 이미지의 중심으로부터의 거리 변경 118 | private void SetPieceDistance(int index, float distance) 119 | { 120 | _pieceRects[index].anchoredPosition = _pieceDirections[index] * distance; 121 | } 122 | 123 | /// 해당 인덱스의 조각 크기 변경 124 | private void SetPieceScale(int index, float scale) 125 | { 126 | _pieceRects[index].localScale = new Vector3(scale, scale, 1f); 127 | } 128 | 129 | /// 모든 조각을 중심으로부터 지정 거리만큼 이동 130 | private void SetAllPieceDistance(float distance) 131 | { 132 | for (int i = 0; i < _pieceCount; i++) 133 | { 134 | _pieceRects[i].anchoredPosition = _pieceDirections[i] * distance; 135 | } 136 | } 137 | 138 | /// 모든 조각 이미지의 알파값 변경 139 | private void SetAllPieceAlpha(float alpha) 140 | { 141 | for (int i = 0; i < _pieceCount; i++) 142 | { 143 | _pieceImages[i].color = new Color(1f, 1f, 1f, alpha); 144 | } 145 | } 146 | 147 | /// 모든 조각의 크기 변경 148 | private void SetAllPieceScale(float scale) 149 | { 150 | for (int i = 0; i < _pieceCount; i++) 151 | { 152 | _pieceRects[i].localScale = new Vector3(scale, scale, 1f); 153 | } 154 | } 155 | 156 | private void SetAllPieceImageEnabled(bool enabled) 157 | { 158 | for (int i = 0; i < _pieceCount; i++) 159 | { 160 | _pieceImages[i].enabled = enabled; 161 | } 162 | } 163 | 164 | /// 화살표 이미지 게임오브젝트 활성화 여부, 회전 설정 165 | private void SetArrow(bool show) 166 | { 167 | _arrow.gameObject.SetActive(show); 168 | 169 | if (show) 170 | { 171 | _arrow.eulerAngles = Vector3.forward * _arrowRotationZ; 172 | } 173 | } 174 | #endregion 175 | /*********************************************************************** 176 | * Public Methods 177 | ***********************************************************************/ 178 | #region . 179 | 180 | /// 등장 181 | public void Show() 182 | { 183 | ForceToEnterAppearanceState(); 184 | } 185 | 186 | /// 사라지면서 인덱스 리턴 187 | public int Hide() 188 | { 189 | ForceToEnterDisappearanceState(); 190 | SetArrow(false); 191 | 192 | return _selectedIndex; 193 | } 194 | 195 | /// 각각 피스 이미지(스프라이트) 등록 196 | public void SetPieceImageSprites(Sprite[] sprites) 197 | { 198 | int i = 0; 199 | int len = sprites.Length; 200 | for (; i < _pieceCount && i < len; i++) 201 | { 202 | if (sprites[i] != null) 203 | { 204 | _pieceImages[i].sprite = sprites[i]; 205 | } 206 | } 207 | } 208 | 209 | #endregion 210 | } 211 | } -------------------------------------------------------------------------------- /RadialMenu_v3/Scripts/RadialMenu.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7479e11c29522a34d9bcc736b2c8464d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /RadialMenu_v3/Scripts/RadialMenuEditor.cs: -------------------------------------------------------------------------------- 1 | #if UNITY_EDITOR 2 | 3 | using System; 4 | using System.Collections; 5 | using System.Collections.Generic; 6 | using UnityEngine; 7 | using UnityEditor; 8 | 9 | // 날짜 : 2021-04-29 PM 7:52:37 10 | // 작성자 : Rito 11 | 12 | namespace Rito.RadialMenu_v3.Editor 13 | { 14 | [CustomEditor(typeof(RadialMenu))] 15 | public class RadialMenuEditor : UnityEditor.Editor 16 | { 17 | private RadialMenu rm; 18 | 19 | private static readonly Color LightRed = Color.red * 2f; 20 | private static readonly Color LightYellow = Color.yellow * 2f; 21 | private static readonly Color LightCyan = Color.cyan * 2f; 22 | 23 | private SerializedProperty _selectedIndex; 24 | 25 | private SerializedProperty _pieceCount; 26 | private SerializedProperty _pieceDist; 27 | private SerializedProperty _centerRange; 28 | 29 | private SerializedProperty _appearanceDuration; 30 | private SerializedProperty _disppearanceDuration; 31 | 32 | private SerializedProperty _pieceSample; 33 | private SerializedProperty _arrow; 34 | 35 | private SerializedProperty _appearanceType; 36 | private SerializedProperty _appearanceEasing; 37 | private SerializedProperty _mainType; 38 | private SerializedProperty _disappearanceType; 39 | private SerializedProperty _disappearanceEasing; 40 | 41 | private bool run = true; 42 | 43 | private void OnEnable() 44 | { 45 | rm = target as RadialMenu; 46 | 47 | try 48 | { 49 | _selectedIndex = serializedObject.FindProperty(nameof(_selectedIndex)); 50 | _pieceCount = serializedObject.FindProperty(nameof(_pieceCount)); 51 | _pieceDist = serializedObject.FindProperty(nameof(_pieceDist)); 52 | _centerRange = serializedObject.FindProperty(nameof(_centerRange)); 53 | _appearanceDuration = serializedObject.FindProperty(nameof(_appearanceDuration)); 54 | _disppearanceDuration = serializedObject.FindProperty(nameof(_disppearanceDuration)); 55 | _pieceSample = serializedObject.FindProperty(nameof(_pieceSample)); 56 | _arrow = serializedObject.FindProperty(nameof(_arrow)); 57 | _appearanceType = serializedObject.FindProperty(nameof(_appearanceType)); 58 | _appearanceEasing = serializedObject.FindProperty(nameof(_appearanceEasing)); 59 | _mainType = serializedObject.FindProperty(nameof(_mainType)); 60 | _disappearanceType = serializedObject.FindProperty(nameof(_disappearanceType)); 61 | _disappearanceEasing = serializedObject.FindProperty(nameof(_disappearanceEasing)); 62 | } 63 | catch 64 | { 65 | run = false; 66 | } 67 | } 68 | 69 | public override void OnInspectorGUI() 70 | { 71 | if (!run) 72 | { 73 | base.OnInspectorGUI(); 74 | return; 75 | } 76 | 77 | ColorLabelField("Information", LightRed); 78 | 79 | EditorGUILayout.LabelField("Selected Index", 80 | _selectedIndex.intValue.ToString(), EditorStyles.boldLabel); 81 | 82 | if (EditorApplication.isPlaying) 83 | { 84 | EditorGUILayout.LabelField("Piece Count", 85 | _pieceCount.intValue.ToString(), EditorStyles.boldLabel); 86 | } 87 | 88 | EditorGUILayout.Space(12f); 89 | 90 | ColorLabelField("Options", LightYellow); 91 | 92 | if (!EditorApplication.isPlaying) 93 | { 94 | EditorGUILayout.IntSlider(_pieceCount, 2, 16, "Piece Count"); 95 | } 96 | 97 | EditorGUILayout.Slider(_pieceDist, 100f, 300f, "Piece Distance From Center"); 98 | EditorGUILayout.Slider(_centerRange, 0.01f, 0.3f, "Center Range"); 99 | 100 | EditorGUILayout.Space(8f); 101 | EditorGUILayout.Slider(_appearanceDuration, 0.1f, 1f, "Appearance Duration"); 102 | EditorGUILayout.Slider(_disppearanceDuration, 0.1f, 1f, "Disappearance Duration"); 103 | 104 | if (!EditorApplication.isPlaying) 105 | { 106 | EditorGUILayout.Space(8f); 107 | ColorLabelField("Objects", LightYellow); 108 | EditorGUILayout.PropertyField(_pieceSample); 109 | EditorGUILayout.PropertyField(_arrow); 110 | } 111 | 112 | EditorGUILayout.Space(12f); 113 | ColorLabelField("Animation Options", LightCyan); 114 | EditorGUILayout.PropertyField(_appearanceType); 115 | 116 | EditorGUI.BeginDisabledGroup(CheckAppearanceTypeIsProgressive(_appearanceType.enumValueIndex)); 117 | EditorGUILayout.PropertyField(_appearanceEasing); 118 | EditorGUI.EndDisabledGroup(); 119 | 120 | EditorGUILayout.Space(6f); 121 | EditorGUILayout.PropertyField(_mainType); 122 | 123 | EditorGUILayout.Space(6f); 124 | EditorGUILayout.PropertyField(_disappearanceType); 125 | 126 | EditorGUI.BeginDisabledGroup(CheckAppearanceTypeIsProgressive(_disappearanceType.enumValueIndex)); 127 | EditorGUILayout.PropertyField(_disappearanceEasing); 128 | EditorGUI.EndDisabledGroup(); 129 | 130 | 131 | serializedObject.ApplyModifiedProperties(); 132 | } 133 | 134 | private bool CheckAppearanceTypeIsProgressive(int enumValue) 135 | { 136 | return enumValue == 0 || enumValue >= (int)RadialMenu.AppearanceType.Progressive; 137 | } 138 | 139 | private static void ColorLabelField(string text, in Color color) 140 | { 141 | using (new LabelColorScope(color)) 142 | EditorGUILayout.LabelField(text, EditorStyles.boldLabel); 143 | } 144 | 145 | private class LabelColorScope : GUI.Scope 146 | { 147 | private readonly Color oldColor; 148 | public LabelColorScope(in Color color) 149 | { 150 | oldColor = GUI.color; 151 | GUI.color = color; 152 | } 153 | 154 | protected override void CloseScope() 155 | { 156 | GUI.color = oldColor; 157 | } 158 | } 159 | } 160 | } 161 | 162 | #endif -------------------------------------------------------------------------------- /RadialMenu_v3/Scripts/RadialMenuEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 127899c986cb5354b8738c0a1172fb1c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /RadialMenu_v3/Scripts/RadialMenu_States.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 228cbff74f92ff8448cbf7baa3b51e70 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9aa4354bae682647a36b4c08be50809 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Arrow_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v3/Sprites/Arrow_512.png -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Arrow_512.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f07f71d07864d134d945f571422c9fba 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 512 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 512 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Circle_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v3/Sprites/Circle_512.png -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Circle_512.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b80dd1a67a45024980146031d649b7c 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 512 65 | resizeAlgorithm: 0 66 | textureFormat: 4 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 512 77 | resizeAlgorithm: 0 78 | textureFormat: 4 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7a0455195d4725d4ab5c31466962e273 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/bear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v3/Sprites/Kenny Animals/bear.png -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/bear.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fda47973982a80a40a3641067a9fedf0 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/chick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v3/Sprites/Kenny Animals/chick.png -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/chick.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 96b97ad148ec9eb4495df6577730f10c 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/chicken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v3/Sprites/Kenny Animals/chicken.png -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/chicken.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 806e360eb89988e41a135520936be6be 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/cow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v3/Sprites/Kenny Animals/cow.png -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/cow.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4990d8f182075e34296d5375565d54c0 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/duck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v3/Sprites/Kenny Animals/duck.png -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/duck.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f2689a3d925203b489ef31bdd36f614d 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/elephant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v3/Sprites/Kenny Animals/elephant.png -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/elephant.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83e912a581a7d67489e4ef11e81b531d 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/penguin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v3/Sprites/Kenny Animals/penguin.png -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/penguin.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ef7f7b507929ff4b962cd1820828ae0 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/pig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rito15/Unity-Radial-Menu/633fa0a1851db3277a60d8d377d1d1f38b56be7c/RadialMenu_v3/Sprites/Kenny Animals/pig.png -------------------------------------------------------------------------------- /RadialMenu_v3/Sprites/Kenny Animals/pig.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9354303bf5223d14c9216f722c44c0ff 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 256 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 256 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 5e97eb03825dee720800000000000000 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /RadialMenu_v3/Test_RadialMenu.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | // 날짜 : 2021-04-26 PM 3:12:50 7 | // 작성자 : Rito 8 | 9 | namespace Rito.RadialMenu_v3.Test 10 | { 11 | public class Test_RadialMenu : MonoBehaviour 12 | { 13 | public RadialMenu radialMenu; 14 | public KeyCode key = KeyCode.G; 15 | 16 | [Space] 17 | public Sprite[] sprites; 18 | 19 | private void Start() 20 | { 21 | radialMenu.SetPieceImageSprites(sprites); 22 | } 23 | 24 | private void Update() 25 | { 26 | if (Input.GetKeyDown(key)) 27 | { 28 | radialMenu.Show(); 29 | } 30 | else if (Input.GetKeyUp(key)) 31 | { 32 | int selected = radialMenu.Hide(); 33 | Debug.Log($"Selected : {selected}"); 34 | } 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /RadialMenu_v3/Test_RadialMenu.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fea75795c8b614e4b8912ec45a306927 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | --------------------------------------------------------------------------------