Skip to content

araya/ET-Plus

 
 

Repository files navigation

Plus 内容

[TOC]

1. 自动生成代码

  • 原因: 每次都要复制,再改,比较烦

  • 备注: 只作用在Hotfix和Model文件夹下创建的脚本

    1. 补全Entity
    • 使用: 输入名字 ***Entity
    1. 补全Component
    • 使用: 输入名字 ***Component
    1. 补全Event
    • 使用: 输入名字 ***Event
    1. 补全Config
    • 额外: 还会在 Assets/Res/Config 生成 txt, 并加到 Assets/Bundles/Independent/Cofig
    • 使用: 输入名字 ***Config
    1. 补全命名空间
    • 使用: 输入任意名字

2. 永远从Init开始游戏

  • 原因: 有时候在Map场景编辑时,我想测试游戏,我需要点击Init场景,因为游戏都是从这个场景开始的

  • 使用方式: 在Tools/Plus/Start Scene打开Window, 可以设置每次都开始的场景名和是否启用此功能

3. Scp同步资源

  • 原因: 不会用 Rsync同步

  • 使用: 在Tools/Plus/Scp Window打开

  • 备注: 每次同步会覆盖原有资源,但不会删除原有资源

4. 工具类

  • 原因: 简化重复代码

  • 4.1 UIUtil

    • 打开: 有一个UILogin, 打开一个Panel: UIUtil.OpenPanel("UILogin");
    • 获取: UIUtil.GetPanel("UILogin")
    • 关闭: UIUtil.ClosePanel("UILogin")
  • 4.2 SceneUtil

    • 加载场景:
SceneUtil.LoadScene("Map", () =>
				{
					Debug.Log("加载完毕");
				}).Coroutine();
  • 4.3 ResourceUtil

    • 加载一个叫 click 的 AudioClip

      ResourceUtil.Load<AudioClp>("click");
    • 卸载 click

      ResourceUtil.Unload("click");
  • 4.4 ConfigUtil

    • 获取 Config

      UnitConfig unitConfig = ConfigUtil.GetConfig<UnitConfig>(2001);
    • 获取Json

      string json = ConfigUtil.GetJson<TestConfig>(2001);

5. 事件管理者 (EventMgr)

  • 原因: 我以前用过一段时间KBEngine, 这个是我参考KBEngine改的

  • 演示: 我想在WorldComponent调用场景所有PlayerComponent的Jump方法

  • // Player
    public class PlayerComponent : Component {
        void Awake() {
            this.Register("Jump");
        }
        
        void OnDestroy() {
        	this.Deregister();
        }
        
        public void Jump() {
            // TODO 跳一跳
        }
    }
  • // World
    public class WorldComponent : Component {
        void Start() {
            this.Send("Jump");
        }
    }

6. 音频管理

  • 第一步: 在Hotfix的Init.cs里

    • Game.Scene.AddComponent<AudioEntity>();
  • 第二步: 使用

    • // 设置背景音乐
      Game.Scene.GetComponent<AudioEntity>().SetBGM("bgm_name");
      
      // 播放点击声音
      Game.Scene.GetComponent<AudioEntity>().PlaySound("click");

7. 提示信息面板

  • 原因: 每次都要做这个UI, 所以我已经做好了

  • 使用: UIUtil.OpenPanel(UIType.TipPanel)?.SetTip("提示信息");

8. 额外的资源

8.1 字体

  • Res/Font/font_fatman有个字体,是方正胖娃_GBK,挺好看的,商用需要去购买,这里学习使用是可以的

8.2 游戏内控制台

  • 作用: 导出到手机或PC端,也可以看到Console的信息(和Unity的Console一样)

  • 这个Asset Store插件,从Res/Prefab/IngameDebugConsole拖拽到场景里面

8.3 Dotween免费版

  • Plugins/Demigiant里,这里是免费版,够我用了

8.4 行为树 - NPBehave

  • 在烟雨的博客看到的

  • 如果是帧同步行为树只需要在Unity, 如果是状态同步行为树需要用在服务端,NPBehave不依赖于MonoBehaviour

9. 快速标记AssetBundle

  • 在Project下,右键资源点击@标记 - AssetBudnel就可以标记或取消标记

About

在“ET框架”的基础上增加一些:常用工具、进一步封装重复代码、编写常用的Component

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 91.5%
  • HTML 4.3%
  • Smalltalk 3.9%
  • ShaderLab 0.2%
  • HLSL 0.1%
  • Batchfile 0.0%