网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月08日漏签0天
unity3d吧 关注:116,859贴子:562,145
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 3 4 下一页 尾页
  • 82回复贴,共4页
  • ,跳到 页  
<<返回unity3d吧
>0< 加载中...

发一个RPG作品《Magic Civilizition》,附新鲜出炉的源码

  • 只看楼主
  • 收藏

  • 回复
  • CWHISME
  • Physics
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一.前言
这算是,第四个Demo吧。
个人作品嘛....本来就是为了练手用的,所以当程序上多数功能都做的差不多、并且因为其它原因,没空再继续弄的时候,对个人来说,拿在手里就毫无意义了,另外,看见一些同学还在下载我两年前的项目(http://tieba.baidu.com/p/3014100155)所以,便想发出来,供有需要的同学交流学习。
虽然,这个项目没什么笔记(不过这个项目比上面提到的,条理清晰很多——毕竟那么多年过去了),但是,有什么问题的话,也是可以尽管留言的,如果我看见了,都会尽量回答的!
记得2013年的时候,初接触Unity3D,凭着半生不熟的C#基础,再加上论坛上搜搜索索,视频上查查看看,以一介新人的身份,硬是挤出了个东西来(嘛...虽然看起来也根本算不上是什么“成品”了,不过,想做到成品的程度,又谈何容易。))。
那时候Unity3D可算是“正值壮年”,火红一片。所以,我也就入坑了......
算了,不多说了。
所以说,从初学Unity3D开始,我就是从“实践”开始的。因此,这次也是打着“工作之后,试着凭着一个人,再做一个RPG游戏,总结下经验”的想法,所以,有了这个Demo(还有个原因就是...两年了,都没做一个完整的上线项目...T_T,实在是心有其忧,好想真的能做个可以好玩的游戏啊)。
(PS:这里说的“其它原因”是:这个Demo是在辞职之后,专门花了两个多月做的。因为现在已经打算开始找工作,回去继续搬砖了。所以就.....大约也是没什么功夫继续弄了。何况,最主要的目的——总结一下经验,也算是差不多了。虽然与预先想象的——做个完整的出来有些不符,但是后续剩余主要就是些小地方小功能什么的,任务和剧情都已经有一套工具以及流程,就目前这些东西的话,程序方面是比较少了[当然想加新东西的话,那可就多了,所以仅限”目前“功能而已。毕竟,虽然并非在不务正业,但是一直当着“无业游名”的感觉并不大好]。关于这个,可以参看下述的“后续开发”相关。)
下面,开始正文吧。
首先是一个简单的视频。
(PS:录制视频的时候是用的Demo 4.0,那个版本有点Bug,就不要在意了。)
视频来自:优酷

二.简述
首先是稍微说明一下操作:这个游戏的状态设计为了“普通”和“战斗”状态,进入相应状态时,会自动切换相应的(行走等)动画播放,另外,手动退出战斗状态也可以按下“R”键。
使用技能话,除了默认的基础技能——而基础技能,也就是普通攻击,也是设计为一个具体“技能“的。
1.没有任何武器装备或者装备了魔法武器的情况下,为基础技能“魔力弹”。

2.当装备了近战武器的情况下,为“普通攻击”。
3.当装备了“矿锄”的情况下,为“挖掘”。
4.当装备了念力发生器的情况下,为“念力发生器操作能力”。
目前主要就这四种不同状态类型武器了,就对应于四种”默认基础技能“。
若想使用其它技能,必须通过技能菜单的“快捷键”,将其设置为相应快捷键才行。(另外,快捷键也有存档,所以不用担心读档或重新开始就丢了)当然,上述这几个基础技能也是可以设置快捷键的(如果觉得点鼠标左键麻烦的话)。
然后,存档界面可以在“ESC”键的界面打开:

下面是正文...嗯,因为贴吧发帖老提示”网速不给力,发帖失败“,我怀疑是内容太多了,所以先分开试试,正文打算放在二楼。


  • CWHISME
  • Physics
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
三.正文
(PS:关于正文的内容,我会在源码目录也放上一份的。)
->关于该项目(源码)版本说明
该源码版本对应发布出来的程序:MagicCivilization Demo 0.42
具体哪些内容也可参见Git Log(另外,我打包出来的时候,是把Git也一块儿压缩的,就是不知道其它PC解压后还有没有效)
关于程序游戏说明,可参见之前个人在Blog所记录:
http://www.cwhisme.com/2017/02/10/%E4%BD%9C%E5%93%81-Magic-Civilizition/
1.声明
声明:该Demo属于个人作品,美术资源来源于Asset Store(免费或者论坛共享).并不用于任何商业用途,仅为了学习目的所用(所以我把源码也发出来了)。
源码中,除了“ThirdParty”文件夹下的几个插件:
1.DCG Shaders(水资源插件)
2.DOTween
3.UniStorm (Desktop)(天气插件)
4.XweaponTrail(拖尾效果)
5.以及Plugins文件夹中的RootMotion(IK插件)
之外,其它代码均自主设计(嗯,硬要说的话,另外还要加上用到的粒子插件中,一部分Example代码吧,以及官方Standard ImageEffect——那个可以忽略吧?)
因为美术资源是从AssetStore(准确来说,是从论坛分享的AssetStore而来的,所以...美术风格都不大统一....这也是没办法的事儿。不过替换的话,应当也不是很麻烦的...吧。)
2.源码功能简介
主要代码位于“GameModules”,另外还有一分个人所制作的插件位于“MyPlugins”下。
关于CryStoryEditor:
http://www.cwhisme.com/2016/08/13/%E4%BD%9C%E5%93%81-CryStoryEditor/
关于CryDialogSystem:
http://www.cwhisme.com/2016/10/29/%E4%BD%9C%E5%93%81-CryDialogSystem/
关于GameModules目录:

嗯,从名字上来看,应该一目了然,我就不做过多说明了。
——————————————————————————————————————————————————
嗯,还是稍微解释一下吧。
(1)Actor:里边是所有与“Actor”,即游戏中所有“角色”相关的内容,包括了角色血统、属性、Buff、装备、角色强化功能等。

其中,血统与强化均需事先设计,已有的几项位于
“GameAssets/Resources/Ancestry”(血统)
“GameAssets/Resources/Strengthen”(强化)
文件夹下。
新建新的血统或强化,仅需点击右键菜单即可,如图:

对于血统和强化,我目前反正是没加多少了...毕竟没剧情发展和设计,就算添加了,也不知道什么地方能用上。
装备同样属于ScriptObject,不过在此先不提,因为那已经属于物品模块那边的内容了。
(2)ActorExtensions:然后,是ActorExtensions,这儿目前就只有一个,存放了一个用于刷怪的代码。
(3)AISystem:听名字就知道,这是游戏的AI系统,采用的状态机设计(因为是之前使用的行为树,后期才忙慌慌地改成状态机的,设计上,大概也不大好)。

(4)Animations:动画控制方面代码,不多提。
(5)Archives:存档管理,及相关接口,多数存档功能都在这儿了。

(6)Battle:战场方面代码(这个游戏的设计是分为了“战斗状态”和“非战斗状态的”),主要用于战场仇恨值处理等。

(6)CheatSystem:测试(作弊)系统,就是按“~”打开的控制台功能,实现起来用于方便游戏(作弊)测试的。
关于这个模块儿,我感觉是个可重用的东西,所以也是单独独立出来过了的:
http://www.cwhisme.com/2017/02/14/%E6%8E%A7%E5%88%B6%E5%8F%B0%E7%B1%BB%E5%9E%8B%E7%9A%84%E4%BD%9C%E5%BC%8A%E7%B3%BB%E7%BB%9F%E5%AE%9E%E7%8E%B0/

(7)Controller:控制器模块,即处理玩家按键交互输入等接口。

(8)DialogSystem:对话系统,对话相关扩展及管理器都在这儿了。
(9)DigSystem:挖掘系统模块儿,处理从地下挖出什么东西之类的代码。
(10)DropItems:掉落系统。
(11)GameManager:目前主要就暂停游戏的接口了。
(12)Helper:一些可通用的帮助代码。


2026-01-08 21:16:06
广告
不感兴趣
开通SVIP免广告
  • CWHISME
  • Physics
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
(13)ItemSystem:物品系统,物品系统的物品主要采用ScriptObject保存,需要实现设定(也不是说事先设定就不能用了,物品系统既可以事先设定,也可以由代码重新创建一个从未有的物品。)

其实现设定的数据主要保存于“GameAssets\Resources\Items”文件夹下,分为了四类(装备、道具、食物、其它(材料))。
关于创建新的物品,及添加新物品新功能,参见下面的后续开发->制作新的物品。
(14)PlayerAreaItemHolder:一个用于处理玩家周围情况的代码,扫描玩家周围可交互对象,并缓存,用于优化。
(15)QuickKeys:快捷键功能。
(16)SceneInteractiveItem:场景中对于玩家来说,可交互对象相关代码。

(17)Scnens:处理场景加载及与场景加载的相关代码。
(18)Shaders:(当初本来是想自己写点好看Shader的,结果大量时间都花在做逻辑上了,所以就只有简单的两个[用于魔法阵的])
(19)SkillSystem:技能系统,包括技能及技能子弹、发动技能的魔法阵相关代码。

(20)StorySystem:任务相关及剧情功能扩展代码。
(21)System:比如系统设置等。
(22)Terrain:包括了实时从代码修改地形相关代码,及以Tri-Planar技术,从官方地形Shader修改而来的的地形Shader。

关于这个地形Shader,之前我也写过一篇文章:
http://www.cwhisme.com/2016/12/15/Tri-planar-Terrain-%E4%BA%8C-%E9%94%99%E8%AF%AF%E4%BF%AE%E6%AD%A3/
(23)Time:时间管理器等。
目前是直接获取的天气系统的时间,作为一个“桥接”作用。
(24)UI:所有与UI相关接口。并且,外部调用UI接口的时候,均需从“UIManager”(单例,UI提供给外部一个接口)进行。

以上,就是代码相关的,一个简单的说明。
——————————————————————————————————————————————————


  • CWHISME
  • Physics
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
3.后续开发
1.剧情
若想继续进行后续开发(主要是指剧情方面),可以注意以下两个目录:
首先是“Assets\GameModules\StorySystem\Resources\StoryAssets”
这个目录放置了Story的数据,可点选中目录下的“MCStory”用CryStoryEditor直接打开。
然后是“Assets\GameModules\DialogSystem\Resources\Dialog\MainMission”
这个目录下,盛放的是主线任务中,需要用到的对话逻辑数据。另外,普通NPC的对话数据都是直接赋上去的,位于“Assets\GameModules\DialogSystem\DialogAssets”中。
目前,我所设计的任务,是根据Story以及Dialog轮番作用而进行的。(另外,普通的支线任务,可以直接放在普通对话逻辑中处理,至于为什么这样,可以参见之前的CryDialogSystem的链接,我是参考了曾经小时候玩过的那种RPG游戏做的。)
其运行大概就是:若是属于过场一类的逻辑,则由Story读取一个仅用于过场对哈U逻辑的Dialog,然后运行——>当该逻辑运行结束,一般来说,都会导致某些NPC原有的对话逻辑被修改(比如打完魔王的勇者回到村子,村民对话就已经不一样了),根据需求,将某些NPC的默认对话替换(因为都是有存档的,所以替换之后,在没有新的替换操作之前,都会保持替换后的对话逻辑)——>玩家完成任务——>Story根据需求(一般是某个事件),在指定的时候运行新的对话逻辑——>循环。
比如,在目前第一个对话流程中,Story的内容:

第一个对话流程中,部分Dialog逻辑:

2.关于采集物品
场景中可采集的物品,已有的目前放置于“Assets\GameAssets\Prefabs\GatherItems”
当然,想制作新的也非常简单——稍微看一下应该就明白了,所以我就不多提了。

3.制作新的物品
制作新的物品也非常简单,右键菜单->Create Item->CreateFixedItem
如图:

创建出来的新物品,之后需要进行初始化,该操作主要决定创建物品的类型(装备、道具、食物、其它):

点击初始化之后,根据选择的物品类型,将会出现不同的编辑界面(毕竟是写了工具的):

然后....然后全都是中文了,应该不用过多解释了吧?
——>物品的表达式
其它需要注意的一点就是:物品的表达式。
物品的表达式跟控制台测试(作弊)系统类似,都是采用反射实现的,填写于item中,FunctionManager中的方法名字+参数,当使用物品时,就会执行那个方法,最终效果取决于方法内部。
FunctionManager位于
“Assets\GameModules\ItemSystem\Function\FunctionManager.cs”
添加新的物品功能,只需要添加一个新的方法在里面,然后在物品的表达式栏目填写即可。
例如,我们以“棒棒糖”这个道具为例:

就是这样。
——————————————————————————————————————————————————


  • CWHISME
  • Physics
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
4.结束
以上,就是所有内容。
嗯,再加几张游戏内的截图吧。


属性:

物品-装备:

物品-道具:

技能:

技能强化:

存档:

其它:


Powered By CWHISME
主页:http://www.cwhisme.com
程序链接:http://pan.baidu.com/s/1hsysrp6
源码链接:http://pan.baidu.com/s/1nuOWKuX 密码:lhll
(PS:之所说是新鲜出炉,是因为源码昨天才打包上传,正值新鲜呐)
以上。


  • 零落深空
  • Prefab
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
已阅


  • 也神郡
  • Unitor
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
有BUG 开始对话完就GG了 无法操作


  • CWHISME
  • Physics
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
再加一句:开发所用Unity版本是Unity3D 5.5.0F3


2026-01-08 21:10:06
广告
不感兴趣
开通SVIP免广告
  • 古玛稀
  • Collider
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
厉害👍


  • 超越癜疯
  • Mesh
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
厉害,我新手,最近才发现u3d,现在才学,只有c基础不知道要学多久才有楼主这样一个人搞一个出来


  • 谦谦
  • Shader
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
赞


  • miaomiaoshazi
  • Collider
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我就喜欢楼主这种认真的孩子源码就不下了 不喜欢看别人代码 顶顶


  • Gdeath
  • Script
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这工程量,一个人做完真够呛


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 3 4 下一页 尾页
  • 82回复贴,共4页
  • ,跳到 页  
<<返回unity3d吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示