从零开始带你开发橙光游戏AVG框架【55课数 收费】
从零开始带你开发橙光游戏AVG框架 unity教程【16课数 免费】
QuickSheet使用
可能是我换了untiy版本的原因
Manual sovle
导了一个文件夹,有自己的库,也包含GameFramework、UnityGameFramework,暂时先删掉GameFramework、UnityGameFramework就完事了
VS(Visual Studio)更改文件编码
没改utf-8之前修改过,再改成utf-8没用。
再从压缩包拉出来这些乱码的来覆盖掉,也一样没用
就这结构
GameStart
UIMgr等Mgr
Canvas
Panel
:MonoBehaviour 作为游戏入口,用来控制脚本顺序,存储脚本。
QFramework 是我跟着 QFramework第三版本 视频做的部分代码,其中包含 事件注册,关键词是 Register,UnRegister,Event,Command
。。。。
点击两个按钮会调用在 确定面板上 的 播放不同音效 的方法.
用 QFramework 可以跑通
。。。。
调用顺序
GameStart
EnterCanvas
EnterPanel
EnterBtn
其中EnterPanel是下文的父节点,EnterBtn是下文的子节点
支持中文,先试用下
方便脚本名,标签名,节点名,三者对应
类似 AVG/MainCanvas/LoadCGPoltPanel/BG/CG鉴赏/ObjectPanel/PolePre/PoltBG/Polt
位置是 AVG/MainCanvas/LoadCGPlotPanel
AudioMgr.cs单例,并且挂到GameStart的子节点上,并且对相关引用进行调整
unity ‘SpriteRenderer’ does not contain a definition for ‘IsUsingDeformableBuffer’ and no accessible extension method ‘IsUsingDeformableBuffer’ accepting a first argument of type ‘SpriteRenderer’ could be found (are you missing a using
Unity spriteRenderer error what i need to do?
我是2020.3.23fc1,尝试了2没用,尝试了1,有用,没报错了,但是 2D Sprite 估计用到,后面报错再安装
01 将所有 AudioSource 放到 AudioMgr 的子节点上,并且改名了3个。
02 后面有移动了 节点 AVG 上的 AudioSource 到 AudioMgr 的子节点 AVGSrc 上
03 类似AVG/MainCanvas/LoadCGPlotPanel/BG/音乐赏析/BGMusic,也有一个AudioSource
暂时不清楚为什么用那么多AudioSource,放内存应该用字典。(需要同时放?)
原版放在 SettingPanel 上
也就是做好 SettingPanel 和 AudioMgr 的关系
就是将相关代码 放 AudioMgr,让 SettingPanel 调用(Slider嘛)
前面的 EnterPanel 用到了 这两个 AudioSource ,也放到 AudioMgr 上,通过访问 AudioMgr 来调用
改名为 EnterBtnSrc, DownBtnSrc,省下两个 Tag
所以看了
框架搭建 决定版:理论强化篇(第三季) 53课数
自顶向下用方法
自底向上用委托、事件
委托要注册,注销。
存在 回调地狱
要声明委托
缺点是,多个子节点都需要访问父节点,每个子节点都要声明委托,麻烦。
解除限制,使用自有,需要增加小逻辑,是和模块之间的大颗粒度交互,不合适对象之间的小颗粒度交互
带参数
撤销
Reference has errors ‘Google.GData.Client’.
不明,莫名其妙的坏了,好了
原本是都在根目录
QFramework
QFrameworkData
改成在Plugins/QFramework就报错了,而且会一直在根目录生成QFrameworkData
QFramework
QFrameworkData
打算拆出来放在一个文件夹AnimationEvent下
TLS Allocator ALLOC_TEMP_THREAD, underlying allocator ALLOC_TEMP_THREAD has unfreed allocations, size 40
有些线程没释放
[Report All【没用】]](https://blog.csdn.net/wenshuai537/article/details/123558838)
Assembly ‘Assets/QuickSheet/GDataPlugin/Editor/Google/Google.GData.Extensions.dll’ will not be loaded due to errors:
Reference has errors ‘Google.GData.Client’.
迷,重启电脑后没了
01 我改了Component拓展方法中 using GameObject = UnityEngine.GameObject;
02 整理时将 QuickSheet 移动到 Plugins,报错;又移动出来,报找不到 meta的 错,重启Unity后就好了
03 重启Unity后,不被CSharp项目识别就好了
将所有动画事件提取出来,以 节点名_动画名 的方式命名脚本,统一放到一个文件夹
如图所示
01 动画 MainAnim 有两个 事件(也就是方法)
02 这两个方法放在一个脚本里,脚本的命名是 要挂的节点名_动画名
03 将该 动画事件脚本 挂载节点上
原版是将所有的 动画事件都放在一个脚本 AnimManager。动画事件又是 0引用 ,所以难管理。
01 动画事件调用某些属性
02 属性在Init()方法中赋值
但 01 比 02 快,导致属性还没赋值就被调用
所以先这样,这是跟Siki学院的Ocean老师学RealFrame时的。就是 等人再干活
Crt 是协程的英文Coroutine,我选的 简写
动画认名字【改过变黄,识别不了】(这点不好,应该认uuid)
点击 开始游戏 出现的, 照理说这时候什么都初始化好了
F5了,Instance为空
。。。。
MonoBehaviour不能有用new的方式
所以用以下
将大量的SetActive()改成Show()和Hide()
死锁
猜,断点的地方是用到了映射(自己的一个能得出命名空间、类名、方法名的方法)
将能沉下到各个 Manager 、Canvas、 Panel 的方法沉下去
比如一个方法的参数都是 AudioMgr 中的,直接把这个方法提到 AudioMgr ,再去间接调用
C# private不显示有一会,后面又显示了
原版是在AVGMainAnim.cs
借点命名都是,如果发生节点丢失很难区分。(虽然有注释)
重启Untiy,猜是编译不及时,好像没转圈圈
点击悬停音效
原版是直接拖拽节点,我改单例,前面是用无参的事件注册,学会有参在一起改
同时加到下面4个按钮上
在子节点中找命名为 “ResetBtn” 的按钮, 添加 ResetVolume 的事件, 最后将按钮返回
子脚本有ScreenSettings 。语言设置没做,屏幕设置好像没有效果。
SettingsPanel在MainCanvas下
GamePanel在PlotCanvas下
SettingsPanel在Update中调用GamePanel,也就是PlotCanvas的初始化要在MainCanvas之前(调一下顺序)
挂在这里,被 SettingsPanel 调用和初始化
MPC,Music(音乐) Plot(剧情) CG(计算机动画)
。。。。。。
1 总的tab,有MPC三种
2 散的tab,MPC各自的所有内容
3 MPC在面板上显示的内容
。。。。。。
原版只有 TabGround 和 TabBtn 两个脚本,就1,2都是使用同样的TabGround,所以这部分的初始化区别分开,因为里面的PanelGoLst,面板位置关系不一样(不是都能在子节点找到,拖拽的话丢失麻烦)
挂在剧情的父节点或以上,我挂的是MPCPanel节点
挂在这两个节点上
PanelGoLst.Add( gameObject.FindChildDeep(“剧情回放”));
PanelGoLst.Add( gameObject.FindChildDeep(“CG鉴赏”));
挂在所有的按钮上。(1,2,3,4这样的选项卡)
删掉原版的TabGround,用TabGroundSL:TabGroundSL ,和SaveLoadPanel ,都是挂在SaveLoadPanel 节点上
01 运行原版的,先是 黑屏Canvas 闪一下(显示又隐藏)。MainCanvas不变,MainPanel(主菜单界面)隐藏。然后显示 GamePanel(StartAVG)
02 黑屏Canvas 的滑动,有动画事件,单独提取出来(没引用一个个看动画器看麻烦了),放在BlackCanvas_BlackCanvas (所在的节点名_动画名)
虽然不影响运行
开始游戏,仍然在主菜单,并且PlotCanvas被隐藏
原版是HideMainBtn,我调用HideMainPanel才能
PlotCanvas初始化不Hide
Button之类
Button
:Selectable
:UIBehaviour
:MonoBehaviour
:Behaviour // Behaviours are Components that can be enabled or disabled.
Resources/Role/2 不会
Resources/Role/3 的数据 sprite 经常在运行游戏后丢失为 none(执行一次选项按钮后)
这个是之前对话的记录面板,在GamePanel时滚动滑轮触发。
但是问题时好像不是随时记录的
里面有说明文档 Assets/QuickSheet/Doc/Unity-Quicksheet.pdf
01 新建(这两个连锁的)
Excel Settings
Excel Machine
02 新建表格,Excel Machine 中加入表格,确定 Sheet,属性类型。配置Editor,Runtime文件夹路径(不包括Assets)。然后Generate。(我这里报错了)
03 解决小bug后,右键reimport
手动改回来 //
就是节点间的访问
事件注册的使用
评论留言