Esempio n. 1
0
        void Awake()
        {
            BillboardPrefab t = target as BillboardPrefab;

            if (t == null)
            {
                return;
            }

            if (t._TargetPrefab != null)
            {
                return;
            }

            //快速預選 Character_Erica
            var results = AssetDatabase.FindAssets("Character_Erica");

            foreach (string guid in results)
            {
                UIBillboardController temp = (UIBillboardController)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(guid), typeof(UIBillboardController));
                t._TargetPrefab = temp;
                //EditorUtility.SetDirty(t);
                break;
            }
        }
Esempio n. 2
0
        void UpdatePrefabInfo()
        {
            BillboardPrefab t = target as BillboardPrefab;

            if (t._TargetPrefab != null)
            {
                listEmoji = t._TargetPrefab.GetEmojiListString().ToArray();
                listBody  = t._TargetPrefab.GetBodyListString().ToArray();
                listEquip = t._TargetPrefab.GetEquipListString().ToArray();
            }
            else
            {
                listEmoji = new string[] {}
            };
        }
Esempio n. 3
0
        // Update is called once per frame
        public override void DrawCommandGUI()
        {
            serializedObject.Update();

            BillboardPrefab t = target as BillboardPrefab;

            if (shouldUpdatePrefab == true)
            {
                shouldUpdatePrefab = false;

                if (t._TargetPrefab != null)
                {
                    listEmoji = t._TargetPrefab.GetEmojiListString().ToArray();
                    listBody  = t._TargetPrefab.GetBodyListString().ToArray();
                    listEquip = t._TargetPrefab.GetEquipListString().ToArray();
                }
                else
                {
                    listEmoji = new string[] {}
                };
            }

            EditorGUILayout.PropertyField(displayProp);
            if (t._Display != DisplayType.None)
            {
                if (t._Display != DisplayType.MoveToFront)
                {
                    if (t._Display != DisplayType.Hide)
                    {
                        EditorGUI.BeginChangeCheck();
                        EditorGUILayout.PropertyField(targetPrefabProp, new GUIContent("角色立繪Prefab"));

                        if (AdvKeyContent.GetCurrentInstance().GroupBillboardPrefab != null)
                        {
                            CommandEditor.ObjectField <UIBillboardController>(targetPrefabProp,
                                                                              new GUIContent("In folder (Prefabs/ADV)", "Dynamic Emoji Prefab (UIBillboardController)"),
                                                                              new GUIContent("<None>"),
                                                                              AdvKeyContent.GetCurrentInstance().GroupBillboardPrefab);
                        }

                        if (EditorGUI.EndChangeCheck())
                        {
                            shouldUpdatePrefab = true;
                        }

                        EditorGUILayout.BeginHorizontal();
                        EditorGUILayout.PropertyField(useEmojiProp, new GUIContent("使用表情"));
                        int emojiIndex = EditorGUILayout.Popup(emojiId, listEmoji, EditorStyles.popup);
                        EditorGUILayout.EndHorizontal();

                        EditorGUILayout.BeginHorizontal();
                        EditorGUILayout.PropertyField(useBodyProp, new GUIContent("使用衣服"));
                        int bodyIndex = EditorGUILayout.Popup(bodyId, listBody, EditorStyles.popup);
                        EditorGUILayout.EndHorizontal();

                        EditorGUILayout.BeginHorizontal();
                        EditorGUILayout.PropertyField(useEquipsProp, new GUIContent("使用裝備(我前面有箭頭)"), true);
                        int equipIndex = EditorGUILayout.Popup(equipId, listEquip, EditorStyles.popup);
                        EditorGUILayout.EndHorizontal();


                        if (emojiIndex != emojiId)
                        {
                            useEmojiProp.stringValue = listEmoji[emojiIndex];
                        }
                        if (bodyIndex != bodyId)
                        {
                            useBodyProp.stringValue = listBody[bodyIndex];
                        }
                        if (equipIndex != equipId)
                        {
                            t._UseEquips.Add(listEquip[equipIndex]);
                            EditorUtility.SetDirty(t);
                        }

                        EditorGUILayout.PropertyField(flipFaceProp, new GUIContent("水平翻轉 ?"));
                        EditorGUILayout.PropertyField(spriteDistanceProp, new GUIContent("立繪所在距離"));
                    }
                    if (t._Display == DisplayType.Hide)
                    {
                        EditorGUILayout.PropertyField(hideWhichProp, new GUIContent("隱藏哪個位置"));
                    }

                    if (t._Display == DisplayType.Show || t._Display == DisplayType.Replace || (t._Move && t._Display == DisplayType.Hide))
                    {
                        EditorGUILayout.PropertyField(toPositionProp, new GUIContent("目標位置"));
                        EditorGUILayout.PropertyField(positionShiftProp, new GUIContent("目標位置加上偏移"));
                        EditorGUILayout.PropertyField(positionShiftValueProp, new GUIContent("偏移倍數"));
                    }
                    EditorGUILayout.LabelField("-- 移動設定 --", EditorStyles.boldLabel);
                    EditorGUILayout.PropertyField(moveProp, new GUIContent("移動動畫 ?"));

                    if (t._Move)
                    {
                        if (!t._ShiftIntoPlace)
                        {
                            EditorGUILayout.PropertyField(fromPositionProp, new GUIContent("從哪個相對位置滑入"));
                        }
                    }


                    EditorGUILayout.PropertyField(useDefaultSettingsProp, new GUIContent("使用預設數值 ?"));

                    if (!t._UseDefaultSettings)
                    {
                        if (t._Move)
                        {
                            if (t._Display != DisplayType.Hide)
                            {
                                EditorGUILayout.PropertyField(shiftIntoPlaceProp, new GUIContent("從目標位置附近滑入?"));
                                if (t._ShiftIntoPlace)
                                {
                                    EditorGUILayout.PropertyField(shiftOffsetProp, new GUIContent("從哪邊滑入(偏移量)"));
                                }
                            }
                        }
                        EditorGUILayout.PropertyField(fadeDurationProp, new GUIContent("淡出 / 淡入時間"));
                        if (t._Move)
                        {
                            EditorGUILayout.PropertyField(moveDurationProp, new GUIContent("滑動時間"));
                        }
                    }

                    EditorGUILayout.PropertyField(waitUntilFinishedProp);
                }
                else
                {
                    EditorGUILayout.PropertyField(toPositionProp, new GUIContent("哪個位置"));
                }
            }

            //EditorGUILayout.PropertyField(serializedObject.FindProperty("myVariable"), new GUIContent("aDifferentLabel"));

            serializedObject.ApplyModifiedProperties();
        }
    }