Unreal Development Kit way to explore https:https://cdn.v2ex.com/navatar/d07e/70ef/458_normal.png?m=1426100856 https:https://cdn.v2ex.com/navatar/d07e/70ef/458_large.png?m=1426100856 2025-10-11T02:49:15Z Copyright © 2010-2018, V2EX NoesisGUI 邂逅 AI:基于 TypeScript 的 MVVM 架构与自动化代码生成 tag:www.v2ex.com,2025-10-11:/t/1164390 2025-10-11T02:50:15Z 2025-10-11T02:49:15Z iceAD member/iceAD

NoesisDemo - TypeScript + AI 赋能的 MVVM 开发方案

🔗 项目仓库: https://github.com/No-needto-recall/NoesisDemo


🎯 这个项目是做什么的?

这是一个 Unreal Engine 5.4 的示例项目,旨在演示:

核心理念:XAML 和 ViewModel 都是代码 → AI 完全理解 → 自动生成和修改 → 开发效率 dramatically improved


📑 目录


✨ 核心特性

完美复刻官方示例:成功使用 TypeScript 复刻了 NoesisGUI 官方的 Buttons 和 QuestLog 示例。

🚀 TypeScript 代码化 ViewModel:使用 PuerTS 的 uclass_extends 直接继承 UE 类并自动生成蓝图。

🔧 动态 DataContext 设置:自定义 UNoesisViewModeInstance,调整 DataContext 的赋值时机。

🤖 AI 友好:XAML 和 ViewModel 均为代码,易于 AI 理解和生成。

📦 版本控制友好:完全基于代码,告别蓝图合并的噩梦。

属性自动通知NoesisProxy 自动处理 PropertyChanged,并原生支持 TArrayTMap


🤖 AI 辅助开发 - 近乎自动化的 UI 代码生成

为什么这套方案对 AI 友好?

本方案采用完全代码化的工作流:

XAML 文件是纯文本格式 - AI 可以轻松理解和生成。

ViewModel 使用 TypeScript 编写 - 这是 AI 的强项。

数据绑定逻辑清晰可读 - AI 能够进行推理。

这使得本项目与 AI 辅助开发工具(如 Claude Code, GitHub Copilot, Cursor 等)完全兼容。

AI 能做什么?

自动生成 ViewModel 代码

只需描述你的需求,AI 就能生成完整的 ViewModel:

// 输入:"创建一个设置界面,包含音量和画质选项" // AI 自动生成: class TS_SettingsViewMode extends UE.Object { @uproperty(uproperty.EditAnywhere, uproperty.BlueprintReadWrite) Volume: number = 80; @uproperty(uproperty.EditAnywhere, uproperty.BlueprintReadWrite) Quality: string = "High"; @ufunction(ufunction.BlueprintCallable) ApplySettings(): void { console.log(`Applying: Volume=${this.Volume}, Quality=${this.Quality}`); } } 

自动修改和重构代码

告诉 AI “增加一个音效开关” → 自动修改 TypeScript 和 XAML 。 AI 能理解数据绑定逻辑,自动添加相应的属性和命令。 AI 还能自动处理复杂的集合绑定 (TArray, TMap)。

快速生成完整界面

“创建一个包含用户列表的界面” → AI 自动生成 XAML + ViewModel 。 “增加搜索和筛选功能” → AI 自动补全相关代码。 “实现拖拽排序” → AI 生成完整的事件处理逻辑。

使用 Claude Code 等 AI 工具,只需描述 UI 需求和交互逻辑,AI 就能自动生成 XAML 和 ViewModel 代码。 开发者只需审查和微调,极大地提升了开发效率,实现了近乎自动化的 UI 代码开发体验。

"再也不用手动拉蓝图连线了——AI 直接生成代码!" - 某开发者


🏗️ 技术架构亮点

PuerTS uclass_extends - 自动生成蓝图类

通过 TypeScript 装饰器定义属性和方法,PuerTS 会自动生成对应的蓝图类:

class TS_ButtonsViewMode extends UE.Object { static Path(): string { return "/Game/BluePrints/TypeScript/ViewMode/Buttons/TS_ButtonsViewMode_C"; } @uproperty(uproperty.EditAnywhere, uproperty.BlueprintReadWrite) TestValue: string = "Hello NoesisGUI"; @ufunction(ufunction.BlueprintCallable) StartCommand(): void { console.log("Button clicked!"); } } 

UNoesisViewModeInstance - 解决 DataContext 限制

自定义的 UNoesisInstance 子类,在 XamlLoaded 回调中自动设置 DataContext,解决了官方类不支持动态设置的问题。

NoesisProxy - 属性自动通知

利用 Javascript Proxy API 自动拦截属性修改,并触发 NoesisGUI 的更新:

const proxy = createNoesisProxy<TS_ButtonsViewMode>(viewMode); // 任何属性修改都会自动通知 NoesisGUI proxy.TestValue = "New Value"; // 支持 TArray 自动通知 proxy.items.Add(newItem); // 自动调用 NotifyArrayPostAdd proxy.items.RemoveAt(0); // 自动调用 NotifyArrayPreRemove + PostRemove // 支持 TMap 自动通知 proxy.map.Add("key", value); // 自动调用 NotifyMapPostAdd 

数据绑定流程:

TypeScript 类定义 (@uproperty, @ufunction) ↓ PuerTS 生成蓝图类 ↓ TypeScript 创建实例 (UE.NewObject) ↓ 绑定到 UNoesisViewModeInstance (PendingDataContext) ↓ XAML 加载完成 (XamlLoaded 回调) ↓ 自动设置 DataContext ↓ 数据绑定生效 (XAML Binding → ViewModel 属性) ↓ 属性更新 (NoesisProxy → NotifyPropertyChanged → UI 刷新) 

🎨 完美复刻官方示例

Buttons 示例

演示了基础的 MVVM 数据绑定:

QuestLog 示例

演示了复杂的数据绑定:

// QuestLog ViewModel 示例 class TS_QuestLogViewMode extends UE.Object { @uproperty(uproperty.EditAnywhere, uproperty.BlueprintReadWrite) Quests: UE.TArray<TS_Quest>; @ufunction(ufunction.BlueprintCallable) AddQuest(Title: string, Image: UE.Texture2D, ...): TS_Quest { const Quest = UE.NewObject(TS_Quest); Quest.Initialize(Title, Image, ...); // 使用 Proxy 自动触发 TArray 更新通知 let Proxy = createNoesisProxy<TS_QuestLogViewMode>(this); Proxy.Quests.Add(Quest); return Quest; } } 

🚀 快速开始

环境要求:

获取项目:

git clone https://github.com/No-needto-recall/NoesisDemo.git 

⚠️ 重要提示:

详细的安装步骤、配置说明和使用教程,请访问项目的 GitHub 仓库查看完整文档。


📚 相关链接


💡 总结

这个项目为 Unreal Engine 中的 NoesisGUI 开发提供了一种全新的思路:

使用 TypeScript 替代蓝图编写 ViewModel

完全代码化,版本控制友好,无蓝图合并冲突

全面兼容 AI 辅助开发工具,实现近乎自动化的 UI 代码生成

复刻官方示例,证明了方案的完整性和可行性

自动属性通知,支持复杂的 TArrayTMap 绑定

非常适合:

如果这个项目对你有帮助,请给它一个 Star ⭐! 欢迎提交 PR 来复刻更多官方 UI 示例,一起完善这个方案! 🎉

Made with ❤️ for the NoesisGUI Community

]]> 想学习 Unreal 5 ,求推荐比较好的视频教程 tag:www.v2ex.com,2024-09-12:/t/1072382 2024-09-12T09:33:53Z 2024-09-12T13:04:31Z MrDarnell member/MrDarnell 因为本人英语一般,所以最好是中文教程,如果有 youtube 上的英文教程也可以接受,感谢各位大佬

]]>
UE5 项目太大,用什么版本控制系统? tag:www.v2ex.com,2024-08-29:/t/1068797 2024-08-29T09:12:45Z 2024-08-29T09:39:12Z sbldehanhan member/sbldehanhan 想问下目前国产系统+国产显卡对虚幻的支持怎么样了,或者说是否有支持的计划 tag:www.v2ex.com,2024-01-11:/t/1007809 2024-01-11T06:38:25Z 2024-01-11T10:41:25Z hash member/hash 目前有一些程序是使用虚幻开发的,想知道虚幻的程序过信创的可能性(只是技术调研不考虑"软过"
最近的一个消息是摩尔线程在 DX11 下有了对虚幻的基本支持,但是也只是支持了部分特性.
想知道是否有国产硬件+国产操作系统(UOS 麒麟等等)有着方面的计划 ]]>
寻 unity 或者 ue 技术团队,研发新款游戏 tag:www.v2ex.com,2023-09-20:/t/975504 2023-09-20T04:39:20Z 2023-09-20T04:39:20Z ilinxiao member/ilinxiao 一个新的 UE5 Tech Demo tag:www.v2ex.com,2021-12-09:/t/821128 2021-12-09T07:21:08Z 2021-12-09T07:21:08Z Livid member/Livid https://www.unrealengine.com/en-US/wakeup

现在可以在 PS5 和 Xbox Series X/S 上预载。2021 年 12 月 9 日解锁。 ]]>
有 UE4 大神没,想问个问题。 tag:www.v2ex.com,2021-09-05:/t/799978 2021-09-05T08:41:11Z 2021-09-05T19:11:52Z jtacm member/jtacm 现在有这样一个需求,在 UE4 中有一个人脸,想通过程序代码获取人脸信息,然后调用 opencv/pytorch 模型,为此人脸添加滤镜。此滤镜为普通 2D 滤镜,即输入是 2D 图片,输出也是 2D 图片,比如我们手机自拍里常见的美白滤镜,眼镜变大滤镜等。

现在此滤镜已经 ready,使用的是 opencv/pytorch,用 python 编写(当然也可以改为 c++),请问通过怎么样一种方式集成到 UE4 中去?由于滤镜是 2D 滤镜,所以仅要求贴完滤镜后的的人脸只对某一个特定 camera 投影 OK 就行。

想询问下实现思路,感激不尽。 请大神们可以给点建议,即使不是 end to end solution 也行。

]]>
有没有一起学 UE 的 tag:www.v2ex.com,2021-07-28:/t/792222 2021-07-28T03:11:56Z 2021-07-27T03:10:56Z hicoldcat member/hicoldcat 小白学 UE,有没有小伙伴也在学的,可以一起交流交流,国内社区还是挺薄弱的,求推荐一些好的交流聚集地。。。

]]>
UE5 发布了 tag:www.v2ex.com,2021-05-27:/t/779648 2021-05-27T11:51:46Z 2021-05-27T11:51:46Z Rico member/Rico https://www.unrealengine.com/zh-CN/blog/unreal-engine-5-is-now-available-in-early-access
不说了,换显卡去了 ]]>
小白入门 unreal,大佬们有微信交流群吗?拉一下🙏 tag:www.v2ex.com,2021-01-13:/t/744487 2021-01-13T03:28:30Z 2021-01-13T03:27:30Z lovedec member/lovedec 找 UE4 技术美术灯光渲染,定序器,过场动画 tag:www.v2ex.com,2020-05-08:/t/669754 2020-05-08T10:52:49Z 2020-05-08T11:02:37Z chaodada member/chaodada 兼职,薪资可谈
大佬们有意可以留言评论,或者有朋友推荐也行😂😂 ]]>
ORIGIN ZERO EP2 tag:www.v2ex.com,2020-03-18:/t/653794 2020-03-18T03:06:51Z 2020-06-08T04:23:11Z Livid member/Livid
]]>
Attack from Outer Space tag:www.v2ex.com,2019-08-08:/t/590233 2019-08-08T09:25:14Z 2019-08-08T09:30:38Z Livid member/Livid


YouTube 视频:


原发布地址:

https://forums.unrealengine.com/community/released-projects/1624825-attack-from-outer-space-playable-dxr-ray-tracing-tech-demo

Dropbox 下载链接:

https://www.dropbox.com/s/svwn2zqf1tmgari/Attack_from_Outer_Space_1.0.1.zip?dl=0 ]]>
一个 UE4 的光线追踪效果演示 tag:www.v2ex.com,2019-05-01:/t/560340 2019-05-01T05:29:32Z 2019-05-01T08:31:30Z Livid member/Livid ]]> UE4 的超强演示项目 Infiltrator 现在可以免费下载了 tag:www.v2ex.com,2015-09-17:/t/221615 2015-09-17T15:41:11Z 2015-09-17T16:41:11Z Livid member/Livid https://www.unrealengine.com/blog/infiltrator-released-for-free

]]>
Infinity Blade 的大量素材现在可以免费下载了 tag:www.v2ex.com,2015-09-13:/t/220386 2015-09-13T08:41:10Z 2015-09-13T08:41:10Z Livid member/Livid https://www.unrealengine.com/new-content ]]> 用 UE4 做的莎木游戏场景 tag:www.v2ex.com,2015-07-22:/t/207665 2015-07-22T15:24:15Z 2015-07-22T15:24:15Z Livid member/Livid ]]> V2EX 有人关注 UE4 么? tag:www.v2ex.com,2015-03-11:/t/176248 2015-03-11T19:08:21Z 2015-03-12T13:54:43Z Livid member/Livid Unreal Engine 4 免费了, If You Love Something, Set It Free. tag:www.v2ex.com,2015-03-02:/t/174067 2015-03-02T18:03:05Z 2015-03-11T20:44:06Z wdhwg001 member/wdhwg001 pic

刚刚收到了邮件,得知UE4已经永久免费了。

具体参见官网: https://www.unrealengine.com/what-is-unreal-engine-4

附邮件原文自翻,直译勿怪:

今年对于Unreal Engine 4是特殊的一年。我们成长了很多,我们学习了很多,因为有大家的反馈和协助,使得UE4引擎变得从未有过的易用和强大。现在,我们将Unreal Engine 4免费的提供给世界各地的开发者。

在这之前,我们想要真诚的向每一位陪伴我们至今的人表示感谢。我们为您的活力,热情和使用UE4所做的惊人的一切而感动。因为有您,我们将会工作的更加努力,因此,当我们携手的时候,我们均可以创造我们期待着的,想要塑造的,我们钟爱着的未来。

如果您在1月30日或之后订阅了UE4,您将会按比例获得您最后一个月的退款。您将可以继续免费获得未来全部的更新。

同时,由于您曾是我们的付费订阅者,我们将额外赠予您$30美元,您将可以在Marketplace商店中消费,或保存以备将来使用。

PS: 5%分成的规则依旧不变,但是游戏开发,虚拟现实,教育,建筑和电影领域的使用是完全免费的。

]]>
Unreal Engine 4 Tech Demo Huangshan Mountains tag:www.v2ex.com,2015-02-04:/t/168288 2015-02-04T12:06:20Z 2015-02-05T03:20:59Z Livid member/Livid ]]> UE4 Learn Tab tag:www.v2ex.com,2014-11-07:/t/144831 2014-11-07T15:23:53Z 2014-11-07T18:14:20Z Livid member/Livid https://www.unrealengine.com/blog/learn-tab ]]> UE4 的新抗锯齿算法 Temporal AA tag:www.v2ex.com,2014-08-21:/t/129130 2014-08-21T05:47:08Z 2014-08-21T10:12:34Z Livid member/Livid http://www.dsogaming.com/news/epic-games-shows-incredible-new-anti-aliasing-technique-screenshots-video-comparison/

]]>
UE4 Demos for Linux tag:www.v2ex.com,2014-07-07:/t/121392 2014-07-07T10:20:52Z 2014-07-07T10:20:52Z Livid member/Livid http://ubuntugamingproject.blogspot.it/2014/07/unreal-engine-4-linux-demos.html ]]> 下一代的 Unreal Tournament tag:www.v2ex.com,2014-05-09:/t/111729 2014-05-09T02:17:14Z 2014-05-09T03:17:14Z Livid member/Livid https://www.unrealengine.com/blog/the-future-of-unreal-tournament-begins-today

- 开发进度将会同步到 GitHub,完全公开
- 将会是一款彻底的免费游戏 ]]>
UE4 在 GDC 2014 上的工具演示 tag:www.v2ex.com,2014-03-24:/t/105716 2014-03-24T15:43:27Z 2014-03-24T15:43:27Z Livid member/Livid http://www.gamespot.com/videos/unreal-engine-4-tools-demonstration-gdc-2014/2300-6417896/ ]]> ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86