// 创建实例. 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); }
/// <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); }
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); }