GameDesign 板


LINE

部落格版本: http://dorgon.horizon-studio.net/archives/1152 欢迎对UE4有兴趣的夥伴们来到我们位於discord的讨论群一起讨论: https://discord.gg/FanK6yc 欢迎讨论与指教 : ) ===================================== https://i2.wp.com/dorgon.horizon-studio.net/wp-content/uploads/2017/03/image-1.png
在用Editor加入程式码的时候,会发现上面有Public跟Private二个目录选项,见上图。到底它们的用途是什麽?对於熟悉C++的人可能已经猜到原因:为了让Module「介面」跟「实作」的部份有着更明确的区分,我们将所有的.h档都放在Public;.cpp都放在Private。──大部份的情况是可以适用这个规则。只是这个目录架构并不是绝对,我们当然可以在Private中放.h档或在Public中放.cpp,甚至创立自己的目录结构,这在编译程式上并不会有任何的问题。 只是并不是所有的档案都适合放在Public中,要知道,UE4是用Module的概念来组成各个系统的功能。为了Module的维护性与使用端的简便,我们必须要想办法将实作的细节从使用端隐藏起来。 将档案放在Public中所代表的,就是任何人都能够随意的去include这个类别并使用里面的方法。这所造成的结果,会让我们没办法轻易的修改程式,例如更改类别中某个方法的名字。随意修改名子的後果,会造成继承该类别的物件无法编译,又若是所依赖的专案使用大量的Blueprint继承该类别,可想而知这些档案就会全部损坏而无法回复。 其实这边所提的就只是物件导向中『封装』的概念,只是这里从是档案目录结构的面向来思考。要怎麽设计Module里面的目录组成方式,就端看这个Module的目的与设计者的巧思。理论上放在Public目录下的类别必须要具有稳定性,不管是类别的名字还是所开放方法的参数。 当然,若是我们所实作的是末端的Game Module,没有其他的Module参照到我们的话,不管怎麽组织目录都不会有太大的影响。 另外我们在引擎中还会看到许多Module建立了一个叫Classes的资料夹,如Figure 28。 https://i2.wp.com/dorgon.horizon-studio.net/wp-content/uploads/2017/03/image-2.png
Figure 28 Engine Module定义了Classes、Private、跟Public三个目录结构。 Public跟Private我们可以理解用途,但为什麽多了一个Classes?根据官方的回答,在以前所有的UObject都只能放在Classes这个目录下面。现在当然没有这个限制,为了历史的兼容,这个目录也跟Public一样自动被设定进include搜寻路径之中。 本系列文章为个人原创,未经授权,谢绝转载 -- Sent from my Windows --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 219.70.222.43
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1490518484.A.EF9.html ※ 编辑: dorgonman (219.70.222.43), 03/26/2017 17:02:32
1F:推 coolrobin: 推 03/26 19:37
2F:推 cowbaying: 看起来PUBLIC的东西比较像介面 03/27 00:58
3F:→ cowbaying: 或是ABSTRACT这类的东西 03/27 00:58
4F:推 Frostx: 推 03/27 08:59
5F:推 windkey: 感谢分享!! 03/27 22:10







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP