1、编辑器窗口通用类 2、重写UI框架
@ -0,0 +1,11 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="LanguageDetectionInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
|
||||
<option name="processCode" value="true" />
|
||||
<option name="processLiterals" value="true" />
|
||||
<option name="processComments" value="true" />
|
||||
</inspection_tool>
|
||||
</profile>
|
||||
</component>
|
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7db7dcb21519b014b937f3997d53b813
|
||||
guid: 38439f9695d9e604c8eac2afbbc761ab
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
@ -0,0 +1,40 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ether
|
||||
{
|
||||
public abstract class OdinSubWindowBase
|
||||
{
|
||||
protected OdinSubWindowBase()
|
||||
{
|
||||
OnInit();
|
||||
}
|
||||
|
||||
protected virtual void OnInit() { }
|
||||
public abstract void OnShow();
|
||||
|
||||
public void OnGUI()
|
||||
{
|
||||
// 检查 Ctrl+S (Cmd+S on macOS)
|
||||
Event e = Event.current;
|
||||
if (e.type == EventType.KeyDown && (e.keyCode == KeyCode.S && (e.control || e.command)))
|
||||
{
|
||||
// 阻止默认的保存操作
|
||||
e.Use();
|
||||
|
||||
// 执行自定义保存逻辑
|
||||
Debug.Log("执行保存代码");
|
||||
OnSave();
|
||||
}
|
||||
|
||||
OnUpdata();
|
||||
}
|
||||
|
||||
protected virtual void OnUpdata() { }
|
||||
protected virtual void OnSave() { }
|
||||
|
||||
public virtual void OnClose() { }
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 370a46ff30cb18f4b896c9dd860070d1
|
||||
guid: 0f3e9658633c21f4fbaea4e8e03ce4bf
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
@ -0,0 +1,98 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Sirenix.OdinInspector.Editor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ether
|
||||
{
|
||||
public abstract class OdinWindowBase<T> : OdinMenuEditorWindow where T : OdinWindowBase<T>
|
||||
{
|
||||
protected OdinWindowBase()
|
||||
{
|
||||
OnInit();
|
||||
}
|
||||
|
||||
protected abstract void OnInit();
|
||||
|
||||
protected bool SupportsMultiSelect = false; //允许多选
|
||||
protected bool DrawSearchToolbar = false; //显示搜索框
|
||||
|
||||
protected List<(Type, OdinSubWindowBase)> SubWindows = new List<(Type, OdinSubWindowBase)>();
|
||||
protected List<string> SubWindowNames = new List<string>();
|
||||
|
||||
private OdinSubWindowBase selectedSubWindow;
|
||||
|
||||
/// <summary>
|
||||
/// 添加子界面
|
||||
/// </summary>
|
||||
/// <param name="windowName">子界面名称(列表中显示)</param>
|
||||
/// <typeparam name="K">子界面类型</typeparam>
|
||||
protected void AddSubWindow<K>(string windowName) where K : OdinSubWindowBase
|
||||
{
|
||||
Type type = typeof(K);
|
||||
OdinSubWindowBase subWindow = (OdinSubWindowBase)Activator.CreateInstance(type);
|
||||
SubWindowNames.Add(windowName);
|
||||
SubWindows.Add((type, subWindow));
|
||||
}
|
||||
|
||||
protected override OdinMenuTree BuildMenuTree()
|
||||
{
|
||||
var tree = new OdinMenuTree();
|
||||
|
||||
tree.Selection.SupportsMultiSelect = SupportsMultiSelect;
|
||||
tree.Config.DrawSearchToolbar = DrawSearchToolbar;
|
||||
|
||||
for (int i = 0; i < SubWindows.Count; i++)
|
||||
{
|
||||
var subWindowItem = SubWindows[i];
|
||||
if (subWindowItem.Item2 != null)
|
||||
continue;
|
||||
|
||||
Type type = subWindowItem.Item1;
|
||||
OdinSubWindowBase subWindow = (OdinSubWindowBase)Activator.CreateInstance(type);
|
||||
subWindowItem.Item2 = subWindow;
|
||||
}
|
||||
|
||||
for (int i = 0; i < SubWindows.Count; i++)
|
||||
{
|
||||
tree.Add(SubWindowNames[i], SubWindows[i].Item2);
|
||||
}
|
||||
|
||||
tree.Selection.SelectionChanged += (type) =>
|
||||
{
|
||||
if (tree.Selection.SelectedValue == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
selectedSubWindow?.OnClose();
|
||||
|
||||
OdinSubWindowBase selectWindow = tree.Selection.SelectedValue as OdinSubWindowBase;
|
||||
selectWindow.OnShow();
|
||||
selectedSubWindow = selectWindow;
|
||||
};
|
||||
|
||||
return tree;
|
||||
}
|
||||
|
||||
protected override void OnImGUI()
|
||||
{
|
||||
base.OnImGUI();
|
||||
|
||||
if (this.MenuTree.Selection.SelectedValue == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
OdinSubWindowBase selectWindow = this.MenuTree.Selection.SelectedValue as OdinSubWindowBase;
|
||||
selectWindow.OnGUI();
|
||||
}
|
||||
|
||||
protected override void OnDestroy()
|
||||
{
|
||||
selectedSubWindow?.OnClose();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e1645e03649b6204396356c5c9285890
|
||||
guid: f020120ab7ae12d4a9df026d34d0dee0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
@ -1 +1 @@
|
||||
{"framePrefabPath":"Resources/Prefabs/Frames","frameScriptPath":"Scripts/Frame","frameBaseScriptPath":"Scripts/AutoGenerated/FrameBase","componentTypeDic":{"BtnEx":"ButtonEx","Btn":"Btn","Image":"Image","Go":"GameObject","Trans":"Transform","Text":"TextMeshProUGUI","SRContent":"ScrollContent","ScrollRect":"ScrollRect","Animator":"Animator"}}
|
||||
{"framePrefabPath":"Resources/Prefabs/Frames","frameScriptPath":"Scripts/Frame","frameBaseScriptPath":"Scripts/AutoGenerated/FrameBase","componentTypeDic":{"BtnEx":"ButtonEx","Btn":"Button","Image":"Image","Go":"GameObject","Trans":"Transform","Text":"TextMeshProUGUI","SRContent":"ScrollContent","ScrollRect":"ScrollRect","Animator":"Animator"}}
|
@ -45,7 +45,7 @@ namespace Ether
|
||||
}
|
||||
}
|
||||
|
||||
[Header("Frame路径设置")]
|
||||
[Title("Frame路径设置")]
|
||||
|
||||
[FolderPath(ParentFolder = "Assets"), PropertyOrder(0)]
|
||||
[OnValueChanged(nameof(OnFolderPathChanged))]
|
||||
@ -79,7 +79,7 @@ namespace Ether
|
||||
|
||||
[Space(20)]
|
||||
|
||||
[Header("组件类型映射表")]
|
||||
[Title("组件类型映射表")]
|
||||
[DictionaryDrawerSettings(KeyLabel = "组件简称", ValueLabel = "组件全称")]
|
||||
[ShowInInspector]
|
||||
[OnValueChanged(nameof(OnFolderPathChanged))]
|
||||
@ -96,7 +96,7 @@ namespace Ether
|
||||
|
||||
[Space(20)]
|
||||
|
||||
[Header("Frame创建")]
|
||||
[Title("Frame创建")]
|
||||
|
||||
[LabelText("系统名称")]
|
||||
[PropertyOrder(10)]
|
||||
@ -165,9 +165,9 @@ namespace Ether
|
||||
}
|
||||
|
||||
[Space(20)]
|
||||
|
||||
[Header("Frame删除")]
|
||||
|
||||
|
||||
[Title("Frame删除")]
|
||||
|
||||
[LabelText("系统名称")]
|
||||
[PropertyOrder(15)]
|
||||
public string deleteSystemName;
|
||||
|
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aa1e7688246b43947beec4c37ffcf536
|
||||
guid: 9aa2cc2c3feb8354a8ad165d024d4431
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
@ -1,5 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de41a70ead12af544a4e99a925b269d2
|
||||
guid: bb03254290073504b814eae95f4cae3c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ether
|
||||
{
|
||||
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
|
||||
public class CenterAttribute : Attribute
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6f2722fe5debda44fbec9e1a13eadc10
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,56 @@
|
||||
#if UNITY_EDITOR
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Sirenix.OdinInspector.Editor;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ether
|
||||
{
|
||||
public class TextCenterAttributeDrawer : OdinAttributeDrawer<CenterAttribute>
|
||||
{
|
||||
protected override void DrawPropertyLayout(GUIContent label)
|
||||
{
|
||||
var smartValue = Property.ValueEntry.WeakSmartValue;
|
||||
var type = Property.ValueEntry.BaseValueType;
|
||||
var value = smartValue != null ? smartValue.ToString() : "null";
|
||||
if (type.IsEnum)
|
||||
{
|
||||
InspectorNameAttribute attr = CommonTools.GetEnumFieldAttribute<InspectorNameAttribute>(type, (int)smartValue);
|
||||
value = attr != null ? attr.displayName : value;
|
||||
}
|
||||
// 开始一个新的垂直布局组
|
||||
GUILayout.BeginVertical();
|
||||
|
||||
// 添加一个灵活的空间,使内容在垂直方向上居中
|
||||
GUILayout.FlexibleSpace();
|
||||
|
||||
// 开始一个新的水平布局组
|
||||
GUILayout.BeginHorizontal();
|
||||
|
||||
// 添加一个灵活的空间,使文本在水平方向上居中
|
||||
GUILayout.FlexibleSpace();
|
||||
|
||||
// 绘制标签
|
||||
GUILayout.Label(value);
|
||||
|
||||
// 再添加一个灵活的空间
|
||||
GUILayout.FlexibleSpace();
|
||||
|
||||
// 结束水平布局组
|
||||
GUILayout.EndHorizontal();
|
||||
|
||||
// 再添加一个灵活的空间
|
||||
GUILayout.FlexibleSpace();
|
||||
|
||||
// 结束垂直布局组
|
||||
GUILayout.EndVertical();
|
||||
|
||||
// 调用下一个绘制器,继续绘制属性
|
||||
//this.CallNextDrawer(label);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cf5796f355b772641b69ae6199087e49
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
3
client/Assets/Ether/Scripts/Module/Data.meta
Normal file
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ee8993b08c864cd58951f7dffd735ccb
|
||||
timeCreated: 1729969199
|
29
client/Assets/Ether/Scripts/Module/Data/DataBase.cs
Normal file
@ -0,0 +1,29 @@
|
||||
namespace Ether
|
||||
{
|
||||
public abstract class DataBase
|
||||
{
|
||||
private DictionaryEx<string, object> allDataDic = new DictionaryEx<string, object>();
|
||||
|
||||
public bool AddData(string name, object value)
|
||||
{
|
||||
if (allDataDic.ContainsKey(name))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
allDataDic.Add(name, value);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public T GetData<T>(string name)
|
||||
{
|
||||
if (allDataDic.TryGetValue(name, out object value))
|
||||
{
|
||||
return (T)value;
|
||||
}
|
||||
|
||||
return default;
|
||||
}
|
||||
}
|
||||
}
|
3
client/Assets/Ether/Scripts/Module/Data/DataBase.cs.meta
Normal file
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c37d8592f453482b879d3f4e5b95e025
|
||||
timeCreated: 1729969248
|
@ -77,36 +77,35 @@ namespace Ether
|
||||
|
||||
public new void Remove(TKey key)
|
||||
{
|
||||
if (base.ContainsKey(key))
|
||||
if (!base.ContainsKey(key))
|
||||
return;
|
||||
|
||||
base.Remove(key);
|
||||
var pair = GetKeyValuePair(key);
|
||||
if (pair != null)
|
||||
{
|
||||
base.Remove(key);
|
||||
var pair = GetKeyValuePair(key);
|
||||
if (pair != null)
|
||||
{
|
||||
allData.Remove(pair);
|
||||
}
|
||||
allData.Remove(pair);
|
||||
}
|
||||
}
|
||||
|
||||
public void SetAsLastSibling(TKey key)
|
||||
{
|
||||
var pair = GetKeyValuePair(key);
|
||||
if (pair != null)
|
||||
{
|
||||
Remove(key);
|
||||
Add(key, pair.Value);
|
||||
}
|
||||
if (pair == null)
|
||||
return;
|
||||
|
||||
Remove(key);
|
||||
Add(key, pair.Value);
|
||||
}
|
||||
|
||||
public void SetAsFirstSibling(TKey key)
|
||||
{
|
||||
var pair = GetKeyValuePair(key);
|
||||
if (pair != null)
|
||||
{
|
||||
allData.Remove(pair);
|
||||
allData.Insert(0, pair);
|
||||
|
||||
}
|
||||
if (pair == null)
|
||||
return;
|
||||
|
||||
allData.Remove(pair);
|
||||
allData.Insert(0, pair);
|
||||
}
|
||||
|
||||
public new TValue this[TKey key]
|
||||
@ -124,10 +123,7 @@ namespace Ether
|
||||
return default;
|
||||
|
||||
}
|
||||
set
|
||||
{
|
||||
Add(key, value);
|
||||
}
|
||||
set => Add(key, value);
|
||||
}
|
||||
|
||||
public TValue this[int index]
|
||||
@ -149,7 +145,7 @@ namespace Ether
|
||||
|
||||
public SerializeKeyValue<TKey, TValue> GetKeyValuePair(TKey key)
|
||||
{
|
||||
return allData.Where(s => s.Key.CompareTo(key) == 0).FirstOrDefault();
|
||||
return allData.FirstOrDefault(s => s.Key.CompareTo(key) == 0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -22,152 +22,130 @@ namespace Ether
|
||||
{
|
||||
public virtual string PrefabPath { get; }
|
||||
|
||||
public bool IsActive { get; set; } = false;
|
||||
public UIElement UIElement { get; private set; }
|
||||
public FrameData FrameData { get; private set; }
|
||||
|
||||
public DictionaryEx<string, FrameBase> subFrames = new DictionaryEx<string, FrameBase>();
|
||||
|
||||
public FrameData frameData;
|
||||
|
||||
public FrameBase()
|
||||
protected FrameBase()
|
||||
{
|
||||
UIElement = new UIElement();
|
||||
FrameData = new FrameData();
|
||||
UIElementAttribute elementAttribute = GetType().GetCustomAttribute<UIElementAttribute>();
|
||||
UIElement.prefabPath = (elementAttribute != null && !string.IsNullOrEmpty(elementAttribute.framePrefabPath)) ? elementAttribute.framePrefabPath : PrefabPath;
|
||||
UIElement.tier = elementAttribute == null ? FrameTier.Middle : elementAttribute.tier;
|
||||
UIElement.frameType = elementAttribute == null ? FrameType.Frame : elementAttribute.frameType;
|
||||
UIElement.frameName = GetType().Name;
|
||||
FrameData.PrefabPath = (elementAttribute != null && !string.IsNullOrEmpty(elementAttribute.framePrefabPath)) ? elementAttribute.framePrefabPath : PrefabPath;
|
||||
FrameData.Tier = elementAttribute == null ? FrameTier.Middle : elementAttribute.tier;
|
||||
FrameData.FrameType = elementAttribute == null ? FrameType.Frame : elementAttribute.frameType;
|
||||
FrameData.FrameName = GetType().Name;
|
||||
}
|
||||
|
||||
#region 界面生命周期
|
||||
|
||||
/// <summary>
|
||||
/// 绑定UIRoot
|
||||
/// </summary>
|
||||
private void BindRoot()
|
||||
{
|
||||
FrameData.Root = UIManager.Inst.GetFrameRes(this);
|
||||
Debug.Log($"Frame:{FrameData.FrameName} Root初始化成功。。。。{FrameData.Root.name}");
|
||||
OnClick(FrameData.Root, OnFocus);
|
||||
}
|
||||
|
||||
protected virtual void OnInit() { }
|
||||
protected virtual void OnOpenAnim() { UIElement.Root?.SetActive(true); }
|
||||
public virtual void OnOpenFrame() { }
|
||||
public virtual void OnCloseFrame() { }
|
||||
public virtual void OnSubscribe() { }
|
||||
public virtual void OnUnSubscribe() { }
|
||||
public virtual void OnFocus(PointerEventData pointerEventData) { }
|
||||
protected virtual void OnOpenAnim() { FrameData.Root?.SetActive(true); }
|
||||
protected virtual void OnShow() { }
|
||||
protected virtual void OnClose() { }
|
||||
protected virtual void OnSubscribe() { }
|
||||
protected virtual void OnUnSubscribe() { }
|
||||
protected virtual void OnFocus(PointerEventData pointerEventData) { }
|
||||
public virtual void OnUpdate(float deltaTime) { }
|
||||
|
||||
public void SetVisible(bool isShow, Action callback = null, FrameData openFrameData = null)
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 打开界面
|
||||
/// </summary>
|
||||
public void ShowFrame(OpenFrameData openFrameData, Action callback = null)
|
||||
{
|
||||
IsActive = isShow;
|
||||
if (isShow)
|
||||
{
|
||||
frameData = openFrameData;
|
||||
OnShow(callback);
|
||||
UIElement.Root.transform.SetAsLastSibling();
|
||||
}
|
||||
else
|
||||
{
|
||||
OnHide(callback);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void OnShow(Action callback)
|
||||
{
|
||||
Debug.Log($"界面{UIElement.frameName}打开");
|
||||
FrameData.OpenFrameData = openFrameData;
|
||||
FrameData.Root.transform.SetAsLastSibling();
|
||||
Debug.Log($"界面{FrameData.FrameName}打开");
|
||||
BindRoot();
|
||||
OnOpenAnim();
|
||||
OnInit();
|
||||
OnSubscribe();
|
||||
OnOpenFrame();
|
||||
OnShow();
|
||||
OnFocus(null);
|
||||
callback?.Invoke();
|
||||
}
|
||||
|
||||
private void OnHide(Action callback)
|
||||
/// <summary>
|
||||
/// 关闭界面
|
||||
/// </summary>
|
||||
public void CloseFrame(Action callback = null)
|
||||
{
|
||||
Debug.Log($"界面{UIElement.frameName}关闭");
|
||||
Debug.Log($"界面{FrameData.FrameName}关闭");
|
||||
OnUnSubscribe();
|
||||
OnCloseFrame();
|
||||
UIElement.Root.SetVisible(false, () =>
|
||||
OnClose();
|
||||
FrameData.Root.SetVisible(false, () =>
|
||||
{
|
||||
callback?.Invoke();
|
||||
GameObject.Destroy(UIElement.Root);
|
||||
UIElement.Root = null;
|
||||
GameObject.Destroy(FrameData.Root);
|
||||
FrameData.Root = null;
|
||||
childFindCache.Clear();
|
||||
callback?.Invoke();
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 绑定UIRoot
|
||||
/// </summary>
|
||||
public void BindRoot()
|
||||
{
|
||||
UIElement.Root = UIManager.Inst.GetFrameRes(this);
|
||||
Debug.Log($"Frame:{UIElement.frameName} Root初始化成功。。。。{UIElement.Root.name}");
|
||||
OnClick(UIElement.Root, OnFocus);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 返回上个界面
|
||||
/// </summary>
|
||||
public virtual void Back()
|
||||
{
|
||||
UIManager.Inst.BackFrame(UIElement.frameName, UIElement.frameType);
|
||||
UIManager.Inst.BackFrame(FrameData.FrameName, FrameData.FrameType);
|
||||
}
|
||||
|
||||
public void Close()
|
||||
{
|
||||
SwitchHideFrame(UIElement.frameName);
|
||||
}
|
||||
|
||||
//========================================= 工具 ============================================
|
||||
#region 切换面板
|
||||
/// <summary>
|
||||
/// 切换到另个界面
|
||||
/// </summary>
|
||||
protected void SwitchFrame<T>() where T : FrameBase
|
||||
{
|
||||
string targetViewName = typeof(T).Name;
|
||||
UIManager.Inst.CloseFrame(UIElement.frameName, () =>
|
||||
//如果是子界面的话使用父界面的关闭
|
||||
if (FrameData.OpenFrameData != null && FrameData.OpenFrameData.ParentFrameData != null)
|
||||
{
|
||||
UIManager.Inst.OpenFrame(targetViewName);
|
||||
});
|
||||
//UIMgr.Ins.SwitchPanel(SwitchPanelType.SwitchShowAndHide, targetViewName, frameName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 切换到另个界面
|
||||
/// </summary>
|
||||
protected void SwitchFrame(string targetViewName)
|
||||
{
|
||||
UIManager.Inst.CloseFrame(UIElement.frameName, () =>
|
||||
FrameBase parentFrameBase = UIManager.Inst.GetFrame(FrameData.OpenFrameData.ParentFrameData.parentFrameName);
|
||||
parentFrameBase.CloseSubFrame(FrameData.FrameName);
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var framePair in subFrames)
|
||||
{
|
||||
UIManager.Inst.OpenFrame(targetViewName);
|
||||
});
|
||||
//UIMgr.Ins.SwitchPanel(SwitchPanelType.SwitchShowAndHide, targetViewName, frameName);
|
||||
UIManager.Inst.CloseFrame(framePair.Key);
|
||||
}
|
||||
subFrames.Clear();
|
||||
UIManager.Inst.CloseFrame(FrameData.FrameName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 打开另个界面,不隐藏自己
|
||||
/// </summary>
|
||||
protected void SwitchOnlyFrame<T>() where T : FrameBase
|
||||
#region 子界面操作
|
||||
|
||||
protected void OpenSubFrame<T>(OpenFrameData openFrameData, Action callback = null) where T : FrameBase
|
||||
{
|
||||
string targetViewName = typeof(T).Name;
|
||||
UIManager.Inst.OpenFrame(targetViewName);
|
||||
//UIMgr.Ins.SwitchPanel(SwitchPanelType.SwitchOnlyShow, targetViewName);
|
||||
if (openFrameData == null || openFrameData.ParentFrameData == null)
|
||||
{
|
||||
Debug.LogError("打开子界面需要FrameData,并给FrameData中的ParentData赋值");
|
||||
return;
|
||||
}
|
||||
UIManager.Inst.OpenFrame<T>(openFrameData, callback);
|
||||
T frame = UIManager.Inst.GetFrame<T>();
|
||||
subFrames.TryAdd(typeof(T).Name, frame);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 打开另个界面,不隐藏自己
|
||||
/// </summary>
|
||||
protected void SwitchOnlyFrame(string targetViewName)
|
||||
public void CloseSubFrame<T>(Action callback = null) where T : FrameBase
|
||||
{
|
||||
UIManager.Inst.OpenFrame(targetViewName);
|
||||
//UIMgr.Ins.SwitchPanel(SwitchPanelType.SwitchOnlyShow, targetViewName);
|
||||
CloseSubFrame(typeof(T).Name, callback);
|
||||
}
|
||||
|
||||
public void CloseSubFrame(string subFrameName, Action callback = null)
|
||||
{
|
||||
subFrames.Remove(subFrameName);
|
||||
UIManager.Inst.CloseFrame(subFrameName, callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 隐藏界面某个界面
|
||||
/// </summary>
|
||||
protected void SwitchHideFrame(string targetViewName)
|
||||
{
|
||||
UIManager.Inst.CloseFrame(targetViewName);
|
||||
//UIMgr.Ins.SwitchPanel(SwitchPanelType.SwitchOnlyHide, targetViewName);
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
//========================================= 事件工具 ============================================
|
||||
|
||||
#region 查找物体
|
||||
/// <summary>
|
||||
/// 子物体缓存
|
||||
@ -220,7 +198,7 @@ namespace Ether
|
||||
return tempTrans;
|
||||
}
|
||||
|
||||
Transform[] trans = UIElement.Root.GetComponentsInChildren<Transform>(true);
|
||||
Transform[] trans = FrameData.Root.GetComponentsInChildren<Transform>(true);
|
||||
|
||||
foreach (Transform tran in trans)
|
||||
{
|
||||
@ -253,7 +231,7 @@ namespace Ether
|
||||
}
|
||||
|
||||
//Debug.Log("FindChild:" + path + " Root:" + Root);
|
||||
return AddChildCache(path, UIElement.Root.transform.Find(path));
|
||||
return AddChildCache(path, FrameData.Root.transform.Find(path));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -266,6 +244,9 @@ namespace Ether
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
//========================================= 事件工具 ============================================
|
||||
|
||||
#region 按钮事件
|
||||
protected void OnBtnLeftClick(string path, Action action)
|
||||
{
|
||||
@ -538,8 +519,8 @@ namespace Ether
|
||||
/// UI物体拖拽
|
||||
/// </summary>
|
||||
/// <param name="obj">拖拽的物体</param>
|
||||
/// <param name="dragEndCallBack">拖拽结束回调</param>
|
||||
internal void OnDragMove(GameObject obj, Action<PointerEventData> dragEndCallBack = null)
|
||||
/// <param name="dragEndcallback">拖拽结束回调</param>
|
||||
internal void OnDragMove(GameObject obj, Action<PointerEventData> dragEndcallback = null)
|
||||
{
|
||||
RectTransform canvas = UIManager.Inst.MainCanvas.GetComponent<RectTransform>(); ; //得到canvas的ugui坐标
|
||||
RectTransform objRect = obj.GetComponent<RectTransform>(); //得到图片的ugui坐标
|
||||
@ -579,7 +560,7 @@ namespace Ether
|
||||
|
||||
AddTriggersListener(obj, EventTriggerType.EndDrag, (BaseEventData) =>
|
||||
{
|
||||
dragEndCallBack?.Invoke((PointerEventData)BaseEventData);
|
||||
dragEndcallback?.Invoke((PointerEventData)BaseEventData);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -8,28 +8,49 @@ namespace Ether
|
||||
{
|
||||
public class FrameData
|
||||
{
|
||||
private DictionaryEx<string, object> allDataDic = new DictionaryEx<string, object>();
|
||||
/// <summary>
|
||||
/// 界面名称
|
||||
/// </summary>
|
||||
public string FrameName;
|
||||
/// <summary>
|
||||
/// Prefab路径
|
||||
/// </summary>
|
||||
public string PrefabPath;
|
||||
/// <summary>
|
||||
/// 界面层级
|
||||
/// </summary>
|
||||
public FrameTier Tier = FrameTier.Middle;
|
||||
/// <summary>
|
||||
/// 界面类型
|
||||
/// </summary>
|
||||
public FrameType FrameType = FrameType.Frame;
|
||||
/// <summary>
|
||||
/// 界面物体
|
||||
/// </summary>
|
||||
public GameObject Root;
|
||||
|
||||
public OpenFrameData OpenFrameData;
|
||||
|
||||
}
|
||||
|
||||
public bool Add(string name, object value)
|
||||
public class OpenFrameData : DataBase
|
||||
{
|
||||
public ParentFrameData ParentFrameData { get; private set; } //父界面的信息
|
||||
|
||||
public void SetParentFrameData(string parentFrameName, Transform parent)
|
||||
{
|
||||
if (allDataDic.ContainsKey(name))
|
||||
ParentFrameData = new ParentFrameData()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
allDataDic.Add(name, value);
|
||||
|
||||
return true;
|
||||
parentFrameName = parentFrameName,
|
||||
parent = parent
|
||||
};
|
||||
}
|
||||
|
||||
public T Get<T>(string name)
|
||||
{
|
||||
if (allDataDic.TryGetValue(name, out object value))
|
||||
{
|
||||
return (T)value;
|
||||
}
|
||||
}
|
||||
|
||||
return default;
|
||||
}
|
||||
public class ParentFrameData
|
||||
{
|
||||
public string parentFrameName;
|
||||
public Transform parent;
|
||||
}
|
||||
}
|
||||
|
@ -30,8 +30,16 @@ namespace Ether
|
||||
public enum FrameType
|
||||
{
|
||||
Frame = 0, //全屏界面
|
||||
Window = 1, //窗口界面
|
||||
Pop = 2, //弹窗界面
|
||||
Tips = 3, //提示
|
||||
Pop = 1, //弹窗界面
|
||||
Tips = 2, //提示
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 界面等级
|
||||
/// </summary>
|
||||
public enum FrameLevel
|
||||
{
|
||||
Main = 0, //主界面
|
||||
Sub = 1, //子界面
|
||||
}
|
||||
}
|
||||
|
@ -1,39 +0,0 @@
|
||||
/********************************************************************
|
||||
文件: UIElement.cs
|
||||
作者: 梦语
|
||||
邮箱: 1982614048@qq.com
|
||||
创建时间: 2024/03/29 17:28:19
|
||||
最后修改: 梦语
|
||||
最后修改时间: 2024/04/03 16:00:47
|
||||
功能:
|
||||
*********************************************************************/
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ether
|
||||
{
|
||||
public class UIElement
|
||||
{
|
||||
/// <summary>
|
||||
/// 界面名称
|
||||
/// </summary>
|
||||
public string frameName;
|
||||
/// <summary>
|
||||
/// Prefab路径
|
||||
/// </summary>
|
||||
public string prefabPath;
|
||||
/// <summary>
|
||||
/// 界面层级
|
||||
/// </summary>
|
||||
public FrameTier tier = FrameTier.Middle;
|
||||
/// <summary>
|
||||
/// 界面类型
|
||||
/// </summary>
|
||||
public FrameType frameType = FrameType.Frame;
|
||||
/// <summary>
|
||||
/// 界面物体
|
||||
/// </summary>
|
||||
public GameObject Root;
|
||||
}
|
||||
}
|
@ -25,11 +25,8 @@ namespace Ether
|
||||
List<Transform> tierList = new List<Transform>(); //所有的层级
|
||||
//所有打开的界面
|
||||
private DictionaryEx<string, FrameBase> allOpenFrames = new DictionaryEx<string, FrameBase>();
|
||||
//所有界面需要保存的数据
|
||||
private DictionaryEx<string, FrameData> allFrameData = new DictionaryEx<string, FrameData>();
|
||||
|
||||
private LinkedSequence<string> frameOpenStack = new LinkedSequence<string>();
|
||||
private LinkedSequence<string> windowOpenStack = new LinkedSequence<string>();
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
@ -123,10 +120,7 @@ namespace Ether
|
||||
foreach (var viewPair in allOpenFrames)
|
||||
{
|
||||
FrameBase frame = viewPair.Value;
|
||||
if (frame.IsActive)
|
||||
{
|
||||
frame.OnUpdate(deltaTime);
|
||||
}
|
||||
frame?.OnUpdate(deltaTime);
|
||||
}
|
||||
}
|
||||
|
||||
@ -134,20 +128,19 @@ namespace Ether
|
||||
/// 打开界面
|
||||
/// </summary>
|
||||
/// <param name="framName"></param>
|
||||
public void OpenFrame(string framName, FrameData openFrameData = null, Action callback = null)
|
||||
public void OpenFrame(string framName, OpenFrameData openFrameData = null, Action callback = null)
|
||||
{
|
||||
Type frameType = CommonTools.GetType(framName);
|
||||
OpenFrame(framName, frameType, callback, openFrameData);
|
||||
OpenFrame(frameType, openFrameData, callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 打开界面
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
public void OpenFrame<T>(FrameData openFrameData = null, Action callback = null) where T : FrameBase
|
||||
public void OpenFrame<T>(OpenFrameData openFrameData = null, Action callback = null) where T : FrameBase
|
||||
{
|
||||
string name = typeof(T).Name;
|
||||
OpenFrame(name, typeof(T), callback, openFrameData);
|
||||
OpenFrame(typeof(T), openFrameData, callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -155,42 +148,25 @@ namespace Ether
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="type"></param>
|
||||
private void OpenFrame(string name, Type type, Action callback = null, FrameData openFrameData = null)
|
||||
private void OpenFrame(Type type, OpenFrameData openFrameData = null, Action callback = null)
|
||||
{
|
||||
string name = type.Name;
|
||||
|
||||
FrameBase frame;
|
||||
if (allOpenFrames.ContainsKey(name))
|
||||
{
|
||||
frame = allOpenFrames[name];
|
||||
frame.SetVisible(false);
|
||||
frame.CloseFrame();
|
||||
}
|
||||
else
|
||||
{
|
||||
frame = (FrameBase)Activator.CreateInstance(type);
|
||||
allOpenFrames.Add(name, frame);
|
||||
}
|
||||
|
||||
frame.ShowFrame(openFrameData, callback);
|
||||
|
||||
if (openFrameData == null)
|
||||
{
|
||||
if (allFrameData.ContainsKey(name))
|
||||
{
|
||||
openFrameData = allFrameData[name];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (allFrameData.ContainsKey(name))
|
||||
{
|
||||
allFrameData[name] = openFrameData;
|
||||
}
|
||||
else
|
||||
{
|
||||
allFrameData.Add(name, openFrameData);
|
||||
}
|
||||
}
|
||||
|
||||
frame.SetVisible(true, callback, openFrameData);
|
||||
|
||||
switch (frame.UIElement.frameType)
|
||||
switch (frame.FrameData.FrameType)
|
||||
{
|
||||
case FrameType.Frame:
|
||||
frameOpenStack.Add(name);
|
||||
@ -201,21 +177,6 @@ namespace Ether
|
||||
}
|
||||
Debug.Log(str);
|
||||
|
||||
//全屏界面打开时关闭所有窗口界面
|
||||
foreach (var node in windowOpenStack)
|
||||
{
|
||||
CloseFrame(node.Value);
|
||||
}
|
||||
|
||||
break;
|
||||
case FrameType.Window:
|
||||
windowOpenStack.Add(name);
|
||||
string winStr = "当前打开的窗口 :";
|
||||
foreach (var node in windowOpenStack)
|
||||
{
|
||||
winStr += node.Value + " ";
|
||||
}
|
||||
Debug.Log(winStr);
|
||||
break;
|
||||
case FrameType.Pop:
|
||||
break;
|
||||
@ -244,7 +205,7 @@ namespace Ether
|
||||
if (allOpenFrames.ContainsKey(frameName))
|
||||
{
|
||||
FrameBase frame = allOpenFrames[frameName];
|
||||
frame.SetVisible(false, callback);
|
||||
frame.CloseFrame(callback);
|
||||
allOpenFrames.Remove(frameName);
|
||||
}
|
||||
|
||||
@ -260,15 +221,22 @@ namespace Ether
|
||||
public GameObject GetFrameRes<T>(T frame) where T : FrameBase
|
||||
{
|
||||
Type viewType = typeof(T);
|
||||
UIElement element = frame.UIElement;
|
||||
|
||||
if (element != null && !string.IsNullOrEmpty(element.prefabPath))
|
||||
if (frame.FrameData != null && !string.IsNullOrEmpty(frame.FrameData.PrefabPath))
|
||||
{
|
||||
GameObject obj = LoaderTools.LoadGameObjectAndInstantiateAsync(element.prefabPath, GetTier(element.tier));
|
||||
Transform parent;
|
||||
if (frame.FrameData.OpenFrameData != null && frame.FrameData.OpenFrameData.ParentFrameData != null
|
||||
&& frame.FrameData.OpenFrameData.ParentFrameData.parent != null)
|
||||
{
|
||||
parent = frame.FrameData.OpenFrameData.ParentFrameData.parent;
|
||||
}else{
|
||||
parent = GetTier(frame.FrameData.Tier);
|
||||
}
|
||||
|
||||
GameObject obj = LoaderTools.LoadGameObjectAndInstantiateAsync(frame.FrameData.PrefabPath, parent);
|
||||
|
||||
if (obj == null)
|
||||
{
|
||||
Debug.LogErrorFormat("加载Frame Prefab失败:{0}!", element.prefabPath);
|
||||
Debug.LogErrorFormat("加载Frame Prefab失败:{0}!", frame.FrameData.PrefabPath);
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -292,12 +260,17 @@ namespace Ether
|
||||
public T GetFrame<T>() where T : FrameBase
|
||||
{
|
||||
string name = typeof(T).Name;
|
||||
if (allOpenFrames.TryGetValue(name, out FrameBase frameBase))
|
||||
{
|
||||
return frameBase as T;
|
||||
}
|
||||
|
||||
FrameBase frameBase = allOpenFrames[name];
|
||||
return frameBase as T;
|
||||
}
|
||||
|
||||
return null;
|
||||
/// <summary>
|
||||
/// 获取界面
|
||||
/// </summary>
|
||||
public FrameBase GetFrame(string frameName)
|
||||
{
|
||||
return allOpenFrames.GetValueOrDefault(frameName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -308,16 +281,6 @@ namespace Ether
|
||||
return GetFrame<T>() != null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 窗口聚焦
|
||||
/// </summary>
|
||||
public void FocusWindow(string name)
|
||||
{
|
||||
var node = windowOpenStack[name];
|
||||
node.SetAsLastSibling();
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 返回
|
||||
/// </summary>
|
||||
@ -332,10 +295,8 @@ namespace Ether
|
||||
OpenFrame(frameOpenStack.Last().Value);
|
||||
}
|
||||
break;
|
||||
case FrameType.Window:
|
||||
frameOpenStack.Remove(name);
|
||||
break;
|
||||
case FrameType.Pop:
|
||||
frameOpenStack.Remove(name);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -349,7 +310,6 @@ namespace Ether
|
||||
{
|
||||
tierList.Clear();
|
||||
frameOpenStack.Clear();
|
||||
windowOpenStack.Clear();
|
||||
foreach (var frameNodePair in allOpenFrames)
|
||||
{
|
||||
frameNodePair.Value.Close();
|
||||
|
7
client/Assets/Ether/Scripts/Module/UI/UIUtil.cs
Normal file
@ -0,0 +1,7 @@
|
||||
namespace Ether
|
||||
{
|
||||
public static class UIUtil
|
||||
{
|
||||
|
||||
}
|
||||
}
|
3
client/Assets/Ether/Scripts/Module/UI/UIUtil.cs.meta
Normal file
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7199adb958b24a5797ce5930c0834d9d
|
||||
timeCreated: 1729970369
|
@ -182,9 +182,14 @@ namespace Ether
|
||||
/// <param name="enumValue"></param>
|
||||
/// <returns></returns>
|
||||
public static K GetEnumFieldAttribute<T, K>(int enumValue) where T : Enum where K : Attribute
|
||||
{
|
||||
return GetEnumFieldAttribute<K>(typeof(T), enumValue);
|
||||
}
|
||||
|
||||
public static K GetEnumFieldAttribute<K>(Type type, int enumValue) where K : Attribute
|
||||
{
|
||||
//反射获取字段
|
||||
System.Reflection.FieldInfo[] fields = typeof(T).GetFields();
|
||||
System.Reflection.FieldInfo[] fields = type.GetFields();
|
||||
System.Type attType = typeof(K);
|
||||
for (int i = 0; i < fields.Length; i++)
|
||||
{
|
||||
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9a5d0567944e3dc42a5edc674d753579
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 162a289e6a408d74a9f9d6c378d73c47
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5f90836a61e34c64096ebf9ae8bb41e0
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -3,8 +3,9 @@
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
@ -913,7 +914,7 @@ MonoBehaviour:
|
||||
- Type: 7
|
||||
Value: 85.381004
|
||||
- Type: 4
|
||||
Value: 58.173435
|
||||
Value: 58.333332
|
||||
- Type: 3
|
||||
Value: 100
|
||||
- Type: 2
|
||||
|
@ -3,8 +3,9 @@
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
@ -15,6 +16,7 @@ MonoBehaviour:
|
||||
SerializedFormat: 2
|
||||
SerializedBytes:
|
||||
ReferencedUnityObjects:
|
||||
- {fileID: 11400000, guid: 6ab32b89bfa24794cbad9dc3ace0c02b, type: 2}
|
||||
- {fileID: 11400000, guid: da06c416056e169499ec57af28fffbfe, type: 2}
|
||||
- {fileID: 11400000, guid: 98efc1438872f0b458fefa279e5ee972, type: 2}
|
||||
SerializedBytesString:
|
||||
@ -206,8 +208,8 @@ MonoBehaviour:
|
||||
Entry: 3
|
||||
Data: 0
|
||||
- Name: Item
|
||||
Entry: 6
|
||||
Data:
|
||||
Entry: 10
|
||||
Data: 0
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
@ -411,7 +413,7 @@ MonoBehaviour:
|
||||
Data: 1
|
||||
- Name: Item
|
||||
Entry: 10
|
||||
Data: 0
|
||||
Data: 1
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
@ -555,7 +557,7 @@ MonoBehaviour:
|
||||
Data: 0
|
||||
- Name: Item
|
||||
Entry: 10
|
||||
Data: 1
|
||||
Data: 2
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
|
@ -3,8 +3,9 @@
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
@ -23,7 +24,9 @@ MonoBehaviour:
|
||||
ItemRarity: Infinity
|
||||
Durability: Infinity
|
||||
Modifiers:
|
||||
stats: []
|
||||
stats:
|
||||
- Type: 0
|
||||
Value: 0
|
||||
BaseAttackDamage: Infinity
|
||||
BaseAttackSpeed: Infinity
|
||||
BaseCritChance: Infinity
|
||||
|
@ -67,7 +67,7 @@ namespace Sirenix.OdinInspector.Demos.RPGEditor
|
||||
{
|
||||
var selected = this.MenuTree.Selection.FirstOrDefault();
|
||||
var toolbarHeight = this.MenuTree.Config.SearchToolbarHeight;
|
||||
|
||||
|
||||
// Draws a toolbar with the name of the currently selected menu item.
|
||||
SirenixEditorGUI.BeginHorizontalToolbar(toolbarHeight);
|
||||
{
|
||||
|
Before Width: | Height: | Size: 376 KiB After Width: | Height: | Size: 376 KiB |
@ -93,6 +93,32 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
@ -1,5 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9d8b8023ef3e92847b012cfd9523c894
|
||||
guid: ab13d253cf933374ab72bf1b623980dd
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
BIN
client/Assets/Resources/Art/UI/Icon/bow.png
Normal file
After Width: | Height: | Size: 115 KiB |
88
client/Assets/Resources/Art/UI/Icon/bow.png.meta
Normal file
@ -0,0 +1,88 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cb5d46a7234fd254ba130a0d61661dab
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: c1ce7833be15fc944a8fd850459f4b64
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
client/Assets/Resources/Art/UI/Icon/definitely_a_spear.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
@ -0,0 +1,88 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 893235023e7cf574d93f14e47d0f6b1d
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 6faa0a12b29d371419af68189fcf8363
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
client/Assets/Resources/Art/UI/Icon/potionGreen.png
Normal file
After Width: | Height: | Size: 76 KiB |
88
client/Assets/Resources/Art/UI/Icon/potionGreen.png.meta
Normal file
@ -0,0 +1,88 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1a83f0977cb37f7419ad261dc4f20d56
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 87d36525542f5eb419fdb09f2db7aa09
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
client/Assets/Resources/Art/UI/Icon/tools.png
Normal file
After Width: | Height: | Size: 113 KiB |
88
client/Assets/Resources/Art/UI/Icon/tools.png.meta
Normal file
@ -0,0 +1,88 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a99d746ecb7d5be42b5f891b6dc810d3
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 4e12ba0fa7c23ed4087711ab5816b523
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
client/Assets/Resources/Art/UI/Icon/upg_armor.png
Normal file
After Width: | Height: | Size: 142 KiB |
88
client/Assets/Resources/Art/UI/Icon/upg_armor.png.meta
Normal file
@ -0,0 +1,88 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 17b9ff598d3981a4da2008b01196f21a
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 23d526a1a6e5bf24599621cde6f1ae4c
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
client/Assets/Resources/Art/UI/Icon/upg_hammer.png
Normal file
After Width: | Height: | Size: 129 KiB |
88
client/Assets/Resources/Art/UI/Icon/upg_hammer.png.meta
Normal file
@ -0,0 +1,88 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bf6f72a515033f847bd2e0a49980ffc2
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 6ad25f9eeeaa2404283b2842f99c499e
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
client/Assets/Resources/Art/UI/Icon/upg_helmet.png
Normal file
After Width: | Height: | Size: 92 KiB |
88
client/Assets/Resources/Art/UI/Icon/upg_helmet.png.meta
Normal file
@ -0,0 +1,88 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 09a03d2b759d8e94282bf809a89a2e4a
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: d51043b17c27d174c8da63eaaef7e795
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
client/Assets/Resources/Art/UI/Icon/upg_shield.png
Normal file
After Width: | Height: | Size: 120 KiB |
88
client/Assets/Resources/Art/UI/Icon/upg_shield.png.meta
Normal file
@ -0,0 +1,88 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 22f30194770f8f248a25a6939d03e97d
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 9b8203a727e1d1c4dae9bb18cb42c34a
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
client/Assets/Resources/Art/UI/Icon/woodSword.png
Normal file
After Width: | Height: | Size: 90 KiB |
88
client/Assets/Resources/Art/UI/Icon/woodSword.png.meta
Normal file
@ -0,0 +1,88 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3141cfb3eefbcb34e90d4fce7b277be0
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 17d4589db1d61244b9f384006fdd0960
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
client/Assets/Resources/Prefabs/Frames/Menu.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: defd54e0a6147144aa915a89e4f913d2
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
396
client/Assets/Resources/Prefabs/Frames/Menu/MenuFrame.prefab
Normal file
@ -0,0 +1,396 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1703080056135353327
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5211158822168324289}
|
||||
m_Layer: 5
|
||||
m_Name: MenuFrame
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5211158822168324289
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1703080056135353327}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 4966303923125748504}
|
||||
- {fileID: 5802661914892923637}
|
||||
- {fileID: 76701579739485789}
|
||||
- {fileID: 4750869553657473706}
|
||||
- {fileID: 8841272054739042360}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &2031502759202179248
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4966303923125748504}
|
||||
- component: {fileID: 1651226042617246323}
|
||||
- component: {fileID: 5204481291985637621}
|
||||
m_Layer: 5
|
||||
m_Name: Image
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4966303923125748504
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2031502759202179248}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5211158822168324289}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 1920, y: 1080}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1651226042617246323
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2031502759202179248}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &5204481291985637621
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2031502759202179248}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: cfcd81c399c33e0448b4c4d2d905eb89, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &3187158525571320440
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8841272054739042360}
|
||||
- component: {fileID: 5583933044651279577}
|
||||
- component: {fileID: 490261191520837589}
|
||||
m_Layer: 5
|
||||
m_Name: <Text>MenuName
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8841272054739042360
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3187158525571320440}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5211158822168324289}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: -809.9, y: 458.7}
|
||||
m_SizeDelta: {x: 178.1032, y: 81.8121}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5583933044651279577
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3187158525571320440}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &490261191520837589
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3187158525571320440}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 0
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: "\u53CB\u4EBA"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 5260a5b886a7afb42923003dcf1df014, type: 2}
|
||||
m_sharedMaterial: {fileID: 7042218265555741552, guid: 5260a5b886a7afb42923003dcf1df014, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4292798183
|
||||
m_fontColor: {r: 0.9058824, g: 0.90196085, b: 0.8705883, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 40
|
||||
m_fontSizeBase: 40
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &4372829903781501600
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5802661914892923637}
|
||||
- component: {fileID: 5459735667113016427}
|
||||
- component: {fileID: 7219598427896711725}
|
||||
m_Layer: 5
|
||||
m_Name: Bg
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5802661914892923637
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4372829903781501600}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5211158822168324289}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5459735667113016427
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4372829903781501600}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7219598427896711725
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4372829903781501600}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 0c83a04b3389e144cabe25c2e0c6fa60, type: 3}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &4431744563231483228
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 76701579739485789}
|
||||
m_Layer: 5
|
||||
m_Name: SubFrameRoot
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &76701579739485789
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4431744563231483228}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5211158822168324289}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &6082798616992106121
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4750869553657473706}
|
||||
m_Layer: 5
|
||||
m_Name: Menu
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4750869553657473706
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6082798616992106121}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5211158822168324289}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: -76.244995}
|
||||
m_SizeDelta: {x: 0, y: 152.4899}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 458a37930a6ee1945a411ddb31500ebc
|
||||
guid: e579b2d5fb2cb1e44823098701b8ecc6
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
@ -1,113 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1703080056135353327
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5211158822168324289}
|
||||
m_Layer: 0
|
||||
m_Name: TempFrame
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5211158822168324289
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1703080056135353327}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 5802661914892923637}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &4372829903781501600
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5802661914892923637}
|
||||
- component: {fileID: 5459735667113016427}
|
||||
- component: {fileID: 7219598427896711725}
|
||||
m_Layer: 0
|
||||
m_Name: Bg
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5802661914892923637
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4372829903781501600}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5211158822168324289}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5459735667113016427
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4372829903781501600}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7219598427896711725
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4372829903781501600}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
@ -0,0 +1,19 @@
|
||||
//=================================================== 代码自动创建,禁止手动修改 ===================================================
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using TMPro;
|
||||
|
||||
namespace Ether
|
||||
{
|
||||
public class MenuFrameBase : FrameBase
|
||||
{
|
||||
public override string PrefabPath { get; } = "Prefabs/Frames/Menu/MenuFrame";
|
||||
|
||||
protected override void OnInit()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 412a5f9f3cccb62499ad98541e3fda28
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,22 +1,103 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Sirenix.OdinInspector;
|
||||
using TableConfig;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ether
|
||||
{
|
||||
public class PropItemTableWindow
|
||||
public class PropItemTableWindow : OdinSubWindowBase
|
||||
{
|
||||
[LabelText("道具列表")]
|
||||
[DisableContextMenu(true, true)]
|
||||
[TableList(IsReadOnly = true, AlwaysExpanded = true), ShowInInspector]
|
||||
public readonly List<PropItemTableEditorPreview> propItemTableEditorPreviewList;
|
||||
private List<PropItemTableEditorPreview> propItemTableEditorPreviewList;
|
||||
|
||||
public PropItemTableWindow()
|
||||
protected override void OnInit()
|
||||
{
|
||||
propItemTableEditorPreviewList = new List<PropItemTableEditorPreview>();
|
||||
}
|
||||
|
||||
public override void OnShow()
|
||||
{
|
||||
propItemTableEditorPreviewList.Clear();
|
||||
foreach (var propItemCfg in TableProvider.Tables.TbPropItem.DataList)
|
||||
{
|
||||
propItemTableEditorPreviewList.Add(new PropItemTableEditorPreview(propItemCfg));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected override void OnSave()
|
||||
{
|
||||
Debug.Log("Custom save action performed.");
|
||||
// 在这里添加你的保存逻辑
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[DisableContextMenu(true, true)]
|
||||
public class PropItemTableEditorPreview
|
||||
{
|
||||
{
|
||||
[DisableContextMenu]
|
||||
[TableColumnWidth(50, false)]
|
||||
[HorizontalGroup("Id"), HideLabel]
|
||||
[ShowInInspector]
|
||||
[DisplayAsString]
|
||||
[LabelWidth(20)]
|
||||
[Center]
|
||||
public int Id;
|
||||
|
||||
[DisableContextMenu]
|
||||
[HorizontalGroup("图标"), HideLabel]
|
||||
[TableColumnWidth(50, false)]
|
||||
[ShowInInspector, PreviewField(45, ObjectFieldAlignment.Center)]
|
||||
[ReadOnly]
|
||||
public Texture Icon;
|
||||
|
||||
[DisableContextMenu]
|
||||
[HorizontalGroup("名称"), HideLabel]
|
||||
[TableColumnWidth(150, false)]
|
||||
[DisplayAsString]
|
||||
[Center]
|
||||
public string Name;
|
||||
|
||||
[DisableContextMenu]
|
||||
[HorizontalGroup("类型"), HideLabel]
|
||||
[TableColumnWidth(150, false)]
|
||||
[DisplayAsString]
|
||||
[Center]
|
||||
public PropItemType Type;
|
||||
|
||||
[DisableContextMenu]
|
||||
[HorizontalGroup("品质"), HideLabel]
|
||||
[TableColumnWidth(50, false)]
|
||||
[DisplayAsString]
|
||||
[Center]
|
||||
public int Quality;
|
||||
|
||||
[DisableContextMenu]
|
||||
[HorizontalGroup("描述"), HideLabel]
|
||||
[TableColumnWidth(0)]
|
||||
//[TextArea(2,100)]
|
||||
//[ReadOnly]
|
||||
[Center]
|
||||
public string Description = "这是个道具描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述 ";
|
||||
|
||||
public PropItemTableEditorPreview(PropItemTable propItemCfg)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(propItemCfg.Icon))
|
||||
{
|
||||
Icon = LoaderTools.LoadAsset<Sprite>("Art/UI/Icon/" + propItemCfg.Icon).texture;
|
||||
//Icon = AssetDatabase.LoadAssetAtPath<Texture>("Resources/" + );
|
||||
}
|
||||
|
||||
Id = propItemCfg.Id;
|
||||
Name = propItemCfg.Name;
|
||||
Type = propItemCfg.Type;
|
||||
Quality = propItemCfg.Quality;
|
||||
Description = propItemCfg.Description;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,43 +1,28 @@
|
||||
|
||||
using Sirenix.OdinInspector.Editor;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Sirenix.OdinInspector.Demos.RPGEditor;
|
||||
using Sirenix.Utilities.Editor;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ether
|
||||
{
|
||||
public class TableEditorWindow : OdinMenuEditorWindow
|
||||
public class TableEditorWindow : OdinWindowBase<TableEditorWindow>
|
||||
{
|
||||
[MenuItem("配置/表格配置 %t")]
|
||||
private static void OpenWindow()
|
||||
{
|
||||
var window = GetWindow<TableEditorWindow>();
|
||||
window.titleContent = new GUIContent("表格配置");
|
||||
TableProvider.ResetCounter();
|
||||
}
|
||||
|
||||
private PropItemTableWindow propItemTableWindow;
|
||||
|
||||
protected override OdinMenuTree BuildMenuTree()
|
||||
protected override void OnInit()
|
||||
{
|
||||
var tree = new OdinMenuTree();
|
||||
tree.Selection.SupportsMultiSelect = false;
|
||||
tree.Config.DrawSearchToolbar = true;
|
||||
|
||||
if (propItemTableWindow == null)
|
||||
{
|
||||
propItemTableWindow = new PropItemTableWindow();
|
||||
}
|
||||
|
||||
tree.Add("道具配置", propItemTableWindow);
|
||||
tree.Add("道具配置/道具列表", propItemTableWindow);
|
||||
|
||||
return tree;
|
||||
DrawSearchToolbar = true;
|
||||
AddSubWindow<PropItemTableWindow>("道具配置");
|
||||
AddSubWindow<PropItemTableWindow>("道具配置/道具列表");
|
||||
}
|
||||
|
||||
|
||||
protected override void OnBeginDrawEditors()
|
||||
{
|
||||
var selected = this.MenuTree.Selection.FirstOrDefault();
|
||||
@ -60,4 +45,5 @@ namespace Ether
|
||||
SirenixEditorGUI.EndHorizontalToolbar();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -29,5 +29,13 @@ namespace Ether
|
||||
{
|
||||
tables = new Tables(file => JSON.Parse(File.ReadAllText($"{tableDir}/{file}.json")));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重置数据
|
||||
/// </summary>
|
||||
public static void ResetCounter()
|
||||
{
|
||||
tables = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ namespace Ether
|
||||
|
||||
private SubtitlesRequestInfo curSubTitleInfo;
|
||||
|
||||
public override void OnOpenFrame()
|
||||
protected override void OnShow()
|
||||
{
|
||||
_GoTempChoiceBtn.SetActive(false);
|
||||
_BtnExBgNext.OnClick.AddListener(() =>
|
||||
@ -24,7 +24,7 @@ namespace Ether
|
||||
});
|
||||
}
|
||||
|
||||
public override void OnSubscribe()
|
||||
protected override void OnSubscribe()
|
||||
{
|
||||
EventCenter.AddListener<SubtitlesRequestInfo>("OnSubtitlesRequest", OnSubtitlesRequest);
|
||||
EventCenter.AddListener<MultipleChoiceRequestInfo>("OnMultipleChoiceRequest", OnMultipleChoiceRequest);
|
||||
@ -73,7 +73,7 @@ namespace Ether
|
||||
|
||||
}
|
||||
|
||||
public override void OnUnSubscribe()
|
||||
protected override void OnUnSubscribe()
|
||||
{
|
||||
EventCenter.RemoveListener<SubtitlesRequestInfo>("OnSubtitlesRequest", OnSubtitlesRequest);
|
||||
EventCenter.RemoveListener<MultipleChoiceRequestInfo>("OnMultipleChoiceRequest", OnMultipleChoiceRequest);
|
||||
|
@ -10,12 +10,12 @@ namespace Ether
|
||||
[UIElement(FrameTier.MaxTop)]
|
||||
public class LoadingFrame : LoadingFrameBase
|
||||
{
|
||||
public override void OnOpenFrame()
|
||||
protected override void OnShow()
|
||||
{
|
||||
_AnimatorCrossfade.SetTrigger("FadeEnter");
|
||||
}
|
||||
|
||||
public override void OnSubscribe()
|
||||
protected override void OnSubscribe()
|
||||
{
|
||||
EventCenter.AddListener("CutSceneSucc", CutSceneSucc);
|
||||
}
|
||||
@ -25,7 +25,7 @@ namespace Ether
|
||||
_AnimatorCrossfade.SetTrigger("FadeExit");
|
||||
}
|
||||
|
||||
public override void OnUnSubscribe()
|
||||
protected override void OnUnSubscribe()
|
||||
{
|
||||
EventCenter.RemoveListener("CutSceneSucc", CutSceneSucc);
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ namespace Ether
|
||||
{
|
||||
public class LoginFrame : LoginFrameBase
|
||||
{
|
||||
public override void OnSubscribe()
|
||||
protected override void OnSubscribe()
|
||||
{
|
||||
//EventCenter.AddListener<EtherInputType, int>(EtherInputType.Up, OnInputUpEvent);
|
||||
//EventCenter.AddListener<EtherInputType, int>(EtherInputType.Down, OnInputDownEvent);
|
||||
@ -26,7 +26,7 @@ namespace Ether
|
||||
//EventCenter.AddListener<EtherInputType, int>(EtherInputType.Right, OnInputRightEvent);
|
||||
}
|
||||
|
||||
public override void OnUnSubscribe()
|
||||
protected override void OnUnSubscribe()
|
||||
{
|
||||
//EventCenter.RemoveListener<EtherInputType, int>(EtherInputType.Up, OnInputUpEvent);
|
||||
//EventCenter.RemoveListener<EtherInputType, int>(EtherInputType.Down, OnInputDownEvent);
|
||||
@ -54,12 +54,12 @@ namespace Ether
|
||||
// Debug.Log("RightRightRightRightRight:" + state);
|
||||
//}
|
||||
|
||||
public override void OnOpenFrame()
|
||||
protected override void OnShow()
|
||||
{
|
||||
_BtnExContinuGame.OnClick.AddListener(() =>
|
||||
{
|
||||
Debug.Log("点击继续游戏");
|
||||
SwitchOnlyFrame<LoadingFrame>();
|
||||
UIManager.Inst.OpenFrame<LoadingFrame>();
|
||||
SceneSystemManager.Inst.LoadScene("Login");
|
||||
});
|
||||
|
||||
|
8
client/Assets/Scripts/Frame/Menu.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9230110546c3934419e8a64dde179843
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -5,7 +5,7 @@ using UnityEngine;
|
||||
|
||||
namespace Ether
|
||||
{
|
||||
public class SettingFrame : SettingFrameBase
|
||||
public class MenuFrame : MenuFrameBase
|
||||
{
|
||||
|
||||
}
|
11
client/Assets/Scripts/Frame/Menu/MenuFrame.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2e28bc3f1a703824aa943f8a5d8319d7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -50,5 +50,13 @@
|
||||
"SortIndex": 2
|
||||
}
|
||||
],
|
||||
"Joystick": []
|
||||
"Joystick": [
|
||||
{
|
||||
"KeyCode": 0,
|
||||
"KeyType": 0,
|
||||
"KeyDescription": null,
|
||||
"Event": 0,
|
||||
"SortIndex": 0
|
||||
}
|
||||
]
|
||||
}
|
@ -4,8 +4,8 @@
|
||||
"Name": "金币",
|
||||
"Type": 1,
|
||||
"Description": "这是纯金的哦",
|
||||
"Icon": "",
|
||||
"Quality": 1,
|
||||
"Icon": "potionGreen",
|
||||
"Quality": 5,
|
||||
"Occupy": false
|
||||
},
|
||||
{
|
||||
@ -13,8 +13,8 @@
|
||||
"Name": "钻石",
|
||||
"Type": 1,
|
||||
"Description": "贼贵的钻石哦",
|
||||
"Icon": "",
|
||||
"Quality": 1,
|
||||
"Icon": "woodSword",
|
||||
"Quality": 3,
|
||||
"Occupy": false
|
||||
}
|
||||
]
|
@ -8,9 +8,9 @@
|
||||
功能:
|
||||
*********************************************************************/
|
||||
|
||||
using Sirenix.OdinInspector;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Sirenix.OdinInspector;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|