论坛首页 安全编程开发区 阅读主题

[原创]unreal engine逆向学习之反射设计(一)

173 浏览 11 回复
#1 楼主 2026-06-01 21:08:46
需求问题1: 假如我们用C语言面向过程的写法,实现一个简单的控制台贪吃蛇游戏。我们再想做一个3D版坦克大战游戏会发现之前写的代码基本无法复用,而且我们如果想实现物理碰撞效果,还需要手搓一个物理引擎。那么我们把制作游戏需要的功能集成到一个引擎中,例如渲染引擎、物理引擎、音频引擎、人工智能系统、网络模块等能大大减少游戏开发效率和门槛。
需求问题2:在玩家出生点生成10个怪物如果我们想修改成创建10个MonsterB显然是十分麻烦的,要是能通过字符串的形式去new对象就好了,这样我们就能动态的创建不同种类的怪物。
反射机制:
反射机制主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。在运行时动态加载类、构造对象并调用方法,允许程序在运行时获取自身信息并修改行为。其核心在于程序能够通过内置的API在运行时查询类的结构(如方法、属性等),并动态执行操作。定义基类实现反射的基本方法,所有参与反射的类继承基类自定义类继承基类
创建对象这样可以实现用字符串去new一个对应的对象,但是假如我们要新建一个类或者修改一个类,那么这个FactoryCreat都要进行修改。十分不利于维护。所以我们需要换一个方式来处理。1.工厂内部需要有个映射,也就是一个字符串对应一个类new的方法。 2.工厂给出一个接口,我们传入字符串,那么返回这个字符串对应的方法new出来的对象指针。 3.我们新建的类,如果需要支持反射机制,那么这个类需要自动将自己的new方法和名字注册到工厂的映射中。建立一个全局哈希表来存储对象名
这样我们自定义的类只需继承object基类,就能参与到反射中,可以使用动态字符串创建对象。当然这只是一个基本概念与真正商业上反射设计还差很远。


回复或点赞可查看完整内容

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-287862.htm
#2 2026-06-01 21:08:46
感谢你的贡献,论坛因你而更加精彩!
#3 2026-06-01 21:08:46
学习一下
#4 2026-06-01 21:08:46
学习一下
#5 2026-06-01 21:08:46
感谢分享
#6 2026-06-01 21:08:46
;让他永远一如
#7 2026-06-01 21:08:46
学习一下感谢分享
#8 2026-06-01 21:08:46
感谢分享
#9 2026-06-01 21:08:46
感谢分享
#10 2026-06-01 21:08:46
学习一下
#11 2026-06-01 21:08:46
感谢分享
#12 2026-06-01 21:08:46
谢谢你的细致分析,受益匪浅!

请登录后参与讨论

立即登录 注册账号