
游戏开发实例
文章平均质量分 88
是嘟嘟啊
一个放弃java转投游戏的热血战士!
展开
-
【Unity】Unity Shader学习笔记(八)基础纹理2:高度纹理、法线纹理、模型空间下的法线纹理、切线空间下的法线纹理光照计算
而切线空间下的法线纹理中每个点存储的法线方向都是以当前顶点的方向为基准的,所以在存储时等同于大家都是以当前点所对应的法线方向为基准的,也就是说如果这个面是平的,那么这个面上的所有法线方向都将是 (0, 0, 1) ,换算成纹素的值就是 RGB (0.5, 0.5, 1) ,刚好是浅蓝色,所以在没有极特殊情况的话,通常法线方向对应的颜色值都与蓝色相近。高度纹理也就是我们俗称的高度图,高度图可以用来实现凹凸映射,高度图中存储的是强度值(intensity),它用于表示模型表面局部的海拔高度。原创 2024-10-16 10:15:03 · 1306 阅读 · 0 评论 -
【Unity】向量应用:已知入射方向和法向量求反射方向(跳弹系统)
n’ 可以用 v1 和 n 的点乘值再乘以 n 的单位向量来获取,公式为: n’ = Dot( v1, n ) * n.normalized。所以最终的公式为v2 = v1 - (2 * Dot( v1, n ) * n.normalized)。而 n 等于 n’ 的二倍,所以得出公式为:v2 = v1 - (2 * n’)。已知入射向量v1和法向量n(OB),求反射向量v2,上述向量均为单位向量。设 AO为 v1;OD 为 n’;用 v1 - n 即可得到 v2(方向)。更多内容请查看总目录。原创 2024-06-17 23:50:12 · 546 阅读 · 0 评论 -
【研发日记】【策划向】(一)游戏策划其实就是一道加减法题
诚然,这类游戏确实能在短时间内通过砸钱宣发实现爆发式的增长,但玩家的流失也是爆发式的,因为游戏的核太过模糊,而玩家都是有自己的固定取向的,模糊的游戏玩着玩着就忘了。与游戏的核心玩法不一样,卖点可以是核心玩法,也可以是其他方面的东西。再比如玩法上的创新,相信大家都不会忘记当年的那款《纪念碑谷》吧,游戏虽然不算大,但是在玩法上却有很好的创新,虽然不能跟3D之父这种级别的人物去比,但起码给了3D游戏更多的想象空间,这些年陆陆续续出现的很多游戏都有《纪念碑谷》的影子,比如《笼中窥梦》、《Viewfinder》。原创 2024-05-25 13:57:35 · 990 阅读 · 0 评论 -
【Unity】U3D TD游戏制作实例(五)防御塔设计:对象排序、锁定敌人、攻击敌人、防御塔特色功能实现
比如我们的加农炮台需要顶部炮台朝着敌人的位置旋转,此时可以使用扩充的方式,在子类代码中重写 AttackTarget 方法并调用父类方法(base.AttackTarget();父类的锁定敌人方法 LockTarget 和攻击敌人方法 AttackTarget 是常规情况下的处理方式,有时候新的防御塔并不一定用同样的方式锁定敌人或者攻击敌人,此时可以在子类中增加个性化代码。设计防御塔类型以及配置方式,选择几种防御塔做样例,实现防御塔的攻击相关功能,如:锁定敌人、攻击敌人、攻击动画、攻击特效等。原创 2022-11-11 18:28:42 · 3264 阅读 · 1 评论 -
【Unity】导航细节问题汇总:Instantiate飘移问题
使用 Instantiate 方法实例化预制件时会出现位置飘移的问题,正常情况下角色应该在圆圈位置生成,出现这样的问题是因为我们在设置角色位置时没有关闭 NavMeshAgent 组件,该组件会自动改变位置。解决方案如下方代码,在设置角色的 Position 之前要先关闭预制件上的 NavMeshAgent 组件,等位置设置好以后再打开,就可以解决这个问题了。原创 2022-11-10 23:08:55 · 1442 阅读 · 6 评论 -
【Unity】常用几何知识:根据角度获取圆形上某个点的坐标
通过遍历按钮列表 List _createBtnList ,计算每个按钮的旋转角度,再根据角度计算出按钮的坐标。最后再给这个角度增加90°,让起始坐标从 3 点钟方向变为 12 点钟方向。本案例将按钮的位置设计成围绕着生成器旋转排列。当按钮数量为 3 时,就每隔 120° 放一个按钮,当按钮数量为 4 时,就隔 90°。angle:旋转角度(起始方向为 3 点钟方向)centerX centerY 圆的中心点。更多内容请查看总目录。原创 2022-11-08 18:56:02 · 3867 阅读 · 0 评论 -
【Unity】U3D TD游戏制作实例(四)建造防御塔:防御塔生成器、一个int代表多选框,圆上任意点位的坐标计算、制作防御塔预制件
防御塔生成器、一个int代表多选框,圆上任意点位的坐标计算、制作防御塔预制件。由于目前预想的运行环境是PC端,但后续也可能移植到手机端,且有可能提供玩家自定义关卡的功能,所以将防御塔建造点设置为固定位置模式。也就是当鼠标停留在可建造防御塔的位置时显示一个建造区域,当鼠标点击这个区域时弹出建造防御塔的UI菜单。如下图:演示效果如下:Unity制作炮台防守游戏(2)建造炮台。原创 2022-11-08 18:42:25 · 2185 阅读 · 3 评论 -
【Unity】U3D TD游戏制作实例(三)相机管理器、生成敌人优化、敌人血槽小组件
由于是正交镜头,所以此处画布朝向不是直接指向镜头位置的,而是要根据镜头俯仰角度做运算,找到相应的点位,然后LookAt这个点位,如下图:我们已知镜头的俯视角为 x ,再设 a 边为 10 ,计算 c 边,进而得到 p 点的位置,最后使画布朝向 p 点。注意:以上代码有部分为硬编码,比如左右边缘位置以及随着缩放比例变化的缩放系数 scaleRatio 的计算方式,但目前版本已经有较合理的表现,所以暂时不做修改。当敌人到达终点后销毁敌人,目前只做简单的销毁,后续再将造成伤害的代码加进去。原创 2022-10-19 00:39:00 · 1438 阅读 · 0 评论 -
【Unity】U3D ARPG游戏制作实例(二)人物基本动作切换
打开PlayerAnimatorController,右键点击空白处创建一个名为Idle的空白状态(Create State --> Empty),再将此状态设置为默认状态(Set as Layer Default State),通常情况下创建的第一个状态会自动被指定为默认状态,黄色状态即为默认状态。Idle和Run都需要做此操作,而Die则不需要,除非你的角色需要不停的Die。再创建Die和Run两个状态,按照下图,右键点击各个状态将动线连接到相应的状态(Make Transition)。原创 2022-09-02 13:01:07 · 2068 阅读 · 0 评论 -
【Unity】Unity3D 车位售卖系统制作实例(一)系统介绍及相机控制器
使用Unity制作停车管理系统;相机控制器示例。原创 2022-06-23 18:25:55 · 1150 阅读 · 11 评论 -
【Unity】虚拟现实 VR UI框架搭建
由于VR游戏的UI相对来说比较复杂,普通的UGUI并不能满足要求,所以下面我们自定义一套更适合VR的UI框架,以便于开发和管理。原创 2021-12-13 18:32:35 · 6544 阅读 · 0 评论 -
【Unity】 UGUI进阶(一)自定义不规则按钮
文章目录UGUI事件处理流程自定义图片组件自定义组件总结UGUI事件处理流程EventSystem每帧调用BaseInputModule中的Process方法。(实现类:StandaloneInputModule / TouchInputModule)计算光标接触的物体(Graphic)。Process方法调用BaseRaycaster的Raycast方法获取所有Graphic。(实现类:GraphicRaycaster / PhysicsRaycaster / Physics2D原创 2021-10-18 13:15:49 · 4116 阅读 · 4 评论 -
【Unity】虚拟现实 VRTK插件使用教程(五)看源码了解VRTK设计思路
传送组件的实现原理传送组件(VRTK_BasicTeleport)的源码中,在OnEnable方法中使用协程调用了 InitListenersAtEndOfFrame 方法,该方法的实际内容就是在帧的最末尾调用 InitDestinationMarkerListeners 方法,此方法中做了以下几件事:获取左右手的 GameObject 对象,传到 InitDestinationSetListener 方法中。获取所有 VRTK_ObjectCache 中缓存的VRTK游戏对象,传到 InitDes原创 2021-09-15 16:41:35 · 2025 阅读 · 0 评论 -
【Unity】虚拟现实 VRTK插件使用教程(四)武器事件处理
文章目录武器脚本开火事件注册武器脚本通常在游戏中可以使用多种武器,那么每类武器就应该有自己独立的脚本,每个实际的武器又应该有其单独的脚本实例。比如,我有一部分武器是单发的枪,那我就应该有一个单发枪的脚本 SingleGunControl ,这个脚本可以指定一些枪支的基本参数(单发伤害,子弹初速度,子弹类型,射速,换弹速度等),在生成不同的单发枪支时给这些参数赋值。开火事件注册在定义好 SingleGunControl 脚本后,我们需要给手柄控制器提供开火事件响应器。代码如下:/// <s原创 2021-09-14 19:06:58 · 823 阅读 · 0 评论 -
【Unity】虚拟现实 VRTK插件使用教程(三)交互、抓取物体、手柄外观
文章目录交互抓取抛投高亮显示实际项目中的抓取抓取方式转成子物体抓取方式 VRTK_ChildOfControllerGrabAttach指定抓取点精准抓取长按抓取 / 单击抓取丢弃物品手柄外观(交互对象外观)交互VRTK在VRTK - Scripts - Interactions - Interactors中提供了多个用于交互的组件,其中最常用的就是 VRTK_InteractTouch 和 VRTK_InteractGrab ,这两个组件可以用于实现捡拾等效果。注意,** VRTK_Inter原创 2021-09-13 23:11:00 · 6992 阅读 · 6 评论 -
【Unity】虚拟现实 VRTK插件使用教程(二)人物传送、光标指针、传送规则、玩家区域检测
文章目录人物移动传送光标指针更换按键改变力度改变外观Component内容拷贝【Unity小窍门】实现传送效果功能优化传送规则(设置传送禁区)玩家区域碰撞检测忽略检测触发器玩家区域碰撞检测忽略触发器人物移动通常VR人物移动有三种方式:传送、瞬移。通过滑动触摸板移动。通过不停上下摆动左右手柄实现跑步,由于此方式会占用双手,所以不太常用。传送要想实现传送,首先要给左(右)手控制器添加VRTK_Pointer组件和VRTK_Bezier Pointer Renderer组件,并将VRTK_原创 2021-09-10 23:53:43 · 4377 阅读 · 1 评论 -
【Unity】虚拟现实 VRTK插件使用教程(一)插件基本配置
文章目录如何下载如何下载在Project中输入“VRTK”。选择从Asset Store中搜索。选择 VRTK - SteamVR Unity Toolkit。导入包或点击下载(不同版本情况不同)。更多内容请查看总目录【Unity】Unity学习笔记目录整理...原创 2021-09-09 20:44:08 · 13160 阅读 · 2 评论 -
【Unity】Unity3D RPG游戏制作实例(二)开发思路及概要设计
游戏开发思路概要设计模块划分原创 2021-08-18 19:59:04 · 7539 阅读 · 0 评论