123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEditor;
- using System.Collections;
- using UnityEngine.EventSystems;
- #pragma warning disable 0618
- public static class ETCMenu{
- [MenuItem ("GameObject/EasyTouch Controls/InputManager", false, 0)]
- static void AddInputManager(){
- ETCInput.instance.Create();
- }
- [MenuItem ("GameObject/EasyTouch Controls/Joystick", false, 0)]
- static void AddJoystick(){
-
- ETCInput.instance.Create();
- GameObject canvas = SetupUI();
- Object[] sprites = Resources.LoadAll("ETCDefaultSprite");
- GameObject joystick = new GameObject("New Joystick", typeof(ETCJoystick),typeof(RectTransform), typeof( CanvasGroup), typeof(Image) );
- joystick.transform.SetParent( canvas.transform,false);
- joystick.GetComponent<Image>().preserveAspect = true;
- joystick.GetComponent<Image>().sprite = GetSpriteByName("ETCArea",sprites);
- joystick.GetComponent<Image>().rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal,130);
- joystick.GetComponent<Image>().rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical,130);
- joystick.GetComponent<CanvasGroup>().hideFlags = HideFlags.HideInInspector;
- joystick.GetComponent<CanvasRenderer>().hideFlags = HideFlags.HideInInspector;
- GameObject thumb = new GameObject("Thumb",typeof(RectTransform), typeof(CanvasRenderer), typeof(Image));
- thumb.transform.SetParent(joystick.transform,false);
- thumb.GetComponent<Image>().preserveAspect = true;
- thumb.GetComponent<Image>().sprite = GetSpriteByName("ETCThumb",sprites);
- thumb.GetComponent<Image>().rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal,80);
- thumb.GetComponent<Image>().rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical,80);
- joystick.GetComponent<ETCJoystick>().thumb = thumb.transform as RectTransform;
- joystick.GetComponent<ETCJoystick>().InitCurve();
- Selection.activeGameObject = joystick;
- }
- [MenuItem ("GameObject/EasyTouch Controls/D-Pad", false, 0)]
- static void AddDPad(){
- ETCInput.instance.Create();
- GameObject canvas = SetupUI();
-
- Object[] sprites = Resources.LoadAll("ETCDefaultSprite");
-
- GameObject button = new GameObject("New DPad", typeof(ETCDPad),typeof(RectTransform),typeof(Image));
- button.transform.SetParent( canvas.transform,false);
-
- button.GetComponent<Image>().preserveAspect = true;
- button.GetComponent<Image>().sprite = GetSpriteByName("ETCDPad",sprites);
-
- button.GetComponent<ETCDPad>().normalSprite = GetSpriteByName("ETCButtonNormal",sprites);
- button.GetComponent<ETCDPad>().normalColor = Color.white;
- button.GetComponent<ETCDPad>().pressedSprite = GetSpriteByName("ETCButtonPressed",sprites);
- button.GetComponent<ETCDPad>().pressedColor = Color.white;
-
- button.GetComponent<CanvasRenderer>().hideFlags = HideFlags.HideInInspector;
-
- Selection.activeGameObject = button;
- }
- [MenuItem ("GameObject/EasyTouch Controls/Button", false, 0)]
- static void AddButton(){
- ETCInput.instance.Create();
- GameObject canvas = SetupUI();
- Object[] sprites = Resources.LoadAll("ETCDefaultSprite");
- GameObject button = new GameObject("New Button", typeof(ETCButton),typeof(RectTransform),typeof(Image));
- button.transform.SetParent( canvas.transform,false);
- button.GetComponent<Image>().preserveAspect = true;
- button.GetComponent<Image>().sprite = GetSpriteByName("ETCButtonNormal",sprites);
- button.GetComponent<ETCButton>().normalSprite = GetSpriteByName("ETCButtonNormal",sprites);
- button.GetComponent<ETCButton>().normalColor = Color.white;
- button.GetComponent<ETCButton>().pressedSprite = GetSpriteByName("ETCButtonPressed",sprites);
- button.GetComponent<ETCButton>().pressedColor = Color.white;
- button.GetComponent<CanvasRenderer>().hideFlags = HideFlags.HideInInspector;
- Selection.activeGameObject = button;
- }
- [MenuItem ("GameObject/EasyTouch Controls/TouchPad", false, 0)]
- static void AddTouchPad(){
- ETCInput.instance.Create();
- GameObject canvas = SetupUI();
- Object[] sprites = Resources.LoadAll("ETCDefaultSprite");
- GameObject touchPad = new GameObject("New TouchPad", typeof(ETCTouchPad),typeof(RectTransform),typeof(Image));
- touchPad.transform.SetParent( canvas.transform,false);
- touchPad.GetComponent<Image>().sprite = GetSpriteByName("ETCFrame",sprites);
- touchPad.GetComponent<CanvasRenderer>().hideFlags = HideFlags.HideInInspector;
- Selection.activeGameObject = touchPad;
- }
- [MenuItem ("GameObject/EasyTouch Controls/Area", false, 0)]
- public static ETCArea AddJoystickArea(){
- GameObject canvas = SetupUI();
-
- Object[] sprites = Resources.LoadAll("ETCDefaultSprite");
-
- GameObject area = new GameObject("Joystick area", typeof(RectTransform), typeof(ETCArea), typeof(Image));
- area.GetComponent<Image>().sprite = GetSpriteByName("ETCFrame",sprites);
- area.GetComponent<Image>().type = Image.Type.Sliced;
- area.transform.SetParent( canvas.transform,false);
-
- area.transform.SetAsFirstSibling();
-
- area.GetComponent<ETCArea>().ApplyPreset(ETCArea.AreaPreset.BottomLeft);
- return area.GetComponent<ETCArea>();
-
- }
- static GameObject SetupUI(){
- // Canvas
- GameObject canvas = GameObject.Find("EasyTouchControlsCanvas");
- if (canvas == null){
- canvas = AddCanvas();
- }
-
- // Event system
- if (GameObject.FindObjectOfType(typeof(EventSystem))==null){
- AddEventSystem();
- }
- // TouchInput
- #if !UNITY_5_3
- if ( GameObject.FindObjectOfType(typeof(TouchInputModule)) ){
- TouchInputModule tm = (TouchInputModule)GameObject.FindObjectOfType(typeof(TouchInputModule));
- //tm.allowActivationOnStandalone = true;
- tm.forceModuleActive = true;
- }
- #endif
- return canvas;
- }
-
- static void AddEventSystem(){
- #if UNITY_5_3
- new GameObject("EventSystem",typeof(EventSystem), typeof(StandaloneInputModule));
- #else
- new GameObject("EventSystem",typeof(EventSystem), typeof(TouchInputModule), typeof(StandaloneInputModule));
- #endif
- }
- static GameObject AddCanvas(bool isSpaceCamera=false){
- GameObject canvas = new GameObject("EasyTouchControlsCanvas", typeof(RectTransform), typeof(Canvas), typeof(CanvasScaler), typeof(GraphicRaycaster));
- if (isSpaceCamera){
- canvas.GetComponent<Canvas>().renderMode = RenderMode.ScreenSpaceCamera;
- canvas.GetComponent<Canvas>().worldCamera = Camera.main;
- }
- else{
- canvas.GetComponent<Canvas>().renderMode = RenderMode.ScreenSpaceOverlay;
- }
- canvas.GetComponent<CanvasScaler>().uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize;
- return canvas;
-
- }
- static Sprite GetSpriteByName(string name, Object[] sprites){
- Sprite sprite = null;
- for (int i=0;i<sprites.Length;i++){
- if (sprites[i].name == name){
- sprite = (Sprite)sprites[i];
- }
- }
- return sprite;
- }
- }
|