galgame吧 关注:1,725,633贴子:24,758,796

Unity文字冒险游戏开发日记

只看楼主收藏回复

写在前面:
本人大学软件工程专业,学过c语言和c++,现学习unity刚刚一月,无任何公司项目经验,代码写起来还比较稚嫩。因为自己热爱gal,就想开发一款ADV作为毕业设计。将自己开发游戏的过程写成帖子的目的有三:1.激励自己坚持开发 2.为将来可能的游戏开发整理思路和api文档 3.给一些同样想要开发ADV的游戏开发者提供思路和建议


IP属地:江苏1楼2021-04-08 11:46回复
    开发大纲:
    1. 实现游戏的基本框架(UI、逻辑、游戏组件、日志、其余各种功能)
    2. 游戏剧情
    3. 游戏测试及优化
    4. (*)开发简单的游戏编辑器(实现部分类fungus插件的功能)
    素材来源:
    橙光素材库,用来非商业开发学习非常不错


    IP属地:江苏2楼2021-04-08 11:46
    回复
      第一天:实现简单的游戏对话画面

      一个简单的游戏对话画面至少包含5个部分:背景图片、人物立绘、对话框、角色名以及剧本


      IP属地:江苏3楼2021-04-08 11:48
      回复


        创建五个gameObject游戏对象
        其中三个带Image组件
        分别表示背景图片(Background)、人物立绘(Body)以及对话框(MsgPanel)
        两个带Text组件
        表示角色名(CharName)和剧本(Msg)


        IP属地:江苏4楼2021-04-08 11:49
        回复

          手调位置(为了表示方便,用不同颜色表示游戏组件)


          IP属地:江苏5楼2021-04-08 11:50
          回复

            将Image全部调成白色(不影响图片正常显示)
            将Text全部调成无字


            IP属地:江苏6楼2021-04-08 11:51
            回复


              创建一个c#脚本Test作为主程序入口,分别定义这五个组件,把脚本拖到MainCamera上,分别把5个组件拖到Inspector的脚本变量上,游戏组件初始化成功。


              IP属地:江苏7楼2021-04-08 11:52
              回复

                显示文本通过给Text类中text属性赋值即可做到。


                IP属地:江苏8楼2021-04-08 11:54
                回复


                  载入图片时为了调用方便,不去创建加载对象的实例,在其类下写一个静态方法,以background 为例
                  这里 Resources.Load()加载的图片必须要放在Resources文件夹中,参数要写相对路径,由于返回的是Object类型,必须通过显式转换转换成Sprite类型(图片类型)
                  这样就可以在同一个命名空间中通过Background.LoadSprite()来调用这个方法。


                  IP属地:江苏9楼2021-04-08 11:55
                  回复
                    如何找到文件路径?
                    在Resources文件夹下找到背景图片(如果没有Resources文件夹需要自己先在Assets下创建一个),将文件放在这个文件夹下

                    这里背景图片的文件路径应该为"Textures/Backgrounds/"+文件名
                    为了使代码更加清楚明了,最好创建一个类,用于保存路径及其他常量


                    IP属地:江苏10楼2021-04-08 11:57
                    回复

                      得到了Sprite类型返回值之后,我们要先做一下判断这个值是不是为null,如果为null说明未能加载到图片,就停止执行,不再导入图片
                      导入图片之前必须设置导入对象为激活状态,不能先导入再激活!


                      IP属地:江苏11楼2021-04-08 11:58
                      回复
                        导入图片功能如何实现?
                        T GameObject.GetComponet<T>() 返回一个T类型的对象,这个T类型必须是unity自带的组件类型(component),可以通过addComponent按钮添加组件类型

                        添加的Background因为是Image类型,就自动生成了Image组件,所以我们可以在代码内部实现访问Image组件的对象。
                        Image类里面有个sprite属性用于赋值;


                        IP属地:江苏12楼2021-04-08 12:00
                        回复


                          IP属地:江苏13楼2021-04-08 12:01
                          回复
                            膜拜大佬


                            IP属地:山西来自Android客户端17楼2021-04-08 12:04
                            收起回复
                              这是教程贴吗,贴吧遗风


                              IP属地:广西来自iPhone客户端19楼2021-04-08 12:14
                              收起回复