コード例 #1
0
        public void GUIFill(ref object obj)
        {
#if UNITY_EDITOR
            if (obj == null || !obj.GetType().IsAssignableFrom(typeof(EffectLPopup)))
            {
                obj = new EffectLPopup(0);
            }
            EffectUtility.FormatPopup(ref (obj as EffectLPopup).index, (obj as EffectLPopup).popup);
#endif
        }
コード例 #2
0
        static void DrawCubeHandle(Cube cube, GUISkin skin)
        {
#if UNITY_EDITOR
            if (cube != target)
            {
                fields = NodeStack.NodeGetAsset(NodeStack.getDefaultNode(cube.GetId));
                target = cube;
                return;
            }
            EffectUtility.FormatLabel(cube.Title, skin.GetStyle("HandleLabel1"));
            EffectUtility.FormatLabel("节点名:", skin.GetStyle("HandleLabel2"));
            EffectUtility.FormatTextfield(ref cube.Title);
            EffectUtility.FormatButton("添加组件", () =>
            {
                cube.Component.Add(0);
            });
            for (int i = 0; i < cube.Component.Count; i++)
            {
                GUILayout.BeginHorizontal();
                cube.Component[i] = EffectUtility.FormatPopup(cube.Component[i], 140f, NodeStack.MonoComponentsName.ToArray());
                int j = i;
                EffectUtility.FormatButton("除去", () =>
                {
                    cube.Component.RemoveAt(j);
                });
                GUILayout.EndHorizontal();
            }

            foreach (FieldInfo field in fields)
            {
                var value = field.GetValue(cube);
                EffectUtility.FormatLabel(field.Name, skin.GetStyle("HandleLabel2"));
                EffectUtility.FormatAssetField(ref value, field.FieldType);
                field.SetValue(cube, value);
            }
#endif
        }