コード例 #1
0
 public void OnEnable()
 {
     myTarget = (EnergyGaugeUI)target;
     if (!Application.isPlaying)
     {
         /*
          * Transform[] _tr = myTarget.transform.GetComponentsInChildren<Transform>();
          * for (int i = 0; i < _tr.Length; i++)
          * {
          *  if (_tr[i] != null && _tr[i] != myTarget.transform ) DestroyImmediate(_tr[i].gameObject);
          * }
          */
         CheckUpdates();
         HideGos(showDebug);
     }
 }
コード例 #2
0
    public override void OnInspectorGUI()
    {
        myTarget = (EnergyGaugeUI)target;
        SerializedObject serializedObject = new SerializedObject(target);

        SerializedProperty serializedProperty_current = serializedObject.FindProperty("current");
        SerializedProperty serializedProperty_max     = serializedObject.FindProperty("max");

        EditorGUI.BeginChangeCheck();
        showDebug = GUILayout.Toggle(showDebug, "show debug");
        if (EditorGUI.EndChangeCheck())
        {
            HideGos(showDebug);
        }
        GUILayout.Space(20);
        GUILayout.BeginHorizontal();

        EditorGUI.BeginChangeCheck();
        int preCurrent = serializedProperty_current.intValue;

        preCurrent = EditorGUILayout.IntSlider(preCurrent, 0, serializedProperty_max.intValue);

        if (EditorGUI.EndChangeCheck())
        {
            serializedProperty_current.intValue = preCurrent;
        }

        //call this if inspector changed

        CheckUpdates();
        myTarget.MainGauge();
        myTarget.RequiredGauge();



        //serializedProperty_current.intValue = preCurrent;
        EditorGUILayout.LabelField(" / " + serializedProperty_max.intValue, GUILayout.Width(80));
        GUILayout.EndHorizontal();


        SerializedProperty barSets_p = serializedObject.FindProperty("barSets");

        GUILayout.BeginHorizontal();
        if (GUILayout.Button("+ Notch"))
        {
            if (Application.isPlaying)
            {
                myTarget.AddNotch();
            }
            else
            {
                //clear new notch
                serializedObject.Update();
                barSets_p.InsertArrayElementAtIndex(barSets_p.arraySize);

                int id = barSets_p.arraySize - 1;
                SerializedProperty mask_p = barSets_p.GetArrayElementAtIndex(id).FindPropertyRelative("mask");
                mask_p.objectReferenceValue = null;
                SerializedProperty img_p = barSets_p.GetArrayElementAtIndex(id).FindPropertyRelative("img");
                img_p.objectReferenceValue = null;
                SerializedProperty requiredImg_p = barSets_p.GetArrayElementAtIndex(id).FindPropertyRelative("requiredImg");
                requiredImg_p.objectReferenceValue = null;
                SerializedProperty requiredMask_p = barSets_p.GetArrayElementAtIndex(id).FindPropertyRelative("requiredMask");
                requiredMask_p.objectReferenceValue = null;
                SerializedProperty bleedImg_p = barSets_p.GetArrayElementAtIndex(id).FindPropertyRelative("bleedImg");
                bleedImg_p.objectReferenceValue = null;

                serializedObject.ApplyModifiedProperties();

                CheckUpdates();

                serializedObject.Update();

                //adjust
                // RectTransform thisRt = myTarget.transform.GetComponent<RectTransform>();
                RectTransform _rt = ((Image)mask_p.objectReferenceValue).rectTransform;
                // _rt.anchorMin = thisRt.anchorMin;
                // _rt.anchorMax = thisRt.anchorMax;
                //_rt.pivot = thisRt.pivot;
                _rt.anchoredPosition = new Vector2((myTarget.barSets.Count - 1) * myTarget.size.x, 0);
                _rt.localScale       = Vector3.one;

                myTarget.MainGauge();
                myTarget.RequiredGauge();
                HideGos();
            }
        }
        if (barSets_p.arraySize > 0)
        {
            GUI.enabled = true;
        }
        else
        {
            GUI.enabled = false;
        }
        if (GUILayout.Button("- Notch"))
        {
            if (Application.isPlaying)
            {
                myTarget.RemoveNotch();
            }
            else
            {
                //delete check
                serializedObject.Update();

                int id = barSets_p.arraySize - 1;
                SerializedProperty mask_p = barSets_p.GetArrayElementAtIndex(id).FindPropertyRelative("mask");
                if (mask_p.objectReferenceValue != null)
                {
                    DestroyGo(((Image)mask_p.objectReferenceValue).gameObject);
                    serializedObject.ApplyModifiedProperties();
                }

                SerializedProperty img_p = barSets_p.GetArrayElementAtIndex(id).FindPropertyRelative("img");
                if (img_p.objectReferenceValue != null)
                {
                    DestroyGo(((Image)img_p.objectReferenceValue).gameObject);
                    serializedObject.ApplyModifiedProperties();
                }

                SerializedProperty requiredImg_p = barSets_p.GetArrayElementAtIndex(id).FindPropertyRelative("requiredImg");
                if (requiredImg_p.objectReferenceValue != null)
                {
                    DestroyGo(((Image)requiredImg_p.objectReferenceValue).gameObject);
                    serializedObject.ApplyModifiedProperties();
                }
                SerializedProperty requiredMask_p = barSets_p.GetArrayElementAtIndex(id).FindPropertyRelative("requiredMask");
                if (requiredMask_p.objectReferenceValue != null)
                {
                    DestroyGo(((Image)requiredMask_p.objectReferenceValue).gameObject);
                    serializedObject.ApplyModifiedProperties();
                }

                SerializedProperty bleedImg_p = barSets_p.GetArrayElementAtIndex(id).FindPropertyRelative("bleedImg");
                if (bleedImg_p.objectReferenceValue != null)
                {
                    DestroyGo(((Image)bleedImg_p.objectReferenceValue).gameObject);
                    serializedObject.ApplyModifiedProperties();
                }
                ;
                barSets_p.DeleteArrayElementAtIndex(barSets_p.arraySize - 1);
                serializedObject.ApplyModifiedProperties();
                serializedObject.Update();

                CheckUpdates();
                myTarget.MainGauge();
                myTarget.RequiredGauge();
                HideGos(showDebug);
            }
        }
        GUI.enabled = true;

        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();
        GUILayout.Space(20);


        base.OnInspectorGUI();



        serializedObject.ApplyModifiedProperties();
        serializedObject.Update();
    }
コード例 #3
0
    /* void LegacySetup()
     * {
     *   SerializedObject serializedObject = new SerializedObject(target);
     *   SerializedProperty barSets_p = serializedObject.FindProperty("barSets");
     *   serializedObject.Update();
     *
     *   if (barSets_p.arraySize == 0) barSets_p.InsertArrayElementAtIndex(0);
     *   //legacy----------------------------
     *   SerializedProperty mask_p = serializedObject.FindProperty("mask");
     *   SerializedProperty img_p = serializedObject.FindProperty("img");
     *   SerializedProperty requiredImg_p = serializedObject.FindProperty("requiredImg");
     *
     *   SerializedProperty new_mask_p = barSets_p.GetArrayElementAtIndex(0).FindPropertyRelative("mask");
     *   SerializedProperty new_img_p = barSets_p.GetArrayElementAtIndex(0).FindPropertyRelative("img");
     *   SerializedProperty new_requiredImg_p = barSets_p.GetArrayElementAtIndex(0).FindPropertyRelative("requiredImg");
     *
     *   if (mask_p.objectReferenceValue != null)
     *   {
     *       new_mask_p.objectReferenceValue = mask_p.objectReferenceValue;
     *       mask_p.objectReferenceValue = null;
     *   }
     *   if (img_p.objectReferenceValue != null)
     *   {
     *       new_img_p.objectReferenceValue = img_p.objectReferenceValue;
     *       img_p.objectReferenceValue = null;
     *   }
     *   if (requiredImg_p.objectReferenceValue != null)
     *   {
     *       new_requiredImg_p.objectReferenceValue = requiredImg_p.objectReferenceValue;
     *       requiredImg_p.objectReferenceValue = null;
     *   }
     *
     *   //------------------------------------
     *
     *   serializedObject.ApplyModifiedProperties();
     * }*/

    void CheckUpdates()
    {
        //  SerializedObject serializedObject = new SerializedObject(target);
        SerializedProperty barSets_p = serializedObject.FindProperty("barSets");


        myTarget = (EnergyGaugeUI)target;

        for (int i = 0; i < myTarget.barSets.Count; i++)
        {
            serializedObject.Update();

            SerializedProperty new_mask_p         = barSets_p.GetArrayElementAtIndex(i).FindPropertyRelative("mask");
            SerializedProperty new_img_p          = barSets_p.GetArrayElementAtIndex(i).FindPropertyRelative("img");
            SerializedProperty new_requiredMask_p = barSets_p.GetArrayElementAtIndex(i).FindPropertyRelative("requiredMask");
            SerializedProperty new_required_p     = barSets_p.GetArrayElementAtIndex(i).FindPropertyRelative("requiredImg");


            if (new_mask_p.objectReferenceValue == null) //mask
            {
                GameObject _mask = new GameObject("Mask_" + i);
                //_mask.transform.SetParent(myTarget.transform);
                HideGO(_mask);
                ParentGo(_mask.gameObject, myTarget.gameObject);

                Image _maskImg = _mask.AddComponent <Image>();
                Mask  _mc      = _mask.AddComponent <Mask>();
                _mc.showMaskGraphic = false;

                //myTarget.barSets[i].mask = _maskImg;
                new_mask_p.objectReferenceValue = _maskImg;

                _mc.enabled         = myTarget.showMask;
                _mc.showMaskGraphic = myTarget.showMaskGraphic;

                _maskImg.sprite = myTarget.maskImg;

                serializedObject.ApplyModifiedProperties();

                Debug.Log("making mask");
            }
            else
            {
                Mask mask = ((Image)new_mask_p.objectReferenceValue).GetComponent <Mask>();

                mask.enabled         = myTarget.showMask;
                mask.showMaskGraphic = myTarget.showMaskGraphic;

                ((Image)new_mask_p.objectReferenceValue).sprite = myTarget.maskImg;
                serializedObject.ApplyModifiedProperties();
            }


            if (new_img_p.objectReferenceValue == null) //img bar
            {
                // Debug.Log("create main guage");
                GameObject _gauge = new GameObject("mainGauge_" + i);
                HideGO(_gauge);
                ParentGo(_gauge.gameObject, myTarget.barSets[i].mask.gameObject);
                // _gauge.transform.SetParent(myTarget.barSets[i].mask.transform);
                Image _img = _gauge.AddComponent <Image>();

                //myTarget.barSets[i].img = _img;
                new_img_p.objectReferenceValue = _img;

                //Undo.RegisterCreatedObjectUndo(_gauge, "create GO");
                serializedObject.ApplyModifiedProperties();
            }

            if (myTarget.barImg != null)
            {
                //if (((Image)new_img_p.objectReferenceValue).sprite != myTarget.barImg)
                //{
                ((Image)new_img_p.objectReferenceValue).sprite = myTarget.barImg;

                serializedObject.ApplyModifiedProperties();

                // }
            }



            //mask
            if (new_requiredMask_p.objectReferenceValue == null)
            {
                GameObject _mask = new GameObject("RequiredMask_" + i);
                HideGO(_mask);
                ParentGo(_mask.gameObject, myTarget.barSets[i].mask.gameObject);
                // _mask.transform.SetParent(myTarget.barSets[i].mask.transform);

                Image _maskImg = _mask.AddComponent <Image>();
                Mask  _mc      = _mask.AddComponent <Mask>();
                _mc.showMaskGraphic = false;

                //myTarget.barSets[i].requiredMask = _maskImg;
                new_requiredMask_p.objectReferenceValue = _maskImg;

                // Undo.RegisterCreatedObjectUndo(_mask, "create GO");

                serializedObject.ApplyModifiedProperties();
            }
            //has
            if (myTarget.barImg != null)
            {
                // if (((Image)new_requiredMask_p.objectReferenceValue).sprite != myTarget.maskImg)
                // {
                ((Image)new_requiredMask_p.objectReferenceValue).sprite = myTarget.barImg;                            //myTarget.barSets[i].requiredMask.sprite = myTarget.barSets[i].img.sprite;

                serializedObject.ApplyModifiedProperties();

                // }
            }

            //guage
            if (new_required_p.objectReferenceValue == null)
            {
                Image requiredImg = Instantiate((Image)new_img_p.objectReferenceValue, ((Image)new_requiredMask_p.objectReferenceValue).transform);
                requiredImg.name = "Required_" + i;
                HideGO(requiredImg.gameObject);
                ParentGo(requiredImg.gameObject, ((Image)new_requiredMask_p.objectReferenceValue).gameObject);
                //requiredImg.transform.SetParent(((Image)new_requiredMask_p.objectReferenceValue).transform);

                new_required_p.objectReferenceValue = requiredImg;

                //Undo.RegisterCreatedObjectUndo(requiredImg, "create GO");
                serializedObject.ApplyModifiedProperties();
            }
            //has
            if (myTarget.barImg != null)
            {
                //if (((Image)new_required_p.objectReferenceValue).sprite != myTarget.barImg)
                //{
                ((Image)new_required_p.objectReferenceValue).sprite = myTarget.barImg;

                serializedObject.ApplyModifiedProperties();

                //}
            }

            if (myTarget.canRequired)
            {
                ((Image)new_requiredMask_p.objectReferenceValue).enabled = true;
                ((Image)new_required_p.objectReferenceValue).enabled     = true;
            }
            else
            {
                ((Image)new_requiredMask_p.objectReferenceValue).enabled = false;
                ((Image)new_required_p.objectReferenceValue).enabled     = false;
            }
            if (!Application.isPlaying)
            {
                if (myTarget.displayText != null || myTarget.displayTextTMP != null)
                {
                    myTarget.DisplayLogic();
                }
            }
        }
        myTarget.ConsistentPosSize();

        serializedObject.ApplyModifiedProperties();
    }
コード例 #4
0
 private void Start()
 {
     energyGaugeUI = GetComponent <EnergyGaugeUI>();
 }