![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity
文章平均质量分 75
水智
这个作者很懒,什么都没留下…
展开
-
Unity保存玩家的数据到文件中(Unity的二进制序列化)
Unity中的二进制序列化是一种将游戏对象或数据结构转换为二进制格式的过程,以便于存储或网络传输。这使数据能够以高效的方式保存,同时在需要时可以被正确地恢复(反序列化)回原始状态。二进制序列化对于保存游戏进度、网络同步数据或资源打包(如AssetBundles)特别有用。二进制序列化通常比文本格式(如JSON、XML)更快,占用空间更小,但可能不如文本格式易于调试或跨平台兼容。我们可以使用来实现更复杂的自定义序列化需求,虽然不是Unity引擎直接推荐的方法。这个类是.NET的,完全限定名是。原创 2024-06-24 10:13:27 · 913 阅读 · 0 评论 -
Unity多人游戏开发 - Netcode for GameObject - 1.6.0 - 官方文档中文翻译 - 开始使用
Netcode具有自定义生成处理程序,用于替代UNet的自定义生成函数。请查看对象池以获取更多信息。翻译 2024-05-29 19:51:23 · 177 阅读 · 0 评论 -
安装Unity详细教程(如何获取免费个人版许可证)
Unity Hub是用来管理的,其中并不直接包含Unity编辑器的本体文件,我们需要单独安装Unity编辑器,安装的方法也很简单,就是在Unity Hub的安装页面,如下图所示,点击“安装”-“安装编辑器”。点击登录后会进入到浏览器,如下图所示,如果你有Connect APP,直接通过APP扫码登录,如果没有,也可以通过点击账户登录,然后登录。在使用Unity之前,我们还需要获取相应的许可证,Unity许可证分为多个版本,有免费的,和付费的,免费的具有一定的申请条件。注意观察一下,自己是否符合获取要求。原创 2024-01-02 22:50:47 · 8399 阅读 · 0 评论 -
Unity2D创建帧动画片段
动画是游戏中一种使对象表现出运动或变换的方式。当涉及到动画时,我们通常就会用到Animator组件。它允许我们在Unity编辑器中创建、管理和控制这些动画,并将其应用于游戏对象。这篇文章将对Animator组件的使用进行部分讲解。原创 2023-10-06 11:48:47 · 560 阅读 · 0 评论 -
【Unity2022】Unity实现手机游戏操控摇杆(实现操控轮盘)
接下来就可以在其他所需获取输入的地方调用我们的GetInputDirection方法,来获取玩家的输入了,具体示例代码如下所示;创建两个UI图像,一个用于表示背景,作为父物体,命名为JoyStick,一个表示摇杆,命名为Center。背景图像选择一个圆,最好加点半透明的属性,最终完成图如下图所示。原创 2023-10-04 15:51:43 · 2516 阅读 · 0 评论 -
【Unity2022】Unity实现在两个物体之间连出一条线
DrawRope方法通过计算起点和终点之间的距离,并通过设置Line Renderer的位置数目来确定绳子上的点的数量。然后,我们在循环中使用Lerp函数在起点和终点之间插值来获取每个点的位置,最后将其设置为Line Renderer的位置。我们可以使用LineRenderer组件来实现连线,该是Unity中的一个内置组件,它允许我们在场景中绘制线条。同时要为Line Renderer组件的Materials属性提供一个Material,如下图所示,不然默认是没有Material的,所以线条会呈现紫色。原创 2023-10-04 13:57:55 · 4931 阅读 · 0 评论 -
Unity如何生成随机数(设置种子)
接下来,我们使用Random类的其他方法如Random.Range和Random.insideUnitSphere生成基于自定义种子的随机数。因此,要根据你的项目需求,做好选择。如果有人玩过我的世界,可能会知道种子这个东西,我们在玩我的世界的时候,都知道地图是随机生成的,但是也知道,同一个种子会生成相同的地图,这是为什么呢?其实随机数生成是基于种子的计算,相同的种子将产生相同的随机序列。默认情况下,Random类的种子是基于系统时间的,但你也可以使用Random.InitState方法自定义设置种子。原创 2023-09-28 22:05:29 · 2708 阅读 · 0 评论 -
Unity实现角色受到攻击后屏幕抖动的效果
导入这个组件之后,创建一个Chinemachine-2D Camera,接下来我们修改ChinemachineVirtualCamera的Noise,将其设置为Basic Multi Channel Perlin,然后设置Noise Profile为6D Wobble,6D Wobble表示在摄像机位置和方向上的随机扰动。也就是说,通过调整6D wobble的参数,我们可以在实现抖动效果的同时,还可以使摄像机在位置和方向上产生更自然的随机运动。较大的幅度和频率值将会产生更明显的随机抖动。原创 2023-09-18 09:35:40 · 1286 阅读 · 1 评论 -
Unity实现2D游戏跟随摄像机(平滑移动)
首先创建一个可用的玩家角色,写好移动逻辑,如果要使用在Unity商店中购买的资源,可以点击Window菜单栏> Package Manager选项,来打开Package Manager窗口,如下所示,然后下载你需要的资源。声明一个Transform类变量target,用于指定摄像机要跟随的目标物体,注意要声明成public的,这样我们可以在编辑器中将目标物体赋值给该变量。我们要创建的跟随摄像机具有平滑移动的功能,所以我们需要创建两个字段,一个字段用于表示跟随的物体,一个字段用于表示摄像机移动的平滑程度。原创 2023-09-11 10:01:55 · 1671 阅读 · 2 评论 -
Unity2D实现左右移动的敌人角色
这个名字最好使用GroundCheck,如果你使用了其他名字,在后续的脚本中是需要更改脚本内容的。为分清左右,我们再为敌人角色添加一个眼睛,新建一个圆形精灵,更改其颜色为黑色,然后使其成为Enemy的子物体,调整位置,刚刚好放在它的右边,当做眼睛。然后再Awake方法中获取地面检测点,并且为层赋值,接下来要去编辑器中,创建一个新的层,名叫Ground的层。需要注意的是,这里使用了2D物理引擎来进行地面检测,所以需要确保地面对象上有相应的Collider2D组件,并设置了正确的层,即Ground层。原创 2023-09-04 21:13:03 · 768 阅读 · 0 评论 -
Unity创建一个可移动的2D角色
我们首先创建一个角色,这里我新建了一个胶囊体用来当Player,一个Square用来当地面。接下来,为角色增加碰撞体和刚体,为地面增加碰撞体。然后我们为Player的刚体增加一个Z轴的约束,避免其东倒西歪。如下图所示:同时,为角色添加一个空物体作为子物体,用来向地面发射射线,检测是否触碰到了地面。将Ground Check置于角色的脚底。接下来我们要新建一个Layer,用于表示地面。将Square改名为Ground,并修改其Layer为Ground。接着新建一个CharacterControll原创 2023-08-28 16:01:26 · 974 阅读 · 0 评论 -
Unity多人游戏开发-Netcode for GameObject-官方文档中文翻译
Netcode具有自定义生成处理程序,用于替代UNet的自定义生成函数。请查看对象池以获取更多信息。在如今的多人游戏中,对象transform(变换)的同步是最常见的网络编码任务之一。确定你希望同步的transform轴序列化这些值将序列化的值作为消息发送给所有其他已连接客户端处理消息并反序列化这些值将这些值应用到相应的轴上乍一看,上述高级概述的任务似乎相对简单,但当你开始逐项实现时,几乎任何资深网络编码软件工程师都会认同:这一过程很快就会变得复杂起来。翻译 2023-08-19 22:14:14 · 4338 阅读 · 0 评论 -
Unity如何把游戏导出成手机安装包
本文章主要演示了,如何将制作好的游戏,导出成APK,安装到手机上。原创 2023-08-14 21:50:22 · 5829 阅读 · 0 评论 -
Unity的RigidBody2D组件的Body Type属性讲解
当讲到Unity中的物理模拟和碰撞检测时,RigidBody2D组件扮演着非常重要的角色。RigidBody2D是一种可以应用物理特性(如重力和碰撞)的组件,用于模拟2D物体的动力学行为。它有三种Body Type选项,分别是Dynamic(动态)、Kinematic(运动学)和Static(静态),它们定义了Rigidbody 2D的行为以及与碰撞器(Collider 2D)的交互方式。原创 2023-08-01 10:23:47 · 1038 阅读 · 1 评论 -
【Unity2022】Unity多人游戏开发教程-Netcode for GameObjects-使用命令行启动多人游戏
Windows10以前的多人游戏开发,有些项目或者教程可能使用的是UNet,当然也有别的方案,但是UNet已经被Unity官方弃用了,也就是说UNet是一个过时的方案,目前正在开发一种新的多人游戏和网络解决方案,名字叫做Netcode for GameObjects。本篇文章的多人游戏解决方案采用的就是Netcode for GameObjects。原创 2023-07-15 17:17:25 · 3763 阅读 · 0 评论 -
Unity如何使用手机进行调试(真机)
在Build Settings窗口中,左侧的Platform选择“Android”,右侧的Android面板中的“Run Device”选择你的手机,如果没出现,就点击一下旁边的Refresh按钮。首先打开手机 > 进入“设置”> 找到“关于手机”> 连续点击“版本号”,出现提示进入开发者模式后停止。然后进入“系统和更新” > 选择“开发人员选项” > 往下翻,在调试列表的范围内,有一个“USB调试”开关,把这个开关打开。同时选择USB连接方式,这里我们选择“传输文件”,注意,一定要传输文件!原创 2023-07-15 14:15:01 · 3942 阅读 · 1 评论 -
Unity2022修改外部脚本编辑器
随便打开一个项目,在菜单栏中选择“Edit”-> “Preferences…”,然后在“Preferences”窗口的左侧面板选择“External Tools”,到右侧面板点击“External Script Editor”下拉菜单,选择你想选用的外部脚本编辑器即可。原创 2023-06-30 20:08:37 · 875 阅读 · 0 评论 -
【Unity】为什么触发器事件连续检测时,只有第一次检测到了?当刚体移动或者有变动时,才能再次触发事件?
比如有一个区域,区域内使用触发器的OnTriggerStay2D来时刻检测,当玩家进入后,OnTriggerStay2D函数发现了一次,但之后就没有触发了。当对玩家的RigidBody组件进行任何的更改,哪怕是把Mass改了0.01,或者角色动了一下,又或者对触发器进行了修改。处于时刻监测状态的触发器,当刚体进入的瞬间,会检测到该物体,但接下来却检测不到物体了。修改Time To Sleep,该值表示当刚体有多久没动的时候,会进入休眠状态。处于休眠状态的刚体,是无法进行碰撞或触发检测的。原创 2023-03-13 23:18:33 · 406 阅读 · 0 评论 -
Unity为什么单击动画文件后,没有动画的预览窗口?
动画预览窗口只是被隐藏了,向上拖拉右下角的双横线,即可打开动画预览窗口。单击一个动画文件之后,没有出现动画的预览窗口(如图0.1)。如图0.3,动画预览窗口显现了。原创 2022-10-13 20:37:03 · 4647 阅读 · 2 评论 -
Unity报错Cannot configure avatar, inspector is locked如何解决?
比如,我们在Project窗口选中了一个模型,然后在Inspector窗口,单击Configure按钮,为模型进行骨骼定位的操作,但是单击Configure后,出现如图报错。如图(图0.2),在Inspector窗口的右上角,有一个小锁头,此时图中的状态表示锁定,单击小锁头,就可以解锁了(如图0.3)。这时我们再单击Configure…按钮,即可正常使用了(如图0.4)。出现这个问题,是因为你的Inspector窗口被锁了。原创 2022-10-13 19:01:18 · 1076 阅读 · 0 评论 -
Unity2020版本RenderSettings的命令位置(晕轮的属性)《Unity游戏开发入门经典》
在Unity游戏开发入门经典这本书中,第六章灯光里,有出现关于晕轮的设置,在Edit > Render Settings中,但书内的Unity已经是老版本了,在新版本中,关于晕轮的设置已经变了位置。在Unity2020中,单击“菜单栏Window > Rendering > Lighting”,这时会出现Lighting的窗口,单机Lighting窗口里的Environment栏,在“Other Settings”里面就能看见Halo Texture和Halo Strength两个关于晕原创 2021-08-06 19:17:52 · 1436 阅读 · 0 评论