Пример #1
0
        // 创建实例.
        public override GKToyBaseOverlord _CreateData(string path)
        {
            // 生成数据源.
            var       obj   = ScriptableObject.CreateInstance <GKToyExternalData>();
            GKToyData tData = new GKToyData();

            obj.data = tData.Clone() as GKToyData;
            GKEditor.CreateAsset(obj, path);
            var externalData = AssetDatabase.LoadMainAssetAtPath(path) as GKToyExternalData;

            if (null == externalData)
            {
                return(null);
            }

            string myName = Path.GetFileNameWithoutExtension(path);

            // 创建宿主.
            GameObject go          = new GameObject();
            var        tmpOverload = GK.GetOrAddComponent <GKToyBaseOverlord>(go);

            tmpOverload.internalData           = externalData;
            tmpOverload.name                   = myName;
            tmpOverload.internalData.data.name = myName;

            // 初始化首次数据.
            GKToyMakerChapterInfo.Create(this, position.min, ToyMakerBase._minWidth, ToyMakerBase._minHeight, _GetTaskLocalization("Chapter Infomation"), tmpOverload, go);
            return(tmpOverload);
        }
Пример #2
0
        /// <summary>
        /// 设置ID区间完毕后,设置实例
        /// </summary>
        /// <param name="window"></param>
        public void _ModalClosed(GKUIModalWindow window)
        {
            GKToyMakerChapterInfo info = window as GKToyMakerChapterInfo;

            if (info == null)
            {
                return;
            }
            if (window.Result != WindowResult.Ok)
            {
                info.Focus();
                return;
            }
            info.overlord.internalData.data.curLiteralId = info.overlord.internalData.data.minLiteralId;
            Selection.activeGameObject = info.obj;
            _ResetSelected(info.overlord);
            GKToyNode node = new GKToyStart(_GenerateGUID(CurNodeIdx++));
            Type      type = node.GetType();

            node.className = string.Format("{0}.{1}", type.Namespace, type.Name);
            node.pos.x     = (_contentScrollPos.x + ToyMakerBase._minWidth * 0.5f) / Scale;
            node.pos.y     = (_contentScrollPos.y + ToyMakerBase._minHeight * 0.5f) / Scale;
            _CreateNode(node);
            _Changed();
            _overlord.Save();
            _overlord.Backup();
            _overlord.SavePrefab(ToyMakerBase._defaultOverlordPath);
        }
Пример #3
0
        public static GKToyMakerChapterInfo Create(IModal owner, Vector2 pos, float width, float height, string title, GKToyBaseOverlord overlord, GameObject obj)
        {
            instance = CreateInstance <GKToyMakerChapterInfo>();

            instance._owner   = owner;
            instance._title   = title;
            instance.overlord = overlord;
            instance.obj      = obj;
            Rect rect = new Rect(pos.x, pos.y, 0, 0);

            instance.position = rect;
            instance.ShowAsDropDown(rect, new Vector2(width, height + MARGIN));

            return(instance);
        }