/// <summary> /// 复制坦克部件管理器 /// </summary> /// <param name="copySrc">复制源</param> public void CopyFrom(TankAssembleManager copySrc) { head = copySrc.head; body = copySrc.body; leftWheel = copySrc.leftWheel; cap = copySrc.cap; face = copySrc.face; bodyForward = copySrc.bodyForward; bodyBack = copySrc.bodyBack; }
/// <summary> /// 获取所有变量 /// </summary> /// <returns></returns> private bool GetAllVariable() { if (createPrefab) { generatePath = EditorGUILayout.TextField("Generate Assets Path", generatePath); valid &= string.IsNullOrEmpty(generatePath); } tankAssemble = EditorGUILayout.ObjectField("TankAssmeble", tankAssemble, typeof(TankAssembleManager), false) as TankAssembleManager; return(tankAssemble); }
/// <summary> /// 添加新的坦克组装 /// </summary> /// <param name="tankAssemble">目标坦克组装</param> /// <returns>返回新的坦克</returns> public GameObject AddNewTank(TankAssembleManager tankAssemble) { tankAssemble.tankName = "CustomTank" + Count; tankAssembleList.Add(tankAssemble); newTank = tankAssemble.CreateTank(transform); customTankList.Add(newTank); SetupTankPos(newTank.transform, Count - 1); AssetDatabase.CreateAsset(tankAssemble, GetTankAssembleAssetPath(Count - 1)); return(newTank); }
/// <summary> /// 清除临时坦克对象 /// </summary> private void CleanTemTankObj(bool alsoAssemble = true) { if (temTankObject != null) { Destroy(temTankObject); temTankObject = null; } if (alsoAssemble) { temTankAssemble = null; } }
/// <summary> /// 创建新的坦克 /// </summary> public void CreateNewTank() { if (allCustomTank.Count >= allCustomTank.maxSize) { toast.ShowToast("坦克库已满。"); return; } newTankAssemble = ScriptableObject.CreateInstance <TankAssembleManager>(); newTankAssemble.CopyFrom(defaultTankAssemble); allCustomTank.AddNewTank(newTankAssemble); allCustomTankPreview.CatchTankTexture(allCustomTank.Count - 1); allCustomTank.SelectCurrentTank(allCustomTank.Count - 1); allCustomTankPreview.OnTankPreviewClicked(); createdSuccessedEvent.Invoke(); //OnTankSelected(); }
/// <summary> /// 重置当前临时坦克组装 /// </summary> private void ResetTemTankAssemble() { temTankAssemble = ScriptableObject.CreateInstance <TankAssembleManager>(); temTankAssemble.CopyFrom(CurrentTankAssemble); temTankAssemble.name = "TemporaryPreviewTank"; }