This commit is contained in:
2024-10-16 00:03:41 +08:00
commit 897058435c
5033 changed files with 1009728 additions and 0 deletions

View File

@@ -0,0 +1,237 @@
using UnityEngine;
using System.Collections;
using UnityEditor;
using HedgehogTeam.EasyTouch;
#if UNITY_5_3_OR_NEWER
using UnityEditor.SceneManagement;
#endif
[CustomEditor(typeof(EasyTouch))]
public class EasyTouchInspector : UnityEditor.Editor {
public override void OnInspectorGUI(){
EasyTouch t = (EasyTouch)target;
#region General properties
EditorGUILayout.Space();
t.enable = HTGuiTools.Toggle("Enable EasyTouch", t.enable,true);
t.enableRemote = HTGuiTools.Toggle("Enable Unity Remote", t.enableRemote,true);
EditorGUILayout.Space();
#endregion
#region Gui propertie
t.showGuiInspector = HTGuiTools.BeginFoldOut( "GUI compatibilty",t.showGuiInspector);
if (t.showGuiInspector){
HTGuiTools.BeginGroup();{
// UGUI
EditorGUILayout.Space();
t.allowUIDetection = HTGuiTools.Toggle("Enable Unity UI detection",t.allowUIDetection,true);
if (t.allowUIDetection ){
EditorGUI.indentLevel++;
t.enableUIMode = HTGuiTools.Toggle("Unity UI compatibilty", t.enableUIMode,true);
t.autoUpdatePickedUI = HTGuiTools.Toggle("Auto update picked Unity UI", t.autoUpdatePickedUI,true);
EditorGUI.indentLevel--;
}
EditorGUILayout.Space();
// NGUI
t.enabledNGuiMode = HTGuiTools.Toggle("Enable NGUI compatibilty", t.enabledNGuiMode,true);
if (t.enabledNGuiMode){
//EditorGUI.indentLevel++;
HTGuiTools.BeginGroup(5);
{
// layers
serializedObject.Update();
SerializedProperty layers = serializedObject.FindProperty("nGUILayers");
EditorGUILayout.PropertyField( layers,false);
serializedObject.ApplyModifiedProperties();
// Camera
if (HTGuiTools.Button("Add camera",Color.green,100, false)){
t.nGUICameras.Add( null);
}
for (int i=0;i< t.nGUICameras.Count;i++){
EditorGUILayout.BeginHorizontal();
if (HTGuiTools.Button("X",Color.red,19)){
t.nGUICameras.RemoveAt(i);
i--;
}
else{
t.nGUICameras[i] = (Camera)EditorGUILayout.ObjectField("",t.nGUICameras[i],typeof(Camera),true);
EditorGUILayout.EndHorizontal();
}
}
}HTGuiTools.EndGroup();
//EditorGUI.indentLevel--;
}
}HTGuiTools.EndGroup();
}
#endregion
#region Auto selection properties
t.showSelectInspector = HTGuiTools.BeginFoldOut( "Automatic selection",t.showSelectInspector);
if (t.showSelectInspector){
HTGuiTools.BeginGroup();{
t.autoSelect = HTGuiTools.Toggle("Enable auto-select",t.autoSelect,true);
if (t.autoSelect){
EditorGUILayout.Space();
// 3d layer
serializedObject.Update();
SerializedProperty layers = serializedObject.FindProperty("pickableLayers3D");
EditorGUILayout.PropertyField( layers,true);
serializedObject.ApplyModifiedProperties();
t.autoUpdatePickedObject = HTGuiTools.Toggle( "Auto update picked gameobject",t.autoUpdatePickedObject,true);
EditorGUILayout.Space();
//2D
t.enable2D = HTGuiTools.Toggle("Enable 2D collider",t.enable2D,true);
if (t.enable2D){
serializedObject.Update();
layers = serializedObject.FindProperty("pickableLayers2D");
EditorGUILayout.PropertyField( layers,true);
serializedObject.ApplyModifiedProperties();
}
// Camera
GUILayout.Space(5f);
HTGuiTools.BeginGroup(5);
{
if (HTGuiTools.Button( "Add Camera",Color.green,100)){
t.touchCameras.Add(new ECamera(null,false));
}
for (int i=0;i< t.touchCameras.Count;i++){
EditorGUILayout.BeginHorizontal();
if (HTGuiTools.Button("X",Color.red,19)){
t.touchCameras.RemoveAt(i);
i--;
}
if (i>=0){
t.touchCameras[i].camera = (Camera)EditorGUILayout.ObjectField("",t.touchCameras[i].camera,typeof(Camera),true,GUILayout.MinWidth(150));
t.touchCameras[i].guiCamera = EditorGUILayout.ToggleLeft("Gui",t.touchCameras[i].guiCamera,GUILayout.Width(50));
EditorGUILayout.EndHorizontal();
}
}
}HTGuiTools.EndGroup();
}
}HTGuiTools.EndGroup();
}
#endregion
#region General gesture properties
t.showGestureInspector = HTGuiTools.BeginFoldOut("General gesture properties",t.showGestureInspector);
if (t.showGestureInspector){
HTGuiTools.BeginGroup();{
t.gesturePriority =(EasyTouch.GesturePriority) EditorGUILayout.EnumPopup("Priority to",t.gesturePriority );
t.StationaryTolerance = EditorGUILayout.FloatField("Stationary tolerance",t.StationaryTolerance);
t.longTapTime = EditorGUILayout.FloatField("Long tap time",t.longTapTime);
EditorGUILayout.Space ();
t.doubleTapDetection = (EasyTouch.DoubleTapDetection) EditorGUILayout.EnumPopup("Double tap detection",t.doubleTapDetection);
if (t.doubleTapDetection == EasyTouch.DoubleTapDetection.ByTime){
t.doubleTapTime = EditorGUILayout.Slider("Double tap time",t.doubleTapTime,0.15f,0.4f);
}
EditorGUILayout.Space ();
t.swipeTolerance = EditorGUILayout.FloatField("Swipe tolerance",t.swipeTolerance);
t.alwaysSendSwipe = EditorGUILayout.Toggle("always sent swipe event",t.alwaysSendSwipe);
}HTGuiTools.EndGroup();
}
#endregion
#region 2 fingers gesture
t.showTwoFingerInspector = HTGuiTools.BeginFoldOut("Two fingers gesture properties",t.showTwoFingerInspector);
if (t.showTwoFingerInspector){
HTGuiTools.BeginGroup();{
t.enable2FingersGesture = HTGuiTools.Toggle("2 fingers gesture",t.enable2FingersGesture,true);
if (t.enable2FingersGesture){
EditorGUI.indentLevel++;
t.twoFingerPickMethod = (EasyTouch.TwoFingerPickMethod)EditorGUILayout.EnumPopup("Pick method",t.twoFingerPickMethod);
EditorGUILayout.Separator();
t.enable2FingersSwipe = HTGuiTools.Toggle("Enable swipe & drag",t.enable2FingersSwipe,true);
EditorGUILayout.Separator();
t.enablePinch = HTGuiTools.Toggle("Enable Pinch",t.enablePinch,true);
if (t.enablePinch){
t.minPinchLength = EditorGUILayout.FloatField("Min pinch length",t.minPinchLength);
}
EditorGUILayout.Separator();
t.enableTwist = HTGuiTools.Toggle("Enable twist",t.enableTwist,true);
if (t.enableTwist){
t.minTwistAngle = EditorGUILayout.FloatField("Min twist angle",t.minTwistAngle);
}
EditorGUI.indentLevel--;
}
}HTGuiTools.EndGroup();
}
#endregion
#region Second Finger simulation
t.showSecondFingerInspector = HTGuiTools.BeginFoldOut("Second finger simulation", t.showSecondFingerInspector);
if (t.showSecondFingerInspector){
HTGuiTools.BeginGroup();{
t.enableSimulation = HTGuiTools.Toggle("Enable simulation",t.enableSimulation,true );
EditorGUILayout.Space();
if (t.enableSimulation){
EditorGUI.indentLevel++;
if (t.secondFingerTexture==null){
t.secondFingerTexture =Resources.Load("secondFinger") as Texture;
}
t.secondFingerTexture = (Texture)EditorGUILayout.ObjectField("Texture",t.secondFingerTexture,typeof(Texture),true);
EditorGUILayout.HelpBox("Change the keys settings for a fash compilation, or if you want to change the keys",MessageType.Info);
t.twistKey = (KeyCode)EditorGUILayout.EnumPopup( "Twist & pinch key", t.twistKey);
t.swipeKey = (KeyCode)EditorGUILayout.EnumPopup( "Swipe key", t.swipeKey);
EditorGUI.indentLevel--;
}
}HTGuiTools.EndGroup();
}
#endregion
if (GUI.changed){
EditorUtility.SetDirty(target);
#if UNITY_5_3_OR_NEWER
EditorSceneManager.MarkSceneDirty( EditorSceneManager.GetActiveScene());
#endif
}
}
}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 8dd4aa16173f5604085d778e85702c2e
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,93 @@
using UnityEngine;
using UnityEditor;
using System.Collections;
using UnityEngine.EventSystems;
using HedgehogTeam.EasyTouch;
public static class EasyTouchMenu{
[MenuItem ("GameObject/EasyTouch/EasyTouch", false, 0)]
static void AddEasyTouch(){
Selection.activeObject = EasyTouch.instance.gameObject;
}
}
/*
[MenuItem ("Window/GameAnalytics/Folder Structure/Revert to original", false, 601)]
static void RevertFolders ()
{
if (!Directory.Exists(Application.dataPath + "/Plugins/GameAnalytics/"))
{
Debug.LogWarning("Folder structure incompatible, are you already using original folder structure, or have you manually changed the folder structure?");
return;
}
if (!Directory.Exists(Application.dataPath + "/GameAnalytics/"))
AssetDatabase.CreateFolder("Assets", "GameAnalytics");
if (!Directory.Exists(Application.dataPath + "/GameAnalytics/Plugins"))
AssetDatabase.CreateFolder("Assets/GameAnalytics", "Plugins");
AssetDatabase.MoveAsset("Assets/Plugins/GameAnalytics/Android", "Assets/GameAnalytics/Plugins/Android");
AssetDatabase.MoveAsset("Assets/Plugins/GameAnalytics/Components", "Assets/GameAnalytics/Plugins/Components");
AssetDatabase.MoveAsset("Assets/Plugins/GameAnalytics/Examples", "Assets/GameAnalytics/Plugins/Examples");
AssetDatabase.MoveAsset("Assets/Plugins/GameAnalytics/Framework", "Assets/GameAnalytics/Plugins/Framework");
AssetDatabase.MoveAsset("Assets/Plugins/GameAnalytics/iOS", "Assets/GameAnalytics/Plugins/iOS");
AssetDatabase.MoveAsset("Assets/Plugins/GameAnalytics/Playmaker", "Assets/GameAnalytics/Plugins/Playmaker");
AssetDatabase.MoveAsset("Assets/Plugins/GameAnalytics/WebPlayer", "Assets/GameAnalytics/Plugins/WebPlayer");
AssetDatabase.MoveAsset("Assets/Editor/GameAnalytics", "Assets/GameAnalytics/Editor");
AssetDatabase.DeleteAsset("Assets/Plugins/GameAnalytics");
AssetDatabase.DeleteAsset("Assets/Editor/GameAnalytics");
Debug.Log("Project must be reloaded when reverting folder structure.");
EditorApplication.OpenProject(Application.dataPath.Remove(Application.dataPath.Length - "Assets".Length, "Assets".Length));
}
*/
/*
#if true
#endif*/
/*
[MenuItem ("Window/Easy Touch/Folder Structure/Switch to JS", false, 100)]
static void JsFolders(){
// EasyTouch is here
if (!Directory.Exists(Application.dataPath + "/EasyTouchBundle/EasyTouch/Plugins/")){
Debug.LogWarning("Folder structure incompatible, did you already switch to JS folder structure, or have you manually changed the folder structure?");
return;
}
// Create Structure
if (!Directory.Exists(Application.dataPath + "/Plugins/"))
AssetDatabase.CreateFolder("Assets", "Plugins");
if (!Directory.Exists(Application.dataPath + "/Plugins/EasyTouch"))
AssetDatabase.CreateFolder("Assets/Plugins", "EasyTouch");
AssetDatabase.MoveAsset("Assets/EasyTouchBundle/EasyTouch/Plugins/Components","Assets/Plugins/EasyTouch/Components");
AssetDatabase.MoveAsset("Assets/EasyTouchBundle/EasyTouch/Plugins/Engine","Assets/Plugins/EasyTouch/Engine");
// Refresh database
AssetDatabase.Refresh();
}
[MenuItem ("Window/EasyTouch/Folder Structure/Revert to original", false, 200)]
static void CFolders(){
if (!Directory.Exists(Application.dataPath + "/Plugins/EasyTouch/")){
Debug.LogWarning("Folder structure incompatible, are you already using original folder structure, or have you manually changed the folder structure?");
return;
}
AssetDatabase.MoveAsset("Assets/Plugins/EasyTouch/Components","Assets/EasyTouchBundle/EasyTouch/Plugins/Components");
AssetDatabase.MoveAsset("Assets/Plugins/EasyTouch/Engine","Assets/EasyTouchBundle/EasyTouch/Plugins/Engine");
AssetDatabase.DeleteAsset("Assets/Plugins/EasyTouch");
Debug.Log("Project must be reloaded when reverting folder structure.");
EditorApplication.OpenProject(Application.dataPath.Remove(Application.dataPath.Length - "Assets".Length, "Assets".Length));
}*/

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: febc228cacb117e4ca61d1754161d7be
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,199 @@
using UnityEngine;
using UnityEditor;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using HedgehogTeam.EasyTouch;
#if UNITY_5_3_OR_NEWER
using UnityEditor.SceneManagement;
#endif
[CustomEditor(typeof(EasyTouchTrigger))]
public class EasyTouchTriggerInspector : UnityEditor.Editor {
public override void OnInspectorGUI(){
EasyTouchTrigger t = (EasyTouchTrigger)target;
string[] eventNames = Enum.GetNames( typeof(EasyTouch.EvtType) ) ;
eventNames[0] = "Add new event";
#region Event properties
GUILayout.Space(5f);
for (int i=1;i<eventNames.Length;i++){
EasyTouch.EvtType ev = (EasyTouch.EvtType)Enum.Parse( typeof(EasyTouch.EvtType), eventNames[i]);
int result = t.receivers.FindIndex(
delegate(EasyTouchTrigger.EasyTouchReceiver e){
return e.eventName == ev;
}
);
if (result>-1){
TriggerInspector( ev,t);
}
}
#endregion
#region Add Event
GUI.backgroundColor = Color.green;
int index = EditorGUILayout.Popup("", 0, eventNames,"Button");
GUI.backgroundColor = Color.white;
if (index!=0){
//AddEvent((EasyTouch.EventName)Enum.Parse( typeof(EasyTouch.EventName), eventNames[index]),t );
t.AddTrigger( (EasyTouch.EvtType)Enum.Parse( typeof(EasyTouch.EvtType), eventNames[index]));
EditorPrefs.SetBool( eventNames[index], true);
}
#endregion
if (GUI.changed){
EditorUtility.SetDirty(t);
#if UNITY_5_3_OR_NEWER
EditorSceneManager.MarkSceneDirty( EditorSceneManager.GetActiveScene());
#endif
}
}
private void TriggerInspector(EasyTouch.EvtType ev, EasyTouchTrigger t){
bool folding = EditorPrefs.GetBool( ev.ToString() );
folding = HTGuiTools.BeginFoldOut( ev.ToString(),folding,false);
EditorPrefs.SetBool( ev.ToString(), folding);
if (folding){
HTGuiTools.BeginGroup();
int i=0;
while (i<t.receivers.Count){
if (t.receivers[i].eventName == ev){
GUI.color = new Color(0.8f,0.8f,0.8f,1);
HTGuiTools.BeginGroup(5);
GUI.color = Color.white;
EditorGUILayout.BeginHorizontal();
t.receivers[i].enable = HTGuiTools.Toggle("Enable",t.receivers[i].enable,55,true);
t.receivers[i].name = EditorGUILayout.TextField("",t.receivers[i].name, GUILayout.MinWidth(130));
// Delete
GUILayout.FlexibleSpace();
if (HTGuiTools.Button("X",Color.red,19)){
t.receivers[i] = null;
t.receivers.RemoveAt( i );
EditorGUILayout.EndHorizontal();
return;
}
EditorGUILayout.EndHorizontal();
EditorGUILayout.Space();
// Restriced
//t.receivers[i].restricted = HTGuiTools.Toggle("Restricted to gameobject",t.receivers[i].restricted,true);
t.receivers[i].triggerType = (EasyTouchTrigger.ETTType)EditorGUILayout.EnumPopup("Testing on",t.receivers[i].triggerType );
EditorGUILayout.BeginHorizontal();
t.receivers[i].restricted = EditorGUILayout.Toggle("",t.receivers[i].restricted ,(GUIStyle)"Radio" ,GUILayout.Width(15));
EditorGUILayout.LabelField("Only if on me (requiered a collider)");
EditorGUILayout.EndHorizontal();
EditorGUILayout.BeginHorizontal();
t.receivers[i].restricted = !EditorGUILayout.Toggle("",!t.receivers[i].restricted ,(GUIStyle)"Radio",GUILayout.Width(15));
EditorGUILayout.LabelField("All the time, or other object");
EditorGUILayout.EndHorizontal();
if (!t.receivers[i].restricted){
t.receivers[i].gameObject = (GameObject)EditorGUILayout.ObjectField("Other object",t.receivers[i].gameObject,typeof(GameObject),true);
}
EditorGUILayout.Space();
EditorGUILayout.Space();
t.receivers[i].otherReceiver = HTGuiTools.Toggle("Other receiver",t.receivers[i].otherReceiver,true);
if (t.receivers[i].otherReceiver){
t.receivers[i].gameObjectReceiver = (GameObject)EditorGUILayout.ObjectField("Receiver",t.receivers[i].gameObjectReceiver,typeof(GameObject),true);
}
// Method Name
EditorGUILayout.BeginHorizontal();
t.receivers[i].methodName = EditorGUILayout.TextField("Method name",t.receivers[i].methodName);
// Methode helper
string[] mNames = null;
if (!t.receivers[i].otherReceiver || (t.receivers[i].otherReceiver && t.receivers[i].gameObjectReceiver == null) ){
mNames = GetMethod( t.gameObject);
}
else if ( t.receivers[i].otherReceiver && t.receivers[i].gameObjectReceiver != null){
mNames = GetMethod( t.receivers[i].gameObjectReceiver);
}
int index = EditorGUILayout.Popup("", -1, mNames,"Button",GUILayout.Width(20));
if (index>-1){
t.receivers[i].methodName = mNames[index];
}
EditorGUILayout.EndHorizontal();
// Parameter
t.receivers[i].parameter = (EasyTouchTrigger.ETTParameter) EditorGUILayout.EnumPopup("Parameter to send",t.receivers[i].parameter);
HTGuiTools.EndGroup();
}
i++;
}
}
else{
HTGuiTools.BeginGroup();
}
HTGuiTools.EndGroup(false);
if (!GUILayout.Toggle(true,"+","ObjectPickerTab")){
t.AddTrigger( ev);
}
GUILayout.Space(5f);
}
private void AddEvent(EasyTouch.EvtType ev, EasyTouchTrigger t){
EasyTouchTrigger.EasyTouchReceiver r = new EasyTouchTrigger.EasyTouchReceiver();
r.enable = true;
r.restricted = true;
r.eventName = ev;
r.gameObject = t.gameObject;
t.receivers.Add( r );
}
private string[] GetMethod(GameObject obj){
List<string> methodName = new List<string>();
Component[] allComponents = obj.GetComponents<Component>();
if (allComponents.Length>0){
foreach( Component comp in allComponents){
if (comp!=null){
if (comp.GetType().IsSubclassOf( typeof(MonoBehaviour))){
MethodInfo[] methodInfos = comp.GetType().GetMethods();
foreach( MethodInfo methodInfo in methodInfos){
if ((methodInfo.DeclaringType.Namespace == null) || (!methodInfo.DeclaringType.Namespace.Contains("Unity") && !methodInfo.DeclaringType.Namespace.Contains("System"))){
if (methodInfo.IsPublic){
methodName.Add( methodInfo.Name );
}
}
}
}
}
}
}
//
return methodName.ToArray();
}
}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: c805d42d461a3ee41a947ec0f9e12636
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,203 @@
using UnityEngine;
using UnityEditor;
using UnityEditorInternal;
using System.Collections;
using System.IO;
using System.Text.RegularExpressions;
using System;
[InitializeOnLoad]
public class EasyTouchWelcomeScreen : EditorWindow {
private const string VERSION = "5.0.0";
private const string PLAYMAKERADDONVERSION = "1.0,0";
private const string SUPPORTURL = "http://www.thehedgehogteam.com/Forum/";
private const string OFFICIALTOPIC = "http://forum.unity3d.com/threads/released-easy-touch.135192/";
private const float width = 500;
private const float height = 440;
private const string PREFSHOWATSTARTUP = "EasyTouch.ShowWelcomeScreen";
private static bool showAtStartup;
private static GUIStyle imgHeader;
private static bool interfaceInitialized;
private static Texture supportIcon;
private static Texture cIcon;
private static Texture jsIcon;
private static Texture playmakerIcon;
private static Texture topicIcon;
[MenuItem("Tools/Easy Touch/Welcome Screen", false, 0)]
[MenuItem("Window/Easy Touch/Welcome Screen", false, 0)]
public static void OpenWelcomeWindow(){
GetWindow<EasyTouchWelcomeScreen>(true);
}
[MenuItem ("Tools/Easy Touch/Folder Structure/Switch to JS", false, 100)]
public static void JsFolders(){
// EasyTouch is here
if (!Directory.Exists(Application.dataPath + "/EasyTouchBundle/EasyTouch/Plugins/")){
Debug.LogWarning("Folder structure incompatible, did you already switch to JS folder structure, or have you manually changed the folder structure?");
return;
}
// Create Structure
if (!Directory.Exists(Application.dataPath + "/Plugins/"))
AssetDatabase.CreateFolder("Assets", "Plugins");
if (!Directory.Exists(Application.dataPath + "/Plugins/EasyTouch"))
AssetDatabase.CreateFolder("Assets/Plugins", "EasyTouch");
AssetDatabase.MoveAsset("Assets/EasyTouchBundle/EasyTouch/Plugins/Components","Assets/Plugins/EasyTouch/Components");
AssetDatabase.MoveAsset("Assets/EasyTouchBundle/EasyTouch/Plugins/Engine","Assets/Plugins/EasyTouch/Engine");
// Refresh database
AssetDatabase.Refresh();
}
[MenuItem ("Tools/Easy Touch/Folder Structure/Revert to original", false, 200)]
public static void CFolders(){
if (!Directory.Exists(Application.dataPath + "/Plugins/EasyTouch/")){
Debug.LogWarning("Folder structure incompatible, are you already using original folder structure, or have you manually changed the folder structure?");
return;
}
AssetDatabase.MoveAsset("Assets/Plugins/EasyTouch/Components","Assets/EasyTouchBundle/EasyTouch/Plugins/Components");
AssetDatabase.MoveAsset("Assets/Plugins/EasyTouch/Engine","Assets/EasyTouchBundle/EasyTouch/Plugins/Engine");
AssetDatabase.DeleteAsset("Assets/Plugins/EasyTouch");
Debug.Log("Project must be reloaded when reverting folder structure.");
EditorApplication.OpenProject(Application.dataPath.Remove(Application.dataPath.Length - "Assets".Length, "Assets".Length));
}
static EasyTouchWelcomeScreen(){
EditorApplication.playmodeStateChanged -= OnPlayModeChanged;
EditorApplication.playmodeStateChanged += OnPlayModeChanged;
showAtStartup = EditorPrefs.GetBool(PREFSHOWATSTARTUP, true);
if (showAtStartup){
EditorApplication.update -= OpenAtStartup;
EditorApplication.update += OpenAtStartup;
}
}
static void OpenAtStartup(){
OpenWelcomeWindow();
EditorApplication.update -= OpenAtStartup;
}
static void OnPlayModeChanged(){
EditorApplication.update -= OpenAtStartup;
EditorApplication.playmodeStateChanged -= OnPlayModeChanged;
}
void OnEnable(){
titleContent = new GUIContent("Welcome To Easy Touch");
maxSize = new Vector2(width, height);
minSize = maxSize;
}
public void OnGUI(){
InitInterface();
GUI.Box(new Rect(0, 0, width, 60), "", imgHeader);
GUI.Label( new Rect(width-90,45,200,20),new GUIContent("Version : " +VERSION));
GUILayoutUtility.GetRect(position.width, 64);
GUILayout.BeginVertical();
if (Button(playmakerIcon,"Install PlayMaker add-on","Requires PlayMaker 1.8 or higher.")){
InstallPlayMakerAddOn();
}
if (Button(jsIcon,"Switch to JS","Switch Easy Touch folder structure to be used with Java Script.")){
JsFolders();
}
if (Button(cIcon,"Revert to original","Revert Easy Touch folder structure to original (C#).")){
CFolders();
}
if (Button(supportIcon,"Community Forum","You need your invoice number to register, if you are a new user.")){
Application.OpenURL(SUPPORTURL);
}
if (Button(supportIcon,"Official topic","Official topic on Unity Forum.",3)){
Application.OpenURL(OFFICIALTOPIC);
}
bool show = GUILayout.Toggle(showAtStartup, "Show at startup");
if (show != showAtStartup){
showAtStartup = show;
EditorPrefs.SetBool(PREFSHOWATSTARTUP, showAtStartup);
}
GUILayout.EndVertical();
}
void InitInterface(){
if (!interfaceInitialized){
imgHeader = new GUIStyle();
imgHeader.normal.background = (Texture2D)Resources.Load("EasyTouchWelcome");
imgHeader.normal.textColor = Color.white;
supportIcon = (Texture)Resources.Load("btn_Support") as Texture;
playmakerIcon = (Texture)Resources.Load("btn_PlayMaker") as Texture;
cIcon = (Texture)Resources.Load("btn_cs") as Texture;
jsIcon = (Texture)Resources.Load("btn_js") as Texture;
interfaceInitialized = true;
}
}
bool Button(Texture texture, string heading, string body, int space=10){
GUILayout.BeginHorizontal();
GUILayout.Space(54);
GUILayout.Box(texture, GUIStyle.none, GUILayout.MaxWidth(48));
GUILayout.Space(10);
GUILayout.BeginVertical();
GUILayout.Space(1);
GUILayout.Label(heading, EditorStyles.boldLabel);
GUILayout.Label(body);
GUILayout.EndVertical();
GUILayout.EndHorizontal();
var rect = GUILayoutUtility.GetLastRect();
EditorGUIUtility.AddCursorRect(rect, MouseCursor.Link);
bool returnValue = false;
if (Event.current.type == EventType.MouseDown && rect.Contains(Event.current.mousePosition)){
returnValue = true;
}
GUILayout.Space(space);
return returnValue;
}
private void InstallPlayMakerAddOn(){
string package = "Assets/EasyTouchBundle/Install/PlayMakerAddOn.unitypackage";
try
{
AssetDatabase.ImportPackage(package, true);
}
catch (Exception)
{
Debug.LogError("Failed to import package: " + package);
throw;
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: d92488c9dd498a84eacbd541c4bf40d2
timeCreated: 1451128532
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,62 @@
// EasyTouch library is copyright (c) of Hedgehog Team
// Please send feedback or bug reports to the.hedgehog.team@gmail.com
using UnityEngine;
using UnityEditor;
using System;
using HedgehogTeam.EasyTouch;
[InitializeOnLoad]
public class EasytouchHierachyCallBack{
private static readonly EditorApplication.HierarchyWindowItemCallback hiearchyItemCallback;
private static Texture2D hierarchyIcon;
private static Texture2D HierarchyIcon {
get {
if (EasytouchHierachyCallBack.hierarchyIcon==null){
EasytouchHierachyCallBack.hierarchyIcon = (Texture2D)Resources.Load( "EasyTouch_Icon");
}
return EasytouchHierachyCallBack.hierarchyIcon;
}
}
private static Texture2D hierarchyEventIcon;
private static Texture2D HierarchyEventIcon {
get {
if (EasytouchHierachyCallBack.hierarchyEventIcon==null){
EasytouchHierachyCallBack.hierarchyEventIcon = (Texture2D)Resources.Load( "EasyTouchTrigger_Icon");
}
return EasytouchHierachyCallBack.hierarchyEventIcon;
}
}
// constructor
static EasytouchHierachyCallBack()
{
EasytouchHierachyCallBack.hiearchyItemCallback = new EditorApplication.HierarchyWindowItemCallback(EasytouchHierachyCallBack.DrawHierarchyIcon);
EditorApplication.hierarchyWindowItemOnGUI = (EditorApplication.HierarchyWindowItemCallback)Delegate.Combine(EditorApplication.hierarchyWindowItemOnGUI, EasytouchHierachyCallBack.hiearchyItemCallback);
}
private static void DrawHierarchyIcon(int instanceID, Rect selectionRect)
{
GameObject gameObject = EditorUtility.InstanceIDToObject(instanceID) as GameObject;
if (gameObject != null){
Rect rect = new Rect(selectionRect.x + selectionRect.width - 16f, selectionRect.y, 16f, 16f);
if ( gameObject.GetComponent<EasyTouch>() != null){
GUI.DrawTexture( rect,EasytouchHierachyCallBack.HierarchyIcon);
}
else if (gameObject.GetComponent<QuickBase>() != null){
GUI.DrawTexture( rect,EasytouchHierachyCallBack.HierarchyEventIcon);
}
#if FALSE
else if (gameObject.GetComponent<EasyTouchSceneProxy>() != null){
GUI.DrawTexture( rect,EasytouchHierachyCallBack.HierarchyIcon);
}
#endif
}
}
}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: e6e29b830398aee4baf62ac78801cce1
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,188 @@
using UnityEngine;
using System.Collections;
using UnityEditor;
public class HTGuiTools{
private static Texture2D gradientTexture;
#region Widget
public static bool BeginFoldOut(string text,bool foldOut, bool endSpace=true){
text = "<b><size=11>" + text + "</size></b>";
if (foldOut){
text = "\u25BC " + text;
}
else{
text = "\u25BA " + text;
}
if ( !GUILayout.Toggle(true,text,"dragtab")){
foldOut=!foldOut;
}
if (!foldOut && endSpace)GUILayout.Space(5f);
return foldOut;
}
public static void BeginGroup(int padding=0){
GUILayout.BeginHorizontal();
GUILayout.Space(padding);
//EditorGUILayout.BeginHorizontal("As TextArea", GUILayout.MinHeight(10f));
EditorGUILayout.BeginHorizontal("TextArea", GUILayout.MinHeight(10f));
GUILayout.BeginVertical();
GUILayout.Space(2f);
}
public static void EndGroup(bool endSpace = true){
GUILayout.Space(3f);
GUILayout.EndVertical();
EditorGUILayout.EndHorizontal();
GUILayout.Space(3f);
GUILayout.EndHorizontal();
if (endSpace){
GUILayout.Space(10f);
}
}
public static bool Toggle(string text, bool value,bool leftToggle=false){
//if (value) GUI.backgroundColor = Color.green; else GUI.backgroundColor = Color.red;
if (leftToggle){
value = EditorGUILayout.ToggleLeft(text,value);
}
else{
value = EditorGUILayout.Toggle(text,value);
}
//GUI.backgroundColor = Color.white;
return value;
}
public static bool Toggle (string text, bool value,int width,bool leftToggle=false){
if (value) GUI.backgroundColor = Color.green; else GUI.backgroundColor = Color.red;
if (leftToggle){
value = EditorGUILayout.ToggleLeft(text,value,GUILayout.Width( width));
}
else{
value = EditorGUILayout.Toggle(text,value,GUILayout.Width( width));
}
GUI.backgroundColor = Color.white;
return value;
}
static public bool Button(string label,Color color,int width, bool leftAligment=false, int height=0){
GUI.backgroundColor = color;
GUIStyle buttonStyle = new GUIStyle("Button");
if (leftAligment)
buttonStyle.alignment = TextAnchor.MiddleLeft;
if (height==0){
if (GUILayout.Button( label,buttonStyle,GUILayout.Width(width))){
GUI.backgroundColor = Color.white;
return true;
}
}
else{
if (GUILayout.Button( label,buttonStyle,GUILayout.Width(width),GUILayout.Height(height))){
GUI.backgroundColor = Color.white;
return true;
}
}
GUI.backgroundColor = Color.white;
return false;
}
#endregion
#region 2d effect
public static void DrawSeparatorLine(int padding=0){
EditorGUILayout.Space();
DrawLine(Color.gray, padding);
EditorGUILayout.Space();
}
private static void DrawLine(Color color,int padding=0){
GUILayout.Space(10);
Rect lastRect = GUILayoutUtility.GetLastRect();
GUI.color = color;
GUI.DrawTexture(new Rect(padding, lastRect.yMax -lastRect.height/2f, Screen.width, 1f), EditorGUIUtility.whiteTexture);
GUI.color = Color.white;
}
#endregion
#region Texture
private static Rect DrawGradient(int padding, int width, int height=35){
GUILayout.Space(height);
Rect lastRect = GUILayoutUtility.GetLastRect();
lastRect.yMin = lastRect.yMin + 7;
lastRect.yMax = lastRect.yMax - 7;
lastRect.width = Screen.width;
GUI.DrawTexture(new Rect(padding,lastRect.yMin+1,width, lastRect.yMax- lastRect.yMin), GetGradientTexture());
return lastRect;
}
private static Texture2D GetGradientTexture(){
if (gradientTexture==null){
gradientTexture = CreateGradientTexture();
}
return gradientTexture;
}
private static Texture2D CreateGradientTexture(){
int height =18;
Texture2D myTexture = new Texture2D(1, height);
myTexture.hideFlags = HideFlags.HideInInspector;
myTexture.hideFlags = HideFlags.DontSave;
myTexture.filterMode = FilterMode.Bilinear;
Color startColor= new Color(0.4f,0.4f,0.4f);
Color endColor= new Color(0.6f,0.6f,0.6f);
float stepR = (endColor.r - startColor.r)/18f;
float stepG = (endColor.g - startColor.g)/18f;
float stepB = (endColor.b - startColor.b)/18f;
Color pixColor = startColor;
for (int i = 1; i < height-1; i++)
{
pixColor = new Color(pixColor.r + stepR,pixColor.g + stepG , pixColor.b + stepB);
myTexture.SetPixel(0, i, pixColor);
}
myTexture.SetPixel(0, 0, new Color(0,0,0));
myTexture.SetPixel(0, 17, new Color(1,1,1));
myTexture.Apply();
return myTexture;
}
#endregion
}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 6e63e92782febb546b01ef0a99394021
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,55 @@
using UnityEngine;
using System.Collections;
using UnityEditor;
using HedgehogTeam.EasyTouch;
#if UNITY_5_3_OR_NEWER
using UnityEditor.SceneManagement;
#endif
[CustomEditor(typeof(QuickDrag))]
public class QuickDragInspector : UnityEditor.Editor {
public override void OnInspectorGUI(){
QuickDrag t = (QuickDrag)target;
EditorGUILayout.Space();
t.quickActionName = EditorGUILayout.TextField("Quick name",t.quickActionName);
EditorGUILayout.Space();
t.axesAction = (QuickBase.AffectedAxesAction) EditorGUILayout.EnumPopup("Allow on the axes",t.axesAction);
EditorGUILayout.Space();
t.enablePickOverUI = EditorGUILayout.ToggleLeft("Allow pick over UI element",t.enablePickOverUI);
t.isStopOncollisionEnter = EditorGUILayout.ToggleLeft("Stop drag on collision enter",t.isStopOncollisionEnter);
t.resetPhysic = EditorGUILayout.ToggleLeft("Reset physic on drag",t.resetPhysic);
EditorGUILayout.Space();
serializedObject.Update();
SerializedProperty start = serializedObject.FindProperty("onDragStart");
EditorGUILayout.PropertyField(start, true, null);
serializedObject.ApplyModifiedProperties();
serializedObject.Update();
SerializedProperty drag = serializedObject.FindProperty("onDrag");
EditorGUILayout.PropertyField(drag, true, null);
serializedObject.ApplyModifiedProperties();
serializedObject.Update();
SerializedProperty end = serializedObject.FindProperty("onDragEnd");
EditorGUILayout.PropertyField(end, true, null);
serializedObject.ApplyModifiedProperties();
if (GUI.changed){
EditorUtility.SetDirty(t);
#if UNITY_5_3_OR_NEWER
EditorSceneManager.MarkSceneDirty( EditorSceneManager.GetActiveScene());
#endif
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 90d40bf8ecbb8e54fa449fff98f7c89c
timeCreated: 1450091481
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,49 @@
using UnityEngine;
using System.Collections;
using UnityEditor;
using HedgehogTeam.EasyTouch;
#if UNITY_5_3_OR_NEWER
using UnityEditor.SceneManagement;
#endif
[CustomEditor(typeof(QuickEnterOverExist))]
public class QuickEnterExitInspector : UnityEditor.Editor {
public override void OnInspectorGUI(){
QuickEnterOverExist t = (QuickEnterOverExist)target;
EditorGUILayout.Space();
t.quickActionName = EditorGUILayout.TextField("Quick name",t.quickActionName);
EditorGUILayout.Space();
t.isMultiTouch = EditorGUILayout.ToggleLeft("Allow multi-touches",t.isMultiTouch);
t.enablePickOverUI = EditorGUILayout.ToggleLeft("Allow over UI element",t.enablePickOverUI);
EditorGUILayout.Space();
serializedObject.Update();
SerializedProperty enter = serializedObject.FindProperty("onTouchEnter");
EditorGUILayout.PropertyField(enter, true, null);
serializedObject.ApplyModifiedProperties();
serializedObject.Update();
SerializedProperty over = serializedObject.FindProperty("onTouchOver");
EditorGUILayout.PropertyField(over, true, null);
serializedObject.ApplyModifiedProperties();
serializedObject.Update();
SerializedProperty exit = serializedObject.FindProperty("onTouchExit");
EditorGUILayout.PropertyField(exit, true, null);
serializedObject.ApplyModifiedProperties();
if (GUI.changed){
EditorUtility.SetDirty(t);
#if UNITY_5_3_OR_NEWER
EditorSceneManager.MarkSceneDirty( EditorSceneManager.GetActiveScene());
#endif
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 963a6fd84b5553a49a198120ed07763a
timeCreated: 1450161932
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,44 @@
using UnityEngine;
using System.Collections;
using UnityEditor;
using HedgehogTeam.EasyTouch;
#if UNITY_5_3_OR_NEWER
using UnityEditor.SceneManagement;
#endif
[CustomEditor(typeof(QuickLongTap))]
public class QuickLongTapInspector : UnityEditor.Editor {
public override void OnInspectorGUI(){
QuickLongTap t = (QuickLongTap)target;
EditorGUILayout.Space();
t.quickActionName = EditorGUILayout.TextField("Name",t.quickActionName);
EditorGUILayout.Space();
t.is2Finger = EditorGUILayout.Toggle("2 fingers gesture",t.is2Finger);
t.actionTriggering = (QuickLongTap.ActionTriggering)EditorGUILayout.EnumPopup("Action triggering",t.actionTriggering);
EditorGUILayout.Space();
if (!t.is2Finger){
t.isMultiTouch = EditorGUILayout.ToggleLeft("Allow multi-touch",t.isMultiTouch);
}
t.enablePickOverUI = EditorGUILayout.ToggleLeft("Allow over UI Element",t.enablePickOverUI);
serializedObject.Update();
SerializedProperty touch = serializedObject.FindProperty("onLongTap");
EditorGUILayout.PropertyField(touch, true, null);
serializedObject.ApplyModifiedProperties();
if (GUI.changed){
EditorUtility.SetDirty(t);
#if UNITY_5_3_OR_NEWER
EditorSceneManager.MarkSceneDirty( EditorSceneManager.GetActiveScene());
#endif
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: dfe87ecedc3ffc64cbf16271e67e7db9
timeCreated: 1452769249
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,58 @@
using UnityEngine;
using System.Collections;
using UnityEditor;
using HedgehogTeam.EasyTouch;
#if UNITY_5_3_OR_NEWER
using UnityEditor.SceneManagement;
#endif
[CustomEditor(typeof(QuickPinch))]
public class QuickPinchInspector : UnityEditor.Editor {
public override void OnInspectorGUI(){
QuickPinch t = (QuickPinch)target;
EditorGUILayout.Space();
t.quickActionName = EditorGUILayout.TextField("Quick name",t.quickActionName);
EditorGUILayout.Space();
t.isGestureOnMe = EditorGUILayout.ToggleLeft("Gesture over me", t.isGestureOnMe);
t.enablePickOverUI = EditorGUILayout.ToggleLeft("Allow over UI Element",t.enablePickOverUI);
EditorGUILayout.Space();
t.actionTriggering = (QuickPinch.ActionTiggering)EditorGUILayout.EnumPopup("Triggering",t.actionTriggering);
t.pinchDirection = (QuickPinch.ActionPinchDirection)EditorGUILayout.EnumPopup("Pinch direction",t.pinchDirection);
//t.rotationDirection = (QuickTwist.ActionRotationDirection)EditorGUILayout.EnumPopup("Twist direction",t.rotationDirection);
EditorGUILayout.Space();
if (t.actionTriggering == QuickPinch.ActionTiggering.InProgress){
t.enableSimpleAction = EditorGUILayout.Toggle("Enable simple action",t.enableSimpleAction);
if (t.enableSimpleAction){
EditorGUI.indentLevel++;
t.directAction = (QuickSwipe.DirectAction) EditorGUILayout.EnumPopup("Action",t.directAction);
t.axesAction = (QuickSwipe.AffectedAxesAction)EditorGUILayout.EnumPopup("Affected axes",t.axesAction);
t.sensibility = EditorGUILayout.FloatField("Sensibility",t.sensibility);
t.inverseAxisValue = EditorGUILayout.Toggle("Inverse axis",t.inverseAxisValue);
EditorGUI.indentLevel--;
}
}
EditorGUILayout.Space();
serializedObject.Update();
SerializedProperty pinchAction = serializedObject.FindProperty("onPinchAction");
EditorGUILayout.PropertyField(pinchAction, true, null);
serializedObject.ApplyModifiedProperties();
if (GUI.changed){
EditorUtility.SetDirty(t);
#if UNITY_5_3_OR_NEWER
EditorSceneManager.MarkSceneDirty( EditorSceneManager.GetActiveScene());
#endif
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: e225b198a1829584097e5fceee345264
timeCreated: 1450353509
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,57 @@
using UnityEngine;
using System.Collections;
using UnityEditor;
using HedgehogTeam.EasyTouch;
#if UNITY_5_3_OR_NEWER
using UnityEditor.SceneManagement;
#endif
[CustomEditor(typeof(QuickSwipe))]
public class QuickSwipeInspector : UnityEditor.Editor {
public override void OnInspectorGUI(){
QuickSwipe t = (QuickSwipe)target;
EditorGUILayout.Space();
t.quickActionName = EditorGUILayout.TextField("Quick name",t.quickActionName);
EditorGUILayout.Space();
t.allowSwipeStartOverMe = EditorGUILayout.ToggleLeft("Allow swipe start over me",t.allowSwipeStartOverMe);
t.enablePickOverUI = EditorGUILayout.ToggleLeft("Allow over UI Element",t.enablePickOverUI);
EditorGUILayout.Space();
t.actionTriggering = (QuickSwipe.ActionTriggering)EditorGUILayout.EnumPopup("Triggering",t.actionTriggering);
t.swipeDirection = (QuickSwipe.SwipeDirection)EditorGUILayout.EnumPopup("Swipe direction",t.swipeDirection);
EditorGUILayout.Space();
if (t.actionTriggering == QuickSwipe.ActionTriggering.InProgress){
t.enableSimpleAction = EditorGUILayout.Toggle("Enable simple action",t.enableSimpleAction);
if (t.enableSimpleAction){
EditorGUI.indentLevel++;
t.directAction = (QuickSwipe.DirectAction) EditorGUILayout.EnumPopup("Action",t.directAction);
t.axesAction = (QuickSwipe.AffectedAxesAction)EditorGUILayout.EnumPopup("Affected axes",t.axesAction);
t.sensibility = EditorGUILayout.FloatField("Sensibility",t.sensibility);
t.inverseAxisValue = EditorGUILayout.Toggle("Inverse axis",t.inverseAxisValue);
EditorGUI.indentLevel--;
}
}
EditorGUILayout.Space();
serializedObject.Update();
SerializedProperty swipeAction = serializedObject.FindProperty("onSwipeAction");
EditorGUILayout.PropertyField(swipeAction, true, null);
serializedObject.ApplyModifiedProperties();
if (GUI.changed){
EditorUtility.SetDirty(t);
#if UNITY_5_3_OR_NEWER
EditorSceneManager.MarkSceneDirty( EditorSceneManager.GetActiveScene());
#endif
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 29f3f85edd767f34da2094756988511f
timeCreated: 1450163065
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,41 @@
using UnityEngine;
using System.Collections;
using UnityEditor;
using HedgehogTeam.EasyTouch;
#if UNITY_5_3_OR_NEWER
using UnityEditor.SceneManagement;
#endif
[CustomEditor(typeof(QuickTap))]
public class QuickTapInspector : UnityEditor.Editor {
public override void OnInspectorGUI(){
QuickTap t = (QuickTap)target;
EditorGUILayout.Space();
t.quickActionName = EditorGUILayout.TextField("Name",t.quickActionName);
EditorGUILayout.Space();
t.is2Finger = EditorGUILayout.Toggle("2 fingers gesture",t.is2Finger);
t.actionTriggering = (QuickTap.ActionTriggering)EditorGUILayout.EnumPopup("Action triggering",t.actionTriggering);
EditorGUILayout.Space();
t.enablePickOverUI = EditorGUILayout.ToggleLeft("Allow over UI Element",t.enablePickOverUI);
serializedObject.Update();
SerializedProperty touch = serializedObject.FindProperty("onTap");
EditorGUILayout.PropertyField(touch, true, null);
serializedObject.ApplyModifiedProperties();
if (GUI.changed){
EditorUtility.SetDirty(t);
#if UNITY_5_3_OR_NEWER
EditorSceneManager.MarkSceneDirty( EditorSceneManager.GetActiveScene());
#endif
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: e3e03caf02a475448be04b282362697d
timeCreated: 1452768422
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,50 @@
using UnityEngine;
using System.Collections;
using UnityEditor;
using HedgehogTeam.EasyTouch;
#if UNITY_5_3_OR_NEWER
using UnityEditor.SceneManagement;
#endif
[CustomEditor(typeof(QuickTouch))]
public class QuickTouchInspector : UnityEditor.Editor {
public override void OnInspectorGUI(){
QuickTouch t = (QuickTouch)target;
EditorGUILayout.Space();
t.quickActionName = EditorGUILayout.TextField("Name",t.quickActionName);
EditorGUILayout.Space();
t.is2Finger = EditorGUILayout.Toggle("2 fingers gesture",t.is2Finger);
t.actionTriggering = (QuickTouch.ActionTriggering)EditorGUILayout.EnumPopup("Action triggering",t.actionTriggering);
EditorGUILayout.Space();
if (!t.is2Finger){
t.isMultiTouch = EditorGUILayout.ToggleLeft("Allow multi-touch",t.isMultiTouch);
}
t.enablePickOverUI = EditorGUILayout.ToggleLeft("Allow over UI Element",t.enablePickOverUI);
serializedObject.Update();
SerializedProperty touch = serializedObject.FindProperty("onTouch");
EditorGUILayout.PropertyField(touch, true, null);
serializedObject.ApplyModifiedProperties();
if (t.actionTriggering == QuickTouch.ActionTriggering.Up){
touch = serializedObject.FindProperty("onTouchNotOverMe");
EditorGUILayout.PropertyField(touch, true, null);
serializedObject.ApplyModifiedProperties();
}
if (GUI.changed){
EditorUtility.SetDirty(t);
#if UNITY_5_3_OR_NEWER
EditorSceneManager.MarkSceneDirty( EditorSceneManager.GetActiveScene());
#endif
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 525af5a608b3ff549823bdcffc6979e1
timeCreated: 1450164615
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,57 @@
using UnityEngine;
using System.Collections;
using UnityEditor;
using HedgehogTeam.EasyTouch;
#if UNITY_5_3_OR_NEWER
using UnityEditor.SceneManagement;
#endif
[CustomEditor(typeof(QuickTwist))]
public class QuickTwistInspector : UnityEditor.Editor {
public override void OnInspectorGUI(){
QuickTwist t = (QuickTwist)target;
EditorGUILayout.Space();
t.quickActionName = EditorGUILayout.TextField("Quick name",t.quickActionName);
EditorGUILayout.Space();
t.isGestureOnMe = EditorGUILayout.ToggleLeft("Gesture over me", t.isGestureOnMe);
t.enablePickOverUI = EditorGUILayout.ToggleLeft("Allow over UI Element",t.enablePickOverUI);
EditorGUILayout.Space();
t.actionTriggering = (QuickTwist.ActionTiggering)EditorGUILayout.EnumPopup("Triggering",t.actionTriggering);
t.rotationDirection = (QuickTwist.ActionRotationDirection)EditorGUILayout.EnumPopup("Twist direction",t.rotationDirection);
EditorGUILayout.Space();
if (t.actionTriggering == QuickTwist.ActionTiggering.InProgress){
t.enableSimpleAction = EditorGUILayout.Toggle("Enable simple action",t.enableSimpleAction);
if (t.enableSimpleAction){
EditorGUI.indentLevel++;
t.directAction = (QuickSwipe.DirectAction) EditorGUILayout.EnumPopup("Action",t.directAction);
t.axesAction = (QuickSwipe.AffectedAxesAction)EditorGUILayout.EnumPopup("Affected axes",t.axesAction);
t.sensibility = EditorGUILayout.FloatField("Sensibility",t.sensibility);
t.inverseAxisValue = EditorGUILayout.Toggle("Inverse axis",t.inverseAxisValue);
EditorGUI.indentLevel--;
}
}
EditorGUILayout.Space();
serializedObject.Update();
SerializedProperty twistAction = serializedObject.FindProperty("onTwistAction");
EditorGUILayout.PropertyField(twistAction, true, null);
serializedObject.ApplyModifiedProperties();
if (GUI.changed){
EditorUtility.SetDirty(t);
#if UNITY_5_3_OR_NEWER
EditorSceneManager.MarkSceneDirty( EditorSceneManager.GetActiveScene());
#endif
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 08c96add5e005424aab15d266b33a173
timeCreated: 1450353544
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 5e68e1b715a165d43b061566c29acbb2
folderAsset: yes
timeCreated: 1451142772
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -0,0 +1,56 @@
fileFormatVersion: 2
guid: ea429d7f6cfed924a8798b9071509398
timeCreated: 1451153057
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 512
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,56 @@
fileFormatVersion: 2
guid: 3e573ef57d138214a932c4b3eb653900
timeCreated: 1451153776
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -3
maxTextureSize: 64
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -0,0 +1,56 @@
fileFormatVersion: 2
guid: 84b3bc3eb1ce7ab43809b8296ea9fd62
timeCreated: 1451165436
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 64
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,56 @@
fileFormatVersion: 2
guid: 2fcacbb7989d2c040bb26b9c5af88c1a
timeCreated: 1451165436
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 64
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -0,0 +1,56 @@
fileFormatVersion: 2
guid: a16b9527219e4324a99b00e9a6c610ad
timeCreated: 1451156361
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 64
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant: