找回密码
 立即注册
查看: 1354|回复: 20

UE4 开发从入门到入土

[复制链接]
发表于 2021-11-13 05:32 | 显示全部楼层 |阅读模式
UE4 开发从入门到入土
发表于 2021-11-13 05:33 | 显示全部楼层
这位不是上次那个顶什么99行反射核心的那位大哥吗?应该用那个99行反射替换一下UE的反射,是吧?按你的原话你就可以don’t pay what you don’t want,因为我感觉你好像want nothing?
发表于 2021-11-13 05:36 | 显示全部楼层
可以用VSCode+EmmyLua插件,然后建个工作区把Content/Script目录和UnLua\Intermediate\IntelliSense目录加进来。代码提示没问题,断点可以断但是查看值还有点问题
发表于 2021-11-13 05:46 | 显示全部楼层
先点赞,再评论。
如作者所述,UE4确实有各种问题,但是很多东西真的自己深入去尝试实现的时候才发现,UE4的方案可能还真是最优解。

举几个例子:
1 作者吐槽“反射采用保守式的标记,必须手写 UPROPERTY 而不是 UNOREFLECTION”。如果自己去实现C++的反射,怎么才能像UE4一样,一个方案支持枚举,结构体,类,动态类型发射,C++的命名空间,同时兼顾GC这么多特性呢?目前好像UE4这个方案是最优解了。如果作者有更强更具美感的方案,求告知感激不尽(因为我最近也在改进我们的反射方案)。
2 作者吐槽"UE4 的 Undo/Redo 栈是全局的而不是 per document 的",这个不敢苟同。因为UE4是基于包的对象管理,一个包里的对象可以引用不同包里的对象,修改对象的时候可能会影响好几包,所以不是per document的(per package)。UE4的基于包的对象管理不好吗?我觉得这个理念是很先进的。

当然作者也有很多吐槽是吐在了点上,比如:
1 “ABP 动画是硬引用,和骨骼和动画绑定,无法开放成参数(类似于 Material 和 Material Instance 那种参数),导致状态机复用困难”,这个确实比Unity的弱,应该像材质一样有模板和实例的概念。

UE4有很多优点和先进理念,也有很多缺点。我个人觉得UE4的最大问题是模块之间的耦合太重了,应该尽量提成纯虚接口来,减少模块之间的耦合。

文章是好文章,给作者点赞。
发表于 2021-11-13 05:49 | 显示全部楼层
老实说UE的Shader排列组合容易爆炸我还真没想到什么好方法,这个问题恐怕大部分引擎在开发的时候都会遇到,引擎本身渲染特性多,材质各种分支加上Instance使用不合理很容易失控。目前我只看到DOOM是改成用Uniform branch的方式避免大量的shader枚举组合(本质上也是枚举,只不过都在一个巨大的UberShader里,他们游戏的shader数目可以降到100多)。我有想过如果GPU能支持真正的shader模块动态链接的话情况会得到改善,这样材质和公用的shading模块可以分开独立编译而不是MxN的耦合导致shader数量爆炸。
发表于 2021-11-13 05:57 | 显示全部楼层
非常有用,哈哈。看了完全不想用UE4
发表于 2021-11-13 05:58 | 显示全部楼层
资 源 共 产
发表于 2021-11-13 05:59 | 显示全部楼层
双 发 齐 射
发表于 2021-11-13 06:00 | 显示全部楼层
害怕
发表于 2021-11-13 06:07 | 显示全部楼层
毁 灭 战 士
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-12-23 16:11 , Processed in 0.106567 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表