Skip to content
Snippets Groups Projects
Commit bc95aaaf authored by Richard Marcus's avatar Richard Marcus
Browse files

removed radial menu for now

parent 88d22ddb
No related branches found
No related tags found
No related merge requests found
Showing
with 7 additions and 1274 deletions
......@@ -101,7 +101,8 @@ public int GetFirstEmptyID()
public void OnToolModeChanged(ToolMode ActiveToolMode)
{
//We need to do this somehwere...
CommunicationEvents.ActiveToolMode = ActiveToolMode;
switch (ActiveToolMode)
{
case ToolMode.MarkPointMode:
......
using UnityEngine;
public abstract class Fact : ScriptableObject
public abstract class Fact
{
public int Id;
public GameObject Representation;
......
......@@ -38,7 +38,7 @@ void Update()
}
void OnToolModeChanged(ToolMode ActiveToolMode) {
CommunicationEvents.ActiveToolMode = ActiveToolMode;
//When ToolMode changes: Start a new Timer for showing up the Text for it
gameObject.GetComponentInChildren<UnityEngine.UI.Text>().text = "ToolMode = " + ActiveToolMode;
//gameObject.SetActive(true);
......
......@@ -18,6 +18,7 @@ void Start()
//Set MarkPointMode as the default ActiveToolMode
ActiveToolMode = ToolMode.ExtraMode;//ToolMode.MarkPointMode;
CommunicationEvents.ToolModeChangedEvent.Invoke(ActiveToolMode);
}
// Update is called once per frame
......@@ -63,6 +64,8 @@ void CheckMouseButtons(Ray ray)
}
}
//Checks if the ToolMode was switched by User, and handle it
void CheckToolModeSelection() {
if (Input.GetButtonDown("ToolMode")) {
......
fileFormatVersion: 2
guid: b543d9677cbde534ab69c0a229bfdb06
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: e14d5a8406f1c2143ab21945698629a8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 33486cdeab1df8b46b310e47ac120bf2
folderAsset: yes
timeCreated: 1493236921
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(PiUI))]
public class PiUIEditor : Editor
{
PiUI myTarget;
[SerializeField]
float[] lastAngles;
int slicesToAdd;
System.Action addSlice;
System.Action<PiUI.PiData> removeSlice;
System.Action<int> angleUpdate;
List<PiUI.PiData> slicesToRemove = new List<PiUI.PiData>( );
List<string> itemsNotToDraw = new List<string>( );
private void OnEnable()
{
myTarget = (PiUI)target;
addSlice = AddSlice;
removeSlice = SliceToRemove;
angleUpdate = AngleUpdate;
}
public override void OnInspectorGUI()
{
if (lastAngles == null)
{
lastAngles = new float[myTarget.piData.Length];
}
if (GUILayout.Button("Change PiCut State"))
{
myTarget.piCut.gameObject.SetActive(!myTarget.piCut.gameObject.activeInHierarchy);
}
if (GUILayout.Button("Sync Colors"))
{
myTarget.SyncColor( );
}
if (!myTarget.dynamicallyScaleToResolution)
{
if (!itemsNotToDraw.Contains("defaultResolution"))
itemsNotToDraw.Add("defaultResolution");
}
else
{
itemsNotToDraw.Remove("defaultResolution");
}
if (!myTarget.outline)
{
if (!itemsNotToDraw.Contains("outlineColor"))
itemsNotToDraw.Add("outlineColor");
}
else
{
itemsNotToDraw.Remove("outlineColor");
}
if (!myTarget.syncColors)
{
if (!itemsNotToDraw.Contains("syncNormal"))
{
itemsNotToDraw.Add("syncNormal");
}
if (!itemsNotToDraw.Contains("syncSelected"))
{
itemsNotToDraw.Add("syncSelected");
}
if (!itemsNotToDraw.Contains("syncDisabled"))
{
itemsNotToDraw.Add("syncDisabled");
}
}
else
{
itemsNotToDraw.Remove("syncNormal");
itemsNotToDraw.Remove("syncSelected");
itemsNotToDraw.Remove("syncDisabled");
}
serializedObject.Update( );
if (itemsNotToDraw.Count == 0)
{
EditorUtility.SetDirty(myTarget);
}
else
{
DrawPropertiesExcluding(serializedObject, itemsNotToDraw.ToArray( ));
EditorUtility.SetDirty(myTarget);
}
serializedObject.ApplyModifiedProperties( );
serializedObject.Update( );
myTarget.piData = myTarget.piData.ToList( ).OrderBy(x => x.order).ToArray( );
var sprop = serializedObject.FindProperty("piData");
for (var i = 0; i < myTarget.piData.Length; i++)
{
if (!slicesToRemove.Contains(myTarget.piData[i]))
{
myTarget.piData[i].OnInspectorGUI(sprop.GetArrayElementAtIndex(i), myTarget, addSlice, removeSlice, angleUpdate);
}
if(i< myTarget.piData.Length - 1)
{
GUILayout.Space(10);
}
}
if (myTarget.piData.Length < 1)
{
myTarget.piData = new PiUI.PiData[1];
}
myTarget.sliceCount = myTarget.piData.Length;
if (slicesToAdd > 0)
{
Undo.RecordObject(myTarget, "Add Slice");
PiUI.PiData[] tempArray = new PiUI.PiData[myTarget.piData.Length + slicesToAdd];
for (int i = myTarget.piData.Length; i < tempArray.Length; i++)
{
tempArray[i] = new PiUI.PiData( );
tempArray[i].SetValues(myTarget.piData[myTarget.piData.Length - 1]);
tempArray[i].order = i;
}
for (int j = 0; j < myTarget.piData.Length; j++)
{
tempArray[j] = myTarget.piData[j];
}
slicesToAdd = 0;
myTarget.piData = tempArray;
}
else if (slicesToRemove.Count > 0 && myTarget.piData.Length > 1)
{
Undo.RecordObject(myTarget, "Removed Slice");
PiUI.PiData[] tempArray = new PiUI.PiData[myTarget.piData.Length - slicesToRemove.Count];
int addedSlices = 0;
for (int i = 0; i < myTarget.piData.Length; i++)
{
if (!slicesToRemove.Contains(myTarget.piData[i]))
{
tempArray[addedSlices] = myTarget.piData[i];
tempArray[addedSlices].order = addedSlices;
addedSlices++;
}
}
myTarget.piData = tempArray;
slicesToRemove = new List<PiUI.PiData>( );
}
serializedObject.ApplyModifiedProperties( );
if(SumOfAngles() > 360)
{
for (int i = 0; i < myTarget.piData.Length; i++)
{
AngleUpdate(i);
}
}
if(SumOfAngles() < 360)
{
myTarget.piData[myTarget.piData.Length - 1].angle = 360 - SumOfAngles( );
}
/*
if (myTarget.piData.Length != myTarget.sliceCount)
{
if (myTarget.piData.Length < myTarget.sliceCount)
{
PiUI.PiData[] temp = new PiUI.PiData[myTarget.sliceCount];
for (int j = 0; j < myTarget.piData.Length; ++)
{
PiUI.PiData instance = myTarget.piData[i];
temp[i] = instance;
}
PiUI.PiData duplicateValue = myTarget.piData[myTarget.piData.Length - 1];
for (int j = myTarget.piData.Length - 1; j < myTarget.sliceCount; j++)
{
PiUI.PiData instance = new PiUI.PiData( );
if (duplicateValue != null)
instance.SetValues(duplicateValue);
temp[j] = instance;
}
myTarget.piData = temp;
}
else if (myTarget.piData.Length > myTarget.sliceCount)
{
PiUI.PiData[] temp = new PiUI.PiData[myTarget.sliceCount];
for (int i = 0; i < myTarget.sliceCount; i++)
{
PiUI.PiData instance = myTarget.piData[i];
temp[i] = instance;
}
myTarget.piData = temp;
}
lastAngles = new float[myTarget.piData.Length];
}
float sumOfAngles = 0;
for (int i = 0; i < myTarget.piData.Length; i++)
{
if (myTarget.piData[i].angle == 0 || myTarget.piData[i].angle < 20)
{
myTarget.piData[i].angle = 360 / myTarget.sliceCount;
}
sumOfAngles += myTarget.piData[i].angle;
// lastAngles[i] = myTarget.piData[i].angle;
}
*/
}
private void OnSceneGUI()
{
Color temp = Color.blue;
temp.a = .25f;
Handles.color = temp;
Handles.DrawSolidDisc(myTarget.transform.position, Vector3.back, myTarget.innerRadius);
temp = Color.red;
temp.a = .25f;
Handles.color = temp;
Handles.DrawSolidDisc(myTarget.transform.position, Vector3.back, myTarget.outerRadius);
}
public void AddSlice()
{
slicesToAdd++;
}
public void SliceToRemove(PiUI.PiData sliceToRemove)
{
if (!slicesToRemove.Contains(sliceToRemove))
slicesToRemove.Add(sliceToRemove);
}
public float SumOfAngles()
{
float sum = 0;
for(int i = 0; i< myTarget.piData.Length;i++)
{
sum += Mathf.Abs(myTarget.piData[i].angle);
}
return sum;
}
public void AngleUpdate(int order)
{
float sumBefore = 0;
for (int i = 0; i <= order; i++)
{
sumBefore += myTarget.piData[i].angle;
}
float remainder = (360 - sumBefore) / (myTarget.piData.Length - order - 1);
for (int i = order + 1; i < myTarget.piData.Length; i++)
{
myTarget.piData[i].angle = remainder;
}
}
}
fileFormatVersion: 2
guid: 30bd0057a03c8534bb6983ab78d0cfb0
timeCreated: 1492976183
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(PiUIManager))]
public class PiUIManagerEditor : Editor
{
PiUIManager myTarget;
private void OnEnable()
{
myTarget = (PiUIManager)target;
}
public override void OnInspectorGUI()
{
DrawDefaultInspector( );
PiUI[] piMenus = myTarget.GetComponentsInChildren<PiUI>( );
string[] piMenuNames = new string[myTarget.nameMenu.Length];
if (piMenus.Length != myTarget.nameMenu.Length)
{
for (int i = 0; i < myTarget.nameMenu.Length; i++)
{
piMenuNames[i] = myTarget.nameMenu[i].name;
}
myTarget.nameMenu = new PiUIManager.NameMenuPair[piMenus.Length];
for (int j = 0; j < piMenus.Length; j++)
{
myTarget.nameMenu[j] = new PiUIManager.NameMenuPair( );
myTarget.nameMenu[j].name = piMenus[j].name;
myTarget.nameMenu[j].menu = piMenus[j];
}
}
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: c9a55a54879ba0d40898a24d385fa03f
timeCreated: 1493583037
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: d77e04497f03abc49b1e8645d34c90eb
folderAsset: yes
timeCreated: 1499018613
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1065173547389084
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 224494168993995434}
- component: {fileID: 222802367555133426}
- component: {fileID: 114181107016418064}
m_Layer: 5
m_Name: Name
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &224494168993995434
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1065173547389084}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 1}
m_Children: []
m_Father: {fileID: 224138766239629172}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 594.95483, y: 200}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &222802367555133426
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1065173547389084}
m_CullTransparentMesh: 0
--- !u!114 &114181107016418064
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1065173547389084}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 24
m_FontStyle: 1
m_BestFit: 1
m_MinSize: 24
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text:
--- !u!1 &1132463827655624
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 224913580620660618}
- component: {fileID: 222595553155739324}
- component: {fileID: 114001678645335254}
m_Layer: 5
m_Name: Icon
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &224913580620660618
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1132463827655624}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 224138766239629172}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 40, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &222595553155739324
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1132463827655624}
m_CullTransparentMesh: 0
--- !u!114 &114001678645335254
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1132463827655624}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 15d0420c856ba2b418ee4b4f23384592, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
--- !u!1 &1554814401622004
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 224138766239629172}
- component: {fileID: 222636191456537426}
- component: {fileID: 114320249106291338}
- component: {fileID: 114068071977108894}
- component: {fileID: 114645569182575068}
m_Layer: 5
m_Name: PiCut
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &224138766239629172
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1554814401622004}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 224913580620660618}
- {fileID: 224494168993995434}
m_Father: {fileID: 224700795880293456}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 650, y: 650}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &222636191456537426
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1554814401622004}
m_CullTransparentMesh: 0
--- !u!114 &114320249106291338
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1554814401622004}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 8cce5c55c56600c4bb6946b16aa87b91, type: 3}
m_Type: 3
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 1
m_UseSpriteMesh: 0
--- !u!114 &114068071977108894
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1554814401622004}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c4b9e14333f740d45b2220b101ec5898, type: 3}
m_Name:
m_EditorClassIdentifier:
innerRadius: 0
outerRadius: 0
normalColor: {r: 0, g: 0, b: 0, a: 0}
highlightColor: {r: 0, g: 0, b: 0, a: 0}
disabledColor: {r: 0, g: 0, b: 0, a: 0}
clickEvent:
m_PersistentCalls:
m_Calls: []
onHoverEnter:
m_PersistentCalls:
m_Calls: []
onHoverExit:
m_PersistentCalls:
m_Calls: []
onHoverEvents: 0
parent: {fileID: 0}
--- !u!114 &114645569182575068
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1554814401622004}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -900027084, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_EffectColor: {r: 1, g: 0.64137924, b: 0, a: 1}
m_EffectDistance: {x: 1, y: 1}
m_UseGraphicAlpha: 1
--- !u!1 &1827115478416732
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 224700795880293456}
- component: {fileID: 114358342674604368}
m_Layer: 5
m_Name: Pi Menu
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &224700795880293456
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1827115478416732}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 0}
m_Children:
- {fileID: 224138766239629172}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -640, y: -360}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &114358342674604368
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1827115478416732}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 73d756ce428286446a7a7c4412a5d3f7, type: 3}
m_Name:
m_EditorClassIdentifier:
piCut: {fileID: 114068071977108894}
innerRadius: 124.99
outerRadius: 313.36
syncColors: 1
syncNormal: {r: 0.14759947, g: 0.17721638, b: 0.47794116, a: 1}
syncSelected: {r: 1, g: 0.80689657, b: 0, a: 1}
syncDisabled: {r: 0, g: 0, b: 0, a: 0}
outline: 0
outlineColor: {r: 0, g: 0, b: 0, a: 1}
fade: 0
transitionSpeed: 10
openTransition: 0
closeTransition: 1
dynamicallyScaleToResolution: 1
defaultResolution: {x: 1920, y: 1080}
textVerticalOffset: 0
useController: 1
joystickButton: 0
joystickInput: {x: 0, y: 0}
hoverScale: 1.3
scaleModifier: 1
interactable: 0
iconDistance: 0
equalSlices: 0
sliceCount: 6
piData:
- angle: 60
sliceLabel:
icon: {fileID: 0}
nonHighlightedColor: {r: 0, g: 0, b: 0, a: 0}
highlightedColor: {r: 0, g: 0, b: 0, a: 0}
disabledColor: {r: 0, g: 0, b: 0, a: 0}
onSlicePressed:
m_PersistentCalls:
m_Calls: []
iconSize: 8
isInteractable: 1
hoverFunctions: 0
onHoverEnter:
m_PersistentCalls:
m_Calls: []
onHoverExit:
m_PersistentCalls:
m_Calls: []
order: 0
- angle: 60
sliceLabel:
icon: {fileID: 0}
nonHighlightedColor: {r: 0, g: 0, b: 0, a: 0}
highlightedColor: {r: 0, g: 0, b: 0, a: 0}
disabledColor: {r: 0, g: 0, b: 0, a: 0}
onSlicePressed:
m_PersistentCalls:
m_Calls: []
iconSize: 8
isInteractable: 1
hoverFunctions: 0
onHoverEnter:
m_PersistentCalls:
m_Calls: []
onHoverExit:
m_PersistentCalls:
m_Calls: []
order: 0
- angle: 60
sliceLabel:
icon: {fileID: 0}
nonHighlightedColor: {r: 0, g: 0, b: 0, a: 0}
highlightedColor: {r: 0, g: 0, b: 0, a: 0}
disabledColor: {r: 0, g: 0, b: 0, a: 0}
onSlicePressed:
m_PersistentCalls:
m_Calls: []
iconSize: 8
isInteractable: 1
hoverFunctions: 0
onHoverEnter:
m_PersistentCalls:
m_Calls: []
onHoverExit:
m_PersistentCalls:
m_Calls: []
order: 0
- angle: 60
sliceLabel:
icon: {fileID: 0}
nonHighlightedColor: {r: 0, g: 0, b: 0, a: 0}
highlightedColor: {r: 0, g: 0, b: 0, a: 0}
disabledColor: {r: 0, g: 0, b: 0, a: 0}
onSlicePressed:
m_PersistentCalls:
m_Calls: []
iconSize: 8
isInteractable: 1
hoverFunctions: 0
onHoverEnter:
m_PersistentCalls:
m_Calls: []
onHoverExit:
m_PersistentCalls:
m_Calls: []
order: 0
- angle: 60
sliceLabel:
icon: {fileID: 0}
nonHighlightedColor: {r: 0, g: 0, b: 0, a: 0}
highlightedColor: {r: 0, g: 0, b: 0, a: 0}
disabledColor: {r: 0, g: 0, b: 0, a: 0}
onSlicePressed:
m_PersistentCalls:
m_Calls: []
iconSize: 8
isInteractable: 1
hoverFunctions: 0
onHoverEnter:
m_PersistentCalls:
m_Calls: []
onHoverExit:
m_PersistentCalls:
m_Calls: []
order: 0
- angle: 60
sliceLabel:
icon: {fileID: 0}
nonHighlightedColor: {r: 0, g: 0, b: 0, a: 0}
highlightedColor: {r: 0, g: 0, b: 0, a: 0}
disabledColor: {r: 0, g: 0, b: 0, a: 0}
onSlicePressed:
m_PersistentCalls:
m_Calls: []
iconSize: 8
isInteractable: 1
hoverFunctions: 0
onHoverEnter:
m_PersistentCalls:
m_Calls: []
onHoverExit:
m_PersistentCalls:
m_Calls: []
order: 0
openedMenu: 0
worldSpace: 0
angleList: []
overMenu: 0
fileFormatVersion: 2
guid: f8d1463efe512bc4a90597e508985031
timeCreated: 1496565839
licenseType: Store
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1091749397679754
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4127677740177966}
- component: {fileID: 114204338487255518}
- component: {fileID: 114961249132881464}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4127677740177966
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1091749397679754}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -249, y: -279, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 224313250904812496}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &114204338487255518
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1091749397679754}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 5
--- !u!114 &114961249132881464
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1091749397679754}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
m_InputActionsPerSecond: 10
m_RepeatDelay: 0.5
m_ForceModuleActive: 0
--- !u!1 &1269802956761258
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 224313250904812496}
- component: {fileID: 223611474831116880}
- component: {fileID: 114894445029899696}
- component: {fileID: 114518365577166800}
- component: {fileID: 114494581148173954}
m_Layer: 5
m_Name: Pi UI Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &224313250904812496
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1269802956761258}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 4127677740177966}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!223 &223611474831116880
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1269802956761258}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_AdditionalShaderChannelsFlag: 25
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &114894445029899696
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1269802956761258}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 1920, y: 1080}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
--- !u!114 &114518365577166800
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1269802956761258}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &114494581148173954
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1269802956761258}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0473888730c8a294fb6de4729423eb7b, type: 3}
m_Name:
m_EditorClassIdentifier:
nameMenu: []
fileFormatVersion: 2
guid: 146c96bb88fae814ab01a136e0625dbc
timeCreated: 1496559865
licenseType: Store
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
File deleted
fileFormatVersion: 2
guid: 1255cc72fb02ab24abcd48d7d23a5508
timeCreated: 1501018872
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: a259d411c6cc8a0489b20e6015de7db5
folderAsset: yes
timeCreated: 1493576214
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
using UnityEngine.EventSystems;
[System.Serializable]
public class PiPiece : MonoBehaviour
{
private bool isOver;
private bool lerp;
private Image thisImg;
[HideInInspector]
[SerializeField]
private float innerRadius;
[HideInInspector]
[SerializeField]
private float outerRadius;
[HideInInspector]
[SerializeField]
private Color normalColor;
[HideInInspector]
[SerializeField]
private Color highlightColor;
[HideInInspector]
[SerializeField]
private Color disabledColor;
[HideInInspector]
[SerializeField]
private PiUI.SliceEvent clickEvent;
[HideInInspector]
[SerializeField]
private UnityEvent onHoverEnter;
[HideInInspector]
[SerializeField]
private UnityEvent onHoverExit;
[SerializeField]
private bool onHoverEvents;
[SerializeField]
[HideInInspector]
PiUI parent;
float scaledOR;
public ToolMode ToolMode;
private float maxAngle;
private float minAngle;
private Text sliceLabel;
private Image sliceIcon;
private bool isInteractable;
private bool lastFrameIsOver;
void OnEnable()
{
thisImg = GetComponent<Image>( );
sliceIcon = transform.GetChild(0).GetComponent<Image>( );
sliceLabel = GetComponentInChildren<Text>( );
}
private void Start()
{
thisImg.color= normalColor;
}
public void ManualUpdate()
{
Vector2 inputAxis = parent.joystickInput;
sliceIcon.transform.position = Center( );
sliceLabel.transform.position = Center( ) - new Vector2(0, sliceIcon.rectTransform.sizeDelta.y + parent.textVerticalOffset) * parent.scaleModifier * transform.lossyScale.magnitude;
if (isInteractable)
{
if (isOver && transform.localScale.sqrMagnitude < (Vector2.one * parent.hoverScale).sqrMagnitude)
{
transform.localScale = Vector2.Lerp(transform.localScale, Vector2.one * parent.hoverScale, Time.deltaTime * 10f);
}
else if (transform.localScale.sqrMagnitude > 1 && !isOver)
{
transform.localScale = Vector2.Lerp(transform.localScale, Vector2.one, Time.deltaTime * 10f);
}
Vector2 mousePos = Input.mousePosition;
Vector2 temp = mousePos - (Vector2)transform.position;
float angle = (Mathf.Atan2(temp.y, temp.x) * Mathf.Rad2Deg);
angle = (angle + 360) % 360;
scaledOR = outerRadius;
if (angle < maxAngle && angle > minAngle && temp.magnitude >= innerRadius && temp.magnitude <= scaledOR)
{
isOver = true;
}
else if (parent.useController && isInteractable)
{
temp = inputAxis;
angle = (Mathf.Atan2(temp.y, temp.x) * Mathf.Rad2Deg);
angle = (angle + 360) % 360;
if (angle == 0)
{
angle += 1;
}
if (angle < maxAngle && angle >= minAngle && inputAxis != Vector2.zero)
{
isOver = true;
}
else
{
isOver = false;
thisImg.color= Color.Lerp(thisImg.color, normalColor, Time.deltaTime * 10f);
}
}
else
{
isOver = false;
thisImg.color= Color.Lerp(thisImg.color, normalColor, Time.deltaTime * 10f);
}
if (!parent.interactable)
{
isOver = false;
if (parent.fade)
{
thisImg.color= Color.Lerp(thisImg.color, Color.clear, Time.deltaTime * 10f);
}
}
if (isOver && parent.interactable)
{
scaledOR *= parent.hoverScale;
transform.SetAsLastSibling( );
thisImg.color= Color.Lerp(thisImg.color, highlightColor, Time.deltaTime * 10f);
if (Input.GetMouseButtonDown(0) || Input.GetMouseButtonUp(0) || parent.useController && parent.joystickButton)
{
clickEvent.Invoke(ToolMode);
}
}
}
else
{
thisImg.color = disabledColor;
transform.localScale = Vector2.Lerp(transform.localScale, Vector2.one, Time.deltaTime * 10f);
}
if (transform.rotation.eulerAngles.z == 359f || transform.rotation.eulerAngles.z == 0)
{
transform.rotation = Quaternion.identity;
}
if (transform.rotation.eulerAngles.z == 359f || transform.rotation.eulerAngles.z == 0 && parent.openedMenu)
{
transform.rotation = Quaternion.identity;
maxAngle = 359f;
minAngle = 359f - (thisImg.fillAmount * 360);
}
else if (parent.interactable)
{
maxAngle = transform.rotation.eulerAngles.z;
minAngle = transform.rotation.eulerAngles.z - (thisImg.fillAmount * 360);
}
sliceLabel.transform.rotation = Quaternion.identity;
sliceIcon.transform.rotation = Quaternion.identity;
if (lastFrameIsOver != isOver && isInteractable && parent.interactable && onHoverEvents)
{
if (isOver && onHoverEnter.GetPersistentEventCount() >= 0)
{
OnHoverEnter( );
}
else if (!isOver && onHoverEnter.GetPersistentEventCount( ) >= 0)
{
OnHoverExit( );
}
}
if (isOver)
{
parent.overMenu = true;
}
lastFrameIsOver = isOver;
}
public Vector2 Center()
{
if (!thisImg)
{
thisImg = GetComponent<Image>( );
}
float temp = (innerRadius * parent.iconDistance / parent.scaleModifier + outerRadius / parent.scaleModifier) / 3f;
temp *= transform.lossyScale.magnitude;
float angleOfFill = thisImg.fillAmount * 360;
Vector2 center = Quaternion.AngleAxis(transform.rotation.eulerAngles.z - angleOfFill / 2f, Vector3.forward) * new Vector2(temp, 0);
center += (Vector2)parent.transform.position;
return center;
}
public void SetData(PiUI.PiData piData, float iR, float oR, PiUI creator)
{
parent = creator;
if (!thisImg || !sliceIcon || !sliceLabel)
{
thisImg = GetComponent<Image>( );
sliceIcon = transform.GetChild(0).GetComponent<Image>( );
sliceLabel = GetComponentInChildren<Text>( );
}
innerRadius = iR;
outerRadius = oR;
normalColor = piData.nonHighlightedColor;
highlightColor = piData.highlightedColor;
disabledColor = piData.disabledColor;
clickEvent = piData.onSlicePressed;
if (parent.fade)
{
thisImg.color= Color.clear;
}
maxAngle = transform.rotation.eulerAngles.z;
minAngle = transform.rotation.eulerAngles.z - (thisImg.fillAmount * 360);
if (transform.rotation.eulerAngles.z == 359f || transform.rotation.eulerAngles.z == 0)
{
transform.rotation = Quaternion.identity;
maxAngle = 359f;
minAngle = 359f - (thisImg.fillAmount * 360);
}
sliceIcon.rectTransform.sizeDelta = new Vector2(piData.iconSize, piData.iconSize);
sliceLabel.text = piData.sliceLabel;
sliceIcon.sprite = piData.icon;
sliceIcon.transform.position = Center( );
sliceLabel.transform.position = Center( ) - new Vector2(0, sliceIcon.rectTransform.sizeDelta.y + parent.textVerticalOffset) * parent.scaleModifier * transform.localScale.magnitude;
isInteractable = piData.isInteractable;
onHoverEvents = piData.hoverFunctions;
if (onHoverEvents)
{
onHoverEnter = piData.onHoverEnter;
onHoverExit = piData.onHoverExit;
}
}
private void OnHoverEnter()
{
onHoverEnter.Invoke( );
}
private void OnHoverExit()
{
onHoverExit.Invoke( );
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment