![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
unity游戏开发
文章平均质量分 79
使用unity进行的游戏开发历程
晴夏。
“愿与你纵横七海,请伴我阅遍千秋”
展开
-
Unity AssetBundle学习笔记
Unity 中的AssetBundles 是一种用于存储和加载各种资源的打包机制。它们允许开发者将游戏资源(如场景、模型、纹理、声音等)打包成一个或多个文件,这些文件可以在游戏运行时动态加载。AssetBundles 主要用于优化资源的管理和减少应用的初始下载大小。原创 2023-12-25 12:43:57 · 1103 阅读 · 0 评论 -
Lua的垃圾回收机制详解
Lua 使用的是标记-清除(Mark-and-Sweep)算法进行垃圾收集。标记(Mark)阶段:Lua 遍历所有活动对象(即那些仍然可以从根集合直接或间接访问的对象),并将它们标记为活动的。清除(Sweep)阶段:Lua 移除所有未被标记的对象,释放它们占用的内存。内存分配Lua 使用malloc和free(C语言标准库函数)进行内存分配和释放。内存泄漏尽管 Lua 提供了自动垃圾收集,但内存泄露仍然可能发生,尤其是在使用复杂的数据结构和循环引用时。原创 2023-12-25 00:39:23 · 2632 阅读 · 0 评论 -
Unity协程的定义、使用及原理,与线程的区别、缺点全方面解析
协程的定义,先来看看官方给出的定义:当你需要延时执行一个方法或者是每隔一段时间就执行某项操作时,可以使用协程。以下是官方的案例:游戏中的许多任务需要定期执行,最容易想到的方法是将任务包含在 Update 函数中。但是,通常情况下,每秒将多次调用该函数。不需要以这样的频繁程度重复任务时,可以将其放在协程中来进行定期更新,而不是每一帧都更新。这方面的一个示例可能是在附近有敌人时向玩家发出的警报。此代码可能如下所示: 如果有很多敌人,那么每帧都调用此函数可能会带来很大开销。但是,可以使用协程,每十分之一秒原创 2023-12-23 12:32:25 · 1000 阅读 · 0 评论 -
游戏的UI管理的完整机制总结及框架展示
自己根据源码总结出的一套UI管理机制,大概讲述了如何实现游戏中的UI管理。以下是具体的各种管理机制。原创 2023-12-05 00:27:36 · 1389 阅读 · 0 评论 -
游戏中的资源动态加载
动态加载允许游戏根据每个玩家的游戏进程和选择来加载资源,而不是加载所有玩家可能永远不会接触到的内容。游戏中的资源动态加载是指在游戏运行时根据需要加载和卸载资源的过程,而不是在游戏启动时一次性加载所有资源。动态加载可以在玩家进行游戏时无缝地加载新资源,例如新的游戏关卡、角色、纹理等。动态加载允许游戏快速启动,因为只加载必要的初始资源,其他资源可以在游戏进行时按需加载。动态加载是一种平衡游戏性能、内存使用和用户体验的高效方式,但它也需要精心设计和优化,以确保资源在正确的时间以合适的方式加载和卸载。原创 2023-11-19 22:25:36 · 698 阅读 · 0 评论 -
游戏中UI的性能优化手段
虚拟滚动:对于长列表等需要展示大量数据的组件,可以采用虚拟滚动的方式,即只显示用户可视区域内的部分内容,并动态地加载和回收其他数据项。图片优化:对于图片等需要加载大量资源的组件,可以采用图片压缩、懒加载、预加载等方式进行优化,从而减少网络带宽和加载时间,提高用户体验和页面性能。批量渲染:对于游戏中大量的UI元素,可以采用批量渲染的方式,即将相邻的元素合并为一个渲染对象,以减少绘制调用的数量,提高渲染效率。数据缓存:对于频繁变动的数据,可以采用缓存技术,将数据缓存在本地,实现快速加载和实时更新。原创 2023-11-02 23:47:09 · 984 阅读 · 0 评论 -
网络同步——帧同步和状态同步解析
同步就是要多个客户端表现效果是一致的,而且对于大多数的游戏,不仅仅要表现一致,还要客户端和服务器的数据也是一致的。所以同步是个网络游戏概念,只有网络游戏才需要同步,而单机游戏是不需要同步的。帧同步和状态同步是在网络游戏和多人在线应用中常见的两种同步方法,它们用于确保所有参与者看到的游戏状态一致。帧同步概念帧同步是一种同步方式,其中每个客户端都在相同的逻辑帧上执行相同的操作。在这种方式下,游戏状态的更新在固定时间间隔(例如,每秒30帧)内进行。客户端只需发送用户输入,而无需发送整个游戏状态。原创 2023-03-22 16:44:25 · 1584 阅读 · 0 评论 -
通俗易懂的讲解AI行为树(更新中)
本文通俗易懂的讲解AI行为树原创 2023-02-17 14:49:53 · 312 阅读 · 0 评论 -
Unity一张图带你看懂Button的各种颜色设定(HighLighted、Pressed、Selected、Disabled Color)
button会有个基础颜色,建议设定为白色,因为这个基础颜色会和后续的颜色产生一个叠加效果。DisabledColor,当该按钮的交互功能关闭时便会变成DisabledColor。Pressed Color 当鼠标按下,但是不松开时的颜色,Selected color 当鼠标按下后,选中该按钮的颜色。HighLightedColor 当鼠标放上去时显示的颜色。NormalColor 基础时候的颜色。原创 2023-02-14 12:38:30 · 4067 阅读 · 0 评论 -
Unity通俗易懂的讲解PPU(Pixel Per Unit)与Camera Size
unity 2d中的sprite ,具有一个参数:Pixel Per Unit初学者往往不知道这个代表什么意思,如何理解,怎么设置,这个在unity的美术素材的使用也是极为重要的基础知识。今天一文让你通俗易懂的彻底理解。原创 2023-02-13 23:53:25 · 5141 阅读 · 2 评论 -
C# Lambda表达式含义及各种写法
Lambda表达式在各个语言中的表达方式都不太相同,本文重点介绍C#的Lambda表达式。原创 2023-02-12 20:19:12 · 2887 阅读 · 0 评论 -
unity使用对象池实现冲锋留下的残影效果
对象池,有想要用的物体时可以从池子里取,用完再放回去。因为在生成残影再销毁,这个过程中创建和销毁都需要耗费大量资源,因此尽量避免这样的浪费资源。实现残影的思路如下:其实很简单当人物按下冲刺键时,让此时人物突然加速,在加速的过程中并且每隔X帧就生成一个sprite,这个sprite的图像、位置、旋转角度和当前玩家所处位置一样,这样就相当于一个影分身。在冲刺的过程中就会留下分身,然后让这些生成的分身在隔一段时间后自动销毁即可。原创 2023-02-01 12:04:29 · 994 阅读 · 0 评论 -
Unity简单几行代码让玩家水平移动更丝滑真实
本文用基础但实用的代码解析了如何实现Unity中水平方向丝滑且真实的移动。原创 2023-01-22 22:46:16 · 3585 阅读 · 0 评论 -
A*算法实战——构建场景中的最优路径及实现NPC的自动寻路
A*(A-star)算法是一种静态网路中求解最短路径最有效的直接搜索算法。在电子游戏中最主要的应用是寻找地图上两点间的最佳路线。原创 2022-07-25 15:58:34 · 2693 阅读 · 1 评论 -
Unity 农场 2 —— 种植系统
本文实现了unity的种植系统功能,实现不同种类的种植与收割作物,不同作物随时间生长的特性。原创 2022-07-25 11:44:24 · 2787 阅读 · 0 评论 -
Unity 农场 1 —— 环境搭建、背包系统、时间系统
本文实现了背包、种植、时间系统,以及使用A*算法实现了NPC的自动寻路和跨场景寻路。原创 2022-07-24 10:48:14 · 3949 阅读 · 5 评论 -
计算机校招基础知识集锦
C++基础继承类型当一个类派生自基类,该基类可以被继承为public、protected或private几种类型。继承类型是通过上面讲解的访问修饰符 access-specifier 来指定的。我们几乎不使用protected或private继承,通常使用public继承。当使用不同类型的继承时,遵循以下几个规则:公有继承(public):当一个类派生自公有基类时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访..........原创 2022-03-09 18:35:18 · 6655 阅读 · 0 评论 -
Unity3D RPG实现 3 —— 对话、任务系统
本文实现了对话系统、任务系统,可以和npc进行对话,接取任务,完成任务所需的条件即可领取奖励。原创 2022-03-04 23:06:43 · 16347 阅读 · 12 评论 -
A*算法图解
A*(A-star)算法是一种静态网路中求解最短路径最有效的直接搜索算法。在电子游戏中最主要的应用是寻找地图上两点间的最佳路线。在机器人领域中,A*算法常用于移动机器人路径规划。为了便于理解,本文将以正方形网格地图为例进行讲解。如图,蓝色格子是障碍物,灰色格子是可通过区域,绿色格子是起点(S),红色格子是终点(D)。我们要做的是找到一条从起点到终点的最佳路线。为了顺利地解决问题,我们先要设定一些约束条件:1.从一个格子可以朝周围 8 个方向移动。其中朝上、下、左、右移动的成本为 1,朝.原创 2022-04-26 23:58:49 · 21894 阅读 · 7 评论 -
Unity3D RPG实现 1 —— 初始环境、战斗系统、场景切换与存储档
本系列实现了战斗系统、背包系统、敌人的简易AI,任务对话系统等。原创 2022-03-06 16:02:47 · 5556 阅读 · 1 评论 -
Unity3D RPG实现 2 —— 背包系统
本文实现了背包系统,包含物品与数据库连接,物品的使用,拖拽交换、展示详情等功能。原创 2022-02-28 17:55:30 · 18121 阅读 · 10 评论 -
在unity中使用状态机编写敌人的AI(纯代码方式)
本文通过状态机实现了敌人的简易AI,包含巡逻、追踪、攻击、死亡等状态。原创 2022-02-10 17:44:36 · 6015 阅读 · 3 评论 -
Unity单例模式较为简单的理解
本文将介绍unity中单例模式从最简单到复杂的实际使用。首先书写一个最简单的单例模式,这个类的成员变量就是一个自己的对象,并且初始化的时候将这个变量设置为自己。然后我们将这个脚本给某个对象:此时这个脚本的实例就是它自己本身。然后我们就可以在另外的脚本中,直接调用该类.实例.方法的方式直接调用该类里的函数:一般来说,不需要继承MonoBehaviour。接下来对单例模式进行细化讲解:单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次原创 2022-02-09 21:09:46 · 10092 阅读 · 0 评论 -
Unity中协程的作用和使用方法
协程,即Coroutine,可以认为它是一个返回值是IEnumerator的函数,但是使用它需要配合StartCoroutine使用。协程不是多线程,所有的任务还是在主线程上完成,是一种异步多任务处理的方式。协程的好处在于,它可以在一个函数内实现像update那样按帧执行某个部分,或者按照过几秒后执行某个部分。例如实现一个计时器:普通的实现方式如下:这种方法有两个弊端,在每一帧都需要判断执行一次,浪费资源。创建很多变量,实际上只改变了一个数字。对比使用协程的方法:yield retur原创 2022-02-09 20:03:06 · 11755 阅读 · 1 评论 -
Unity2d平台动作游戏教程
首先实现最基础的功能,将环境拖拽进来,注意到环境的各个前后景的层次感是通过设定layer实现的:玩家的基础移动我们将玩家设定在第七个layer:并为了跳跃手感改变重力scale,这可以实现重力对不同的物体有不同的效果。介绍几个属性:首先导入资源,加入idle动画和三个轻攻击动画到动画机里:...原创 2022-02-08 14:18:29 · 5415 阅读 · 5 评论 -
由他人的独立游戏获取的idea
很多游戏的不错往往体现在一些细节上面,我做的作品第一眼看上去的粗糙就是在于和别人的作品细节上的差距,今天在此记录一些看别人的独立游戏得到的idea。开场的标题的出现,实现一个淡入的效果按钮的改版,改为press any key to continue(或者实现按钮可以当鼠标放上去时会放大的效果新手教程开始界面与人物的交互:例如游戏角色会盯着鼠标所示的方向细微处的音效倒计时自己目前想做的游戏:双人合作游戏,类似pico park和battle block theater(森林冰火人?)原创 2022-02-06 21:19:53 · 595 阅读 · 0 评论 -
unity自己遇到的一些bug与解决方法的记录
场景跳转后,材质丢失原因:因为没有光照,加入光照即可无法调用系统的函数(实际上写的时候发现不能调用这个api,原因是在于自己命名了一个Camera的脚本这样会覆盖系统自带的。)一些经验总结写完某段功能时要在旁边标上注释不要在update里放那么多东西,封装成函数再放在update里调用,养成好习惯。了因为考研很长时间没碰unity再碰unity时的感受:2022.1.21做gamejam的2d平台跑酷游戏中得到的经验教训:简单的2d平台跑酷游戏好像看似很简单,但是我却眼高手原创 2022-01-25 17:06:34 · 2816 阅读 · 0 评论 -
unity各种基础功能实现的笔记
回想一下学unity也学了不少东西了,可是很多东西还是学了忘忘了学,于是可能还得当场百度一下才能回想的起来。为加强自己的熟练程度,继续来更新博客了。原创 2022-01-24 17:05:51 · 1240 阅读 · 0 评论 -
unity解决UI组件在屏幕放大时位置变化的问题
放大后,按钮会错位:解决办法,在画布中选中然后就可以成功让组件在放大前后都是在合适的位置原创 2021-03-21 16:03:49 · 3923 阅读 · 0 评论 -
Unity中拖尾渲染器使用解析
文章目录介绍定义注意事项拖尾渲染器案例介绍拖尾渲染器是一个组件,主要用于制作跟在场景中的物体后面的拖尾效果来代表它们在到处移动。而下面要和大家介绍的是在开发过程中拖尾渲染器使用情况。定义拖尾渲染器就是跟在运动物体后面的东西,前进的过程中,末尾的不断消失,前面的不断生成,有一个长度。长度是以时间计算的,从末尾到头有多少秒的时间就是拖尾的长度。当物体不运动之后,拖尾也会不断消失:1.游戏中炮弹后面的拖尾, 以及汽车轮胎拖痕等绚丽特效,unity提供了拖尾渲染器;2.拖尾渲染器的属性:Materi转载 2021-03-19 16:56:35 · 1443 阅读 · 0 评论 -
unity中Animator controller无法给动作添加motion的问题
需要将动画的Rig-Animation type设置为Generic如果选择Legacy则无法导入,选择Gneric(通用)则会出现Avator此时可以选择create from this model在这里可以使动画循环播放Legacy:老版本动画系统Generic:通用模式Humanoid:人形动画Generic与Humanoid动画的区别Generic:它是新的动画系统,支持非人形(怪物)动画,也支持人形动画。但它无法使用Humanoid动画重定向功能。即美术给一个模型做原创 2021-03-18 10:18:32 · 2258 阅读 · 2 评论 -
Unity粒子系统-几种粒子效果的制作教学
源自Unity官方账号的B站视频教学:第一个是随着时间散发出多少粒子,第二个是当物体移动距离的时候散发出的粒子,第三个则是在最初试的时候爆裂出粒子。想要没有这个橙色的圈圈可以通过这样实现:反选这个选项可以使其不显示这么多想要实现一个多个粒子的组合效果,不能通过创建空物体的形式,然后其子物体是粒子系统,但是可以通过创建粒子系统,然后不选中其任何选项,此时再把子物体放上来即可使得一个粒子系统由多个粒子系统组合而成:...原创 2021-03-16 22:41:21 · 3129 阅读 · 0 评论 -
Unity使用fungus插件实现对话系统
文章目录对话实现触碰npc产生对话条件对话带人物的对话分支对话对话实现unity商店下载并导入可以在这里点加号生成各种各样的命令 比如说说话的实现就是在这里:随后运行游戏就有对话了在这里可以选择什么时候开始触发这段对话可以通过button的方式触发还有按键盘按键触发触碰npc产生对话选中摄像机 ctrl+shift+f可以使得其对准当前scene的场景添加一个NPC为了防止人物穿过NPC 可以给人物添加刚体为了防止人物倾倒 可以锁定其xyz轴为了产生使其能在一原创 2021-03-06 14:17:01 · 6049 阅读 · 2 评论 -
C# 委托
文章目录委托委托现在有这样一个问题,对于不同的情况,我们想随机调用不同的函数,因此这时候可以用随机数字的方式去随机。但是这样的方式有点麻烦,对于数据,我们有很多的方式可以去处理,但是如果对于函数,处理起来可能就像下面这样子比较麻烦。我们可以像用下面这种容器的形式去做:然后问题就是怎么去解决xxx的形式和内容在C#中提供了这样的语法:看上图可知,此时GameLevel变成了绿色,变成了一种类型。此时这个类型就可以用来填在List中然后此时只需要这样就可以调用:此时可以正常调用:原创 2021-03-05 21:13:26 · 553 阅读 · 0 评论 -
unity 简单易懂的ui框架
c# 属性: public int Id { get; private set; }说明Id这个属性在其所在的类外被调用时,只能获取它的值而不能设置它的值这些文件的路径随后需要通过代码进行获取:UIType.csusing System.Collections;using System.Collections.Generic;using UnityEngine;public class UIType { public string Name { get; private set;原创 2021-03-02 19:41:19 · 4500 阅读 · 3 评论 -
使用unity编写简单的弹幕游戏【ten seconds】
对象池在对象池中出现了同步异步的概念,这里是解释原创 2021-01-29 00:14:36 · 5780 阅读 · 1 评论 -
用unity做仿马里奥游戏
文章目录搭建场景搭建场景首先下载资源https://pan.baidu.com/s/1QhfsEbu7RD22rQhZAx6ysA然后导入到unity中,搭建好场景(导入env和天空盒),添加人物,把人物放到空物体下,给人物添加角色控制器,设置好人物的胶囊碰撞体积角色控制器带有部分的刚体功能,并且自带胶囊碰撞器接下来创建脚本,由于需要玩家和敌人,我们可以让玩家和敌人共同继承自一个character基类。...原创 2021-01-27 23:04:38 · 1858 阅读 · 1 评论 -
用Unity做第一人称射击游戏
文章目录场景搭建场景搭建先创建一个地面,然后设置其材质,我们可以在材质这里的Tiling选择6x6表示平铺成6个为其创建一个材质按住v有助于方便对齐利用下载的资源中搭建一个场景为了使其更有层次,我们将所有场景物体拖拽到空物体并为其附上静态的属性然后进行烘培烘焙好后如图所示然后利用所给的资源建立左下角所示的枪的ui...原创 2020-10-16 23:50:38 · 7373 阅读 · 2 评论 -
游戏开发时犯的一些小错误及改正方法
注意这里,当让人物自己行走的时候,会出现离开地面一段距离,这是为什么呢原创 2020-11-25 17:03:39 · 435 阅读 · 0 评论 -
【Unity入门教程】第一章 游戏引擎基础 【中国大学MOOC游戏引擎原理及应用】
以下均为来自中国大学mooc 游戏引擎原理及应用时的学习笔记,不含商用,仅供学习交流使用,如果侵权请联系作者删除。第一章都很简单没什么好讲的,简单的介绍一下(其实是学习的时候第二章才开始记笔记)https://www.icourse163.org/course/CUC-1450317378?tid=1450731676才不会说是为了规格整齐每章都有才水了个第一章的...原创 2020-11-26 11:41:03 · 337 阅读 · 0 评论