Giter Site home page Giter Site logo

Comments (5)

yimengfan avatar yimengfan commented on May 22, 2024 1

1.关于生命周期+=问题:事实上,框架层只希望给Game层一个接口,用以桥接生命周期,而Game层无论分怎么分发则是具体业务的事情。所以只给了一个Action
2.关于Update的问题:项目中我们是已经杜绝使用Update的,时序逻辑可以用协程进行模拟,但是除了时序之外使用update 99% 的业务是不合理的,而且update本质上是“针对状态编程”(这个就不细聊了),所以早期预留的‘Update 再某一个版本后不再执行,但是接口并没有取消
3.TransformPath: 顾名思义,是给Tranform做一些服务 ,而更本质上的问题是,我们开发过程中,保存的是Transform,Tranform是场景节点树,这种是一些设计层面的哲学。业务层保存Gameobject 个人觉得不是特别合理
4.关于Button,这类UI组件。我们公司的项目是重写了所有的UI组件,比如Ibutton这种。最早是因为Unity的Button在三星 锤子一些机型,点击触摸事件有问题。 也正因此一些通用事件,我们只需要去Ibutton扩展一下就可以了。也推荐你这么做
5.关于音效 个人觉得很简单的 东西,就没放出来了
6.关于Runtime下所有prefab, 事实上Attribute是给class语法本身所导致的信息不足,给与一定的补充。而在Runtime下获取所有,框架层就不知道 这个window类和哪个prefab进行绑定,但是也可以做一些协定比方说类名和prefab名必须一致。但是我比较偏向于使用者指定prefab
7.子窗口和父窗口没区别的,父窗口做的一切,子窗口都可以做
8.windata这个是没办法避免的,这个做的是定向消息,比方做是A向B发出消息这种,逻辑层向UI层发消息这种,而消息中心可以用DataListener解决

from bdframework.core.

yimengfan avatar yimengfan commented on May 22, 2024

你好,因为平时太忙,精力有限所以没有建立群?有任何问题都可以提issues,也可以发邮件给我

from bdframework.core.

tiantiands avatar tiantiands commented on May 22, 2024

那我就在这里提一下我碰到的bug或者没完成的部分吧;
1.
IGameStart update没有效果 检查后发现
BDLauncher.OnUpdate = gs.Update;// =改成+=
BDLauncher.OnLateUpdate = gs.LateUpdate;// =改成+=

BeginNavBack BeginNavForward 怎么操作都报错 我稍微修改了下:

    /// <summary>
    /// ScreenViewLayer 向前导航
    /// </summary>
    /// <param name="name">IScreenView名称</param>
    /// <param name="onLoad">异常回调</param>

    public void BeginNavForward(string name)
    {
        int n = navViews.IndexOf(currentView);
        if (n < 0 || n >= navViews.Count)
        {
            BDebug.LogError("别闹,前方没有view");
            return;
        }
        IScreenView view = navViews[n + 1];
        view.BeginInit();
        if (currentView != null)
        {
            currentView.BeginExit();
        }
        //
        currentView = view;
    }


    /// <summary>
    /// ScreenViewLayer 向后导航
    /// </summary>
    /// <param name="onLoad">异常回调</param>
    public void BeginNavBack()
    {

        int n = navViews.IndexOf(currentView);
        if (n <= 0)
        {
            BDebug.LogError("别闹,前方没有view");
            return;
        }

        IScreenView view = navViews[n - 1];
        
        view.BeginInit();
        if (currentView != null)
        {
            currentView.BeginExit();
        }
        //
        currentView = view;         
    }

IScreenView public override void Update() 没有效果 检查后发现:
ScreenViewManager的Update FixedUpdate没有完成代码 window无法update
IMgr 也没有完成Onupdate事件
首先初始化IMgr事件
[email protected]

    //管理器初始化
    foreach (var m in mgrs)
    {
        m.Init();
        BDLauncher.OnUpdate += m.Update;  //增加的
    }

然后修改ScreenViewManager Update:

    public override void Update()
    {
        base.Update();
        foreach (var item in screenViewList)
        {
            item.Update(Time.time);
        }

        foreach (var item in screenViewList)
        {
            item.FixedUpdate(Time.time);
        }
    }

4.TransformPath 无法获取GameObject类型 只能获取UI,(有时候UI需要建个空物体做父类归档,操作父类可以直接执行整体UI的变化, 当然可以通过初始化时find获取也行)

5.TransformPath 成功获取到某个组件后 能不能加个触发便于做统一设置
比如我想让所有的button组件 或者同名的button组件.添加一个点击播放音效等

6.没有音效管理器
7.能否在启动的时候自动获取Runtime下的所有prefab 这样初始化窗体的时候只需要名字不需要路径了
8.代码上看子窗体可以直接从prefab初始化 但是demo代码没有这样做 不知道是不是可以.
9. windowdata 初始化和赋值都挺麻烦的 能不能直接sendmessage(msgid, data)这样比较方便呢
消息id跟窗口无关只要注册了这个消息的窗口都可以触发

from bdframework.core.

tiantiands avatar tiantiands commented on May 22, 2024

好的 多谢大佬这么耐心的解答我的所有疑惑,刚接触这个框架很多东西还不了解,个人愚见 莫怪

from bdframework.core.

yimengfan avatar yimengfan commented on May 22, 2024

没事,教学相长

from bdframework.core.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.