├── .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 | 
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------