最近想试着制作ACT游戏demo,然而困难很多,总结下原因:要求太高,第一个demo就想做出功能丰富的战斗系统;基础不牢固,一些基础东西总忘记。这时候打开steam上的游戏巫兔,有所感悟。
《巫兔》这款游戏是个二次元萌化版ACT游戏,整体来看其实游戏逻辑并不复杂,但是口碑却很好。拆解来分析,首先是很简单的相机系统,相机看向角色、角色能跟随相机旋转,也没有鼠标滚轮控制距离、上下移动鼠标改变视角等。其次是动画系统,玩家的动画并不复杂,待机、四个闪避动画、两段攻击动画、一个跳跃动画、一个格挡动画、一个受伤动画和死亡动画,还有一个吃药的动画,游戏进行时玩家始终看向Boss。要说巫兔不足,和一些高级的游戏比起来肯定有很多:相机太死板、角色动画太单一,等等;但其能有好的口碑,关键在于它的攻击系统做得很好、这一两点抹去了所有的不足。于是我思考,我的ACT小demo不一定要做的很复杂,可以参考巫兔,做得简单些。
由于我发现我经常记不牢这些API还经常搞混,于是总结一下
Quaternion
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253在Unity中,`Quaternion` 类用于表示三维空间中的旋转。以下是你提到的API的传入参数和返回值的总结:1. Quaternion.Euler(Vector3) - 传入:一个 `Vector3` 对象,表示绕x、y、z轴的旋转角度(以度为单位)。 - 返回值 :一个新的 `Quaternion` 对象,表示由这些欧拉角定义的旋转。2. Quaternion.AngleAxis(float, Vector3) - 传入 :旋转角度(以度为单位)和一个 `Vector3` 对象,表示旋转轴。 - 返回值 :一个新的 `Quaternion` 对象,表示围绕给定轴的旋转。3. Quaternion.FromToRotation(Vector3, Vector3) - 传 ...
今天花3小时写了个简单的音量控制器,还是参考唐老狮的视频…不管怎么说也是写出来了,感觉理论到实践还是挺难的,经常出Bug,于是记录一下思路和踩的坑。
整体思路
打算先写好BaseUI和UIManager两个脚本(另一篇文章有写UI管理器逻辑),然后写好BeginPanel和SetPanel;音乐部分首先写一个GameDataMgr作为游戏数据管理器,写一个MusicData记录初始数据,在场上创建空物体BKMusic挂载AudioSource脚本控制音乐播放,给SetPanel写一个同样名字的脚本。创建一个Main的空物体,挂载Main.cs脚本,Main.cs里调用UIManager的逻辑使BeginPanel刚开始运行时就出现。
大体流程是,运行项目,首先Main.cs调用UIManager.Instance.ShowPanel();我们点击设置按钮、会调出SetPanel,点击SetPanel右上角叉号会隐藏并在场景删除SetPanel;BKMusic向外部提供方法控制身上AudioSource组件的mute和volumn
踩坑记录
1.未能实例化出物体。运行好几次,总告诉我未 ...
这月要开始备战期末考试了,尤其是系统解剖,因此没太多时间学习Unity,本次记录UI管理器。
思路记录
首先需要想,我们如何去做UI管理器?根据我对“面向对象编程”的思考,我们需要找到不同的UI的共同点——它们都有一个ShowPanel(显示面板)和HidePanel(隐藏面板)的方法,这是共同性;它们的差异性在于不同UI逻辑不同,那就用抽象方法,根据具体差异书写不同逻辑。
其次,UI管理器只能有一个,那就想到了单例模式。我们把不同UI做成预设体存在Resources文件夹,通过单例模式+泛型实现显示面板、隐藏面板的方法:ShowPanel,ShowPanel,这样就很方便。
于是我们需要写两个基础的脚本,第一个是BasePanel,所有UI面板的基类,并声明为抽象类:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061using Unity.VisualScripting;using UnityEngin ...
galgame
未读light.vn引擎是日本游戏开发者BerserkD开发的游戏引擎(作者本人在b站有账号),采用C++语言开发,主要用于视觉小说游戏开发,也可以用来开发一些简单的RPG游戏和3D游戏,开发时间已有10年有余。
目前该引擎国内开发者很少(国内貌似renpy引擎更主流些),据我所知(讲述历史):某天群友购买了《Clear Rain》这款同人游戏想要我做AI补丁,我发现该游戏是用Light.VN引擎开发的,于是自学了两星期、在b站写教程(由于我大号被封禁了、稿件也失效了),随后用该引擎开发了同人性质的小游戏(源码链接:https://www.123865.com/s/RP16Vv-IYtW,可以参考学习)。之后我在网上结识了另一位Light.VN使用者xiakk,我去youtube找到作者BerserkD账号、建议其注册B站账号。目前主要是xiakk与Light.VN引擎开发者联系比较密切,xiakk也在进行Light.VN的汉化工作(github项目:https://github.com/xiakkto/Light.vn-Chinese-Wiki/wiki),并建设了QQ群(909636 ...
本文打算粗略介绍一下我所学的专业,一方面是满足别人的好奇心:理理你上的什么大学、学什么专业哇?另一方面给家长和同学留下参考(每年的大一学生、或者准大一学生总是感到很迷茫),另一方面也算是我的生物医学工程导论结课作业。
Q:介绍一下本校的生物医学工程专业生物医学工程专业是交叉学科,不同学校的办学风格不同,有的学校偏向理工、有的学校偏向医学,由于本校是医学院校,因此偏向医学。研究方向有很多,比较热门的主要是医疗器材、医学材料研发,在新生见面会上老师放的毕业生名单里,毕业生主要去向是医院的医疗设备科、医疗相关研发公司,也有进入电子行业、计算机行业的学生(相对比较少)。
新乡医学院生物医学工程专业于2002年申请下来,2003年迎来第一届学生,在本省是第二个申请该专业的院校(第一个是郑州大学)。据老师所说,郑州大学生物医学工程专业快消失了。除去郑州大学,本省开设同专业的学校有,新乡学院、河南科技大学、河南师范大学。本校本科毕业生大多去向为跨省考研(本校没保研资格),考研率60%~70%(基于往年数据),本科毕业多从事医疗器材销售、维护。
Q:你们学什么内容?以下是我们老师在新生见面会给我们 ...
本文用于详细记录我想实现的demo的游戏功能,我感觉需要先有目标才能做好。
demo概述
demo是一款简单的ACT游戏,类似《只狼》简化版,场景中有一个boss。通过格挡、刀砍、把boss打死算获胜。
玩家需求:WASD控制移动,鼠标左键攻击,右键格挡,有一套组合技;有格挡值、生命值,Shift向前冲刺,S+Shift向后闪避,A/D+Shift分别向左和向右闪避。
Boss需求:有几套组合技,通过有限状态机控制Boss状态,有生命值、格挡值,格挡值被打满进入硬直状态,可以进行格挡
UI需求:有开始界面、游戏界面、设置界面、退出界面;显示角色血条格挡值和Boss血条格挡值。
玩家拓展部分(可选):按U键发射飞镖。
音乐音效方面简单配置即可。
***
以上就是一个简单的游戏需求。
突然想写一写,觉得对于想学习游戏开发的朋友,帮助应该挺大的。
很多Unity学习者,状态和我一样:会使用Unity,也会C#编程,但你问我会不会开发游戏,我表示不会…明明已经会编程了,接口、继承、事件委托张口就来、代码写得行云流水;明明已经会用Unity这款软件了,为什么还不会游戏开发?
这里我想到一个很好的比喻,是“建房子”。我们Unity学习者就像工人,学习Unity和C#,相当于在学习一些技能:怎样抹水泥、怎样打钢筋,到现在,这些我们都是会的。然而建房子的精髓是什么?是如何设计这座房子、怎么把房子设计得好看,不光有工人挥洒汗水、背后还有一个拿着设计图纸的人,缺少的主要就是这些了。就像武林高手比武,不光要有招式、更要有深厚的内力。
我也看了很多教程,最终我觉得,学习Unity和“游戏开发”不是一回事,说到底,Unity和C#只是游戏开发的工具,不是游戏开发本身。市面上好多课,感觉其实挺不值的。跟着别人的视频、照猫画虎把游戏做出来,发个视频展示下成果,貌似也很有成就感,但实际上还是什么也不会。我感觉吧,最好的学习方式是结合具体需求去完善相关功能,可以先去参考市面上一些常见的游戏, ...
前伍六七第六集、第七集比较水,招致很多观众不满,评分跌破7.5分,啊哈大概看见了观众不满的声音,这周三《伍六七之记忆碎片》一连更新两集。第八集感觉中规中矩,第九集可谓信息量炸裂,交代了首席的身世,同时强化主旨和核心,令我印象深刻。
在第九集中,有一个画面我印象很深刻,伍六七拥抱着过去满是戾气的自己。当时伍六七得知真相,无眼法师预测伍六七会展开复仇、准备杀掉阿七,然而阿七接受了自己的过去。“我已经和以前不一样了”,阴霾散去,阳光迎来。
之所以感触深,大概有两点吧。第一点是,伍六七和很多人很像,我能从伍六七身上看到自己曾经的影子(但是是负面意义的):逃避过去、逃避自己。很多人一直不能与自己、与过去和解,厌恶自己的过往、讨厌曾经或者现在的自己;亦或是有很多后悔和遗憾:我以前要是怎么样怎么样就好了,我有着如何不堪回首的过往和经历。否定自己的过去,否定曾经的自己。然而,我觉得阿七身上传递出一个很正的价值观——接纳自己、拥抱过去。无论过去怎么不堪,但其实,正是有了过去的你、才有了现在的你自己,过去的你构成了现在的你,否定过去、既否定你自己。拥抱过去、接纳自己、与自己和解。
另一点是,在剧情中,阿 ...
在学习一项新事物前,要先了解我们的需求是什么,为什么需要计时器。我在试图做ACT游戏demo时,想要给角色加上技能冷却CD,在CD时间内角色不能释放技能,CD后才可以。于是有了需求就开始制作计时器吧。
计时器主体脚本:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758using System;using UnityEngine;public enum TimerWorkState{ NONE, WORKERING, DONE}public class GameTimer{ private float _startTime; private bool _stop; private Action _action; public TimerWorkState _state; public GameTimer() { Re ...