![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity学习笔记
文章平均质量分 58
就一枚小白
游戏客户端开发码农一枚~~~加油学习~~~
展开
-
Unity学习笔记--使用 VisualStudio 反编译 dll 代码查看源码
Unity学习笔记--使用 VisualStudio 反编译 dll 代码查看源码原创 2023-09-15 12:11:07 · 4272 阅读 · 0 评论 -
Unity学习笔记--如何优雅简便地利用对象池生成游戏对象(进阶版)LRU + 对象池
Unity学习笔记--如何优雅简便地利用对象池生成游戏对象(进阶版)LRU + 对象池原创 2023-08-10 19:31:35 · 2318 阅读 · 0 评论 -
Unity学习笔记--EventSystem事件系统在使用上需要注意的地方(很基础,但是很多人会忘记!!!)
Unity学习笔记--EventSystem事件系统在使用上需要注意的地方(很基础,但是很多人会忘记!!!)原创 2023-06-30 14:22:36 · 577 阅读 · 0 评论 -
Unity学习笔记--C#事件系统的实现与应用
Unity学习笔记--C#事件系统的实现与应用原创 2023-05-07 19:04:58 · 551 阅读 · 0 评论 -
Unity学习笔记--在Editor下实现一个有下拉菜单的文件路径记忆功能(保姆级教程)
Unity学习笔记--在Editor下实现一个有下拉菜单的文件路径记忆功能(保姆级教程)原创 2023-02-23 11:57:53 · 2226 阅读 · 0 评论 -
Unity学习笔记--怎么用代码自动化Create Prefab Variant
Unity学习笔记--怎么用代码自动化Create Prefab Variant原创 2023-02-22 11:52:03 · 529 阅读 · 0 评论 -
Unity学习笔记--如何用代码在Hierarchy窗口中选取多个符合条件的游戏对象?
Unity学习笔记--如何用代码在Hierarchy窗口中选取多个符合条件的游戏对象?原创 2023-02-10 17:47:09 · 973 阅读 · 0 评论 -
Unity学习笔记--如何用代码Copy Component并且Paste到其他游戏对象上?
Unity学习笔记--如何用代码Copy Component并且Paste到其他游戏对象上?原创 2023-02-06 19:29:00 · 2214 阅读 · 0 评论 -
Unity学习笔记--实现一个简单的序列化反序列化工具
Unity学习笔记--实现一个简单的序列化反序列化工具原创 2023-01-30 11:08:34 · 689 阅读 · 1 评论 -
Unity学习笔记--如何在Unity中把自己的代码打包成dll给别人使用?(纯保姆式教学,看完还不会,今晚八点,来沙城砍我)
Unity学习笔记--如何在Unity中把自己的代码打包成dll给别人使用?(纯保姆式教学,看完还不会,今晚八点,来沙城砍我)原创 2023-01-18 16:01:40 · 4611 阅读 · 0 评论 -
Unity学习笔记--FixedUpdate真的是固定时间调用一次吗?
Unity学习笔记--FixedUpdate真的是固定时间调用一次吗?原创 2023-01-17 18:05:21 · 3380 阅读 · 4 评论 -
Unity学习笔记--如何在Unity运行cmd?并且在Unity中利用cmd操作svn(例如生成svn--diff文件)
Unity学习笔记--如何在Unity运行cmd?并且在Unity中利用cmd操作svn(例如生成svn--diff文件)原创 2023-01-17 17:01:11 · 1802 阅读 · 0 评论 -
Unity学习笔记--File.ReadAllLines和File.ReadAllText的使用以及注意事项(一定要看到最后!!!)
Unity学习笔记--File.ReadAllLines和File.ReadAllText的使用以及注意事项(一定要看到最后!!!)原创 2023-01-16 12:17:57 · 3774 阅读 · 0 评论 -
Unity学习笔记--详细介绍CacheServer、部署方法、以及在Unity中的位置
Unity学习笔记--详细介绍CacheServer、部署方法、以及在Unity中的位置原创 2022-12-03 15:57:34 · 3413 阅读 · 0 评论 -
游戏客户端--个人学习路线总结、指北
游戏客户端--个人学习路线总结、指北原创 2022-09-17 09:34:07 · 2713 阅读 · 0 评论 -
Unity学习笔记--序列化与反序列化 概念 + 应用
Unity学习笔记--序列化与反序列化 概念 + 应用原创 2022-09-11 11:24:12 · 738 阅读 · 0 评论 -
Unity学习笔记--Vector3怎么设置默认参数
直接上代码原创 2022-06-27 16:39:09 · 1460 阅读 · 0 评论 -
Unity--Configurable Joint——实战带你了解可配置关节
关节组件将刚体连接到另一个刚体或空间中的固定点,关节施加使刚体移动的力,而关节限制功能可以限制该移动。就像是动物的关节一样,例如一个关节连接着两个节点,那么其中一个节点的移动或旋转可以带动另外一个与其连接的节点发生相应的改变。关节赋予刚体以下自由度:Configurable Joint可配置关节是Unity物理引擎中非常强大的一个部分,该关节包含其他关节类型的所有功能。其它关节包括角色关节 (Character Joint) 、固定关节 (Fixed Joint)、铰链关节 (Hinge Joint)、弹原创 2022-06-24 16:04:32 · 3650 阅读 · 1 评论 -
Unity学习笔记--自定义文件的处理:Scripted Importers的简单使用
目录前言Scripted Importers基本介绍应用实例第一步第二步效果关于ctx.SetMainObject()更多使用方法前言我们知道,当我们把一些Unity支持的一些特定后缀名资源导入到Unity的Project中时,点击这个资源,查看Inspector窗口,我们可以修改这个资源的一些属性。比如我导入了一张图片,在Project窗口点击这个图片,再点击Inspector窗口,就可以看到这些属性。但是需要注的是:Unity只会对特定的资源做一些处理。那如果是Unity没有进行处理的资源原创 2022-05-19 16:35:50 · 1232 阅读 · 0 评论 -
Unity学习笔记--Editor、Resource等常用文件夹的用处
前言我们在使用Unity进行开发的时候,文件夹的名字是不可以随便取的,有些文件夹的名字是配合Unity一起使用的,所以为了避免造成奇奇怪怪的问题,在此记录下。文件夹名字EditorEditor Default ResourcesPluginsResourcesStreamingAssetsEditorEditor文件夹可以在根目录下,也可以在子目录里,只要名子叫Editor就可以。比如目录:/xxx/xxx/Editor和/Editor是一样的,无论原创 2022-05-19 15:09:20 · 3203 阅读 · 2 评论 -
Unity学习笔记--代码动态创建游戏对象的三种方法
目录一、new GameObject()。重载方法二、Object.Instantiate重载方法三、GameObject.CreatePrimitive重载方法一、new GameObject()。重载方法public class Example : MonoBehaviour{ private void Start() { GameObject go1 = new GameObject(); go1.name = "go1"; g原创 2022-05-19 14:36:42 · 4108 阅读 · 3 评论 -
Unity学习笔记--实现资源导入Unity时自动配置属性:AssetPostprocessor的简单使用
目录前言解决方案什么是AssetPostprocessor注意Unity本身已处理的文件扩展名应用案例AssetPostprocessor 的一些其他方法前言最近项目中导入的素材比较多,素材里面有些属性需要策划一个一个进行配置,很麻烦。所以想着能不能在导入素材的时候,Unity自动帮我们配置好我们需要的值。解决方案我们直接使用Unity提供给我们的AssetPostprocessor,就可以解决这个问题了,而且代码也很简单。什么是AssetPostprocessor官方描述:AssetPost原创 2022-05-19 11:29:02 · 1457 阅读 · 0 评论 -
Unity学习笔记--LayerMask的使用方法和易错点
目录前言LayerMask简介例子怎么获取LayMask方法一方法二方法三使用场景场景一场景二总结前言最近需要使用代码来动态获取某一个游戏对象的图层等。学习了下,来此记录。LayerMask简介首先来说说Layer:图层。其实就是下方这个。LayerMask直译过来就是图层蒙版。具体是什么意思我们来看看具体的例子就明白了。例子我们在使用Unity提供的物理系统的时候,经常需要发射射线或者检测碰撞体等等。比如下面这个方法public static Collider[] Over原创 2022-05-07 11:15:26 · 5506 阅读 · 0 评论 -
Unity学习笔记--2D单向平台制作方法
Unity2D单向平台的制作原创 2022-02-12 20:35:05 · 3345 阅读 · 0 评论 -
Unity学习笔记--字典序列化问题以及解决办法
前言最近在做自定义按键的时候,想用字典存储按键类型和所对应的值。但是发现用JsonUtility.ToJson(data)转Json是转不了的,也就是字典是不可以被序列化的,而且在Unity的Inspector窗口也编辑不了。解决办法比较死板的办法就是用两个List列表去存储。因为List是可以被序列化也可以被转换为Json字符串的。缺点就是代码比较难调试,还要多加几个方法去处理。...原创 2022-01-18 23:01:57 · 3386 阅读 · 0 评论 -
Unity学习笔记--FSM有限状态机的实现
目录前言具体实现步骤一:列举出所有的状态和转换条件步骤二:创建所有状态的基类步骤三:创建所有状态的管理者步骤四:添加不同状态站立状态:Stand跳跃状态:Jump下蹲状态:Crouch步骤四:创建玩家控制器步骤四:运行源码工程前言本文章是基于我的另一篇文章做的拓展,关于FSM的概念和状态模式大家有兴趣的可以看看。我这里就直接上源码了。文章最后会给出工程地址。浅谈设计模式和其Unity中的应用:四、状态模式具体实现步骤一:列举出所有的状态和转换条件/// <summary>/// 状原创 2022-01-05 12:24:05 · 2672 阅读 · 0 评论 -
Unity学习笔记--如何优雅简便地利用对象池生成游戏对象
目录前言提前准备实现步骤步骤一:创建对象池管理者步骤二:创建抽象工厂步骤三:子弹工厂代码步骤四:如何生成游戏对象步骤五:如何回收游戏对象添加新对象池注意事项最后前言最近在复习自己所做的FPS项目,发现之前写的对象池代码简直就难以入目。。。加上我最近学习了工厂模式。我就优化了下我的对象池代码。更新后:代码更加简洁,更加易懂,操作方便,代码耦合性降低。提前准备注意:本例子用的是子弹预制体,大家可以换其他的预制体。1.我们需要在Assets文件夹下创建一个Resources文件夹2. 需要在原创 2022-01-04 14:37:27 · 2452 阅读 · 3 评论 -
Unity学习笔记--实现UI元素跟随3D物体
目录前言一、Camera的渲染模式为ScreenSpaceOverlay思路二、Camera的渲染模式为ScreenSpaceCamera思路两种情况合并代码使用方法前言首先要分摄像机的渲染模式Camera的渲染模式为ScreenSpaceOverlayCamera的渲染模式为ScreenSpaceCamera一、Camera的渲染模式为ScreenSpaceOverlay思路首先理解ScreenSpaceOverlay渲染模式ScreenSpaceOverlay—这个模式不再需要UI原创 2021-11-29 14:36:46 · 5309 阅读 · 0 评论 -
Unity学习笔记--超简单:两个游戏对象直接用线连接(UI和世界坐标下均可)
目录UI用效果图UI代码示例挂载示例世界坐标用挂载示例效果图世界坐标代码示例我们分两种情况,一种是UI上连线,一种是世界坐标下连线。UI用效果图UI代码示例public class DrawLine : MonoBehaviour{ [Header("Point")] public RectTransform startPoint;//起始点,UI用 public RectTransform endPoint;//终点,UI用 public GameObject原创 2021-11-19 15:10:01 · 5768 阅读 · 0 评论 -
Unity学习笔记--Time.timeScale=0暂停的时候实现动画效果
首先上效果图目录重点重点一重点二重点三具体实现总效果代码重点重点一首先当你想用Time.timeScale=0使游戏暂停的时候,FixedUpdate是不会被调用的,Animation也不会继续播放,所以我们只能用代码去控制动画的播放了。重点二不可以用Lerp插值和SmoothDamp函数来用代码实现动画的播放。他们都需要用到Time.timeScale,但是Time.timeScale=0,所以他们也不考虑了。重点三realtimeSinceStartup与timeScale无关原创 2021-11-17 14:29:13 · 4414 阅读 · 0 评论 -
Unity学习笔记--3D游戏角色相对于屏幕移动
引言最近在做FPS项目的时候,发现人物移动需要一点小小的处理。我的移动向量为:Vector3 move = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));如果直接把Player的transform.positon += move * Time.deltaTime;的话那么就会出现一些违和的画面。比如我现在面向的方向是正右方,我按住键盘的UpArrow,我们的原创 2021-08-16 11:20:45 · 327 阅读 · 0 评论 -
Unity学习笔记--解决使用JsonUtility读取Json文件时报空指针的问题
可能是没有序列化。加上类的上面加上[Serializable]就可以了。如果是这样的格式:{ "StudentDataList": [ { "Id":"1", "Name":"张三", "StudentObjectScore": [ { "ObjectName":"Chinese",原创 2021-07-28 22:29:32 · 761 阅读 · 1 评论 -
Unity学习笔记--实现枪械开镜
引言最近做FPS游戏的时候,有些枪需要开镜,不太明白怎么怎么调整镜头。之后百度学习了下,在此记录。步骤我们现在有个MainCamera,在瞄准器的前面一点的位置新建一个GunCamera,然后调整它的Field of View(需要比MainCamera小)。之后创建一个空的材质(或者你自己写了一写瞄准的Shader也行),颜色默认为黑色,我这里瞄准器下面有个子物体,里面是瞄准镜(注意“器”和“镜”),直接把之前设置好的Material添加到瞄准镜里面。然后在枪的脚本新建三个变量,一个是Materi原创 2021-07-18 15:57:46 · 908 阅读 · 1 评论 -
Unity学习笔记--实现一个简单的2D地图编辑器
效果图步骤一首先我们新建一个3D的项目(3D和2D都行)。步骤二在Assets文件夹下面新建一个Picture文件夹存放我们的图片。我把我工程的素材发出来。墙地面之后把素材拖入到Picture文件夹下面。步骤三在Hierarchy窗口下创建一个Sprite,把我们的图片托上去。之后在Assets文件夹下面新建一个文件夹叫做Prefab,把我们的游戏物体拖进去。现在我们的Prefab文件夹下面应该有两个预制体了,一个地面一个墙。步骤四在Assets文件夹下新建一个Script原创 2021-07-17 16:13:56 · 3811 阅读 · 2 评论 -
Unity学习笔记--实现FPS游戏屏幕震动效果
步骤一新建一个类,叫做CameraSpringUtility,不继承MonoBehaviour代码如下using System.Collections;using System.Collections.Generic;using UnityEngine;public class CameraSpringUtility{ public Vector3 Values; private float _frequence; private float _damp; p原创 2021-07-15 16:31:04 · 420 阅读 · 0 评论 -
Unity学习笔记--解决NavMeshAgent无法到达的点
引言我们在用NavmeshAgent的时候,比较复杂的场景Bake之后的可走范围可能分布会不均匀,就是说有些地方是不允许走的。例如下面的图。我们让NPC移动的时候需要生成一个随机点,让NPC走过去,但是假如我们随机生成的点在不可走的地方咋办,此时Unity的NavmeshAgent有个API:SamplePosition(…)这个函数大概意思就是把当前点替换为最近的NavmeshAgent可以走到的点,这样随机生成的点就不会出问题了。但是还有一个问题,假设生成的点在中间这个区域怎么办?虽然这个区原创 2021-07-14 12:22:44 · 3719 阅读 · 1 评论 -
Unity学习笔记--让Canvas、UI跟随游戏物体
引言我们在制作游戏的时候,经常用到画布Canvas。比如我最近正在制作的FPS游戏,需要显示敌人的血条,这就需要显示UI了,但是血条UI怎么显示在敌人的正上方呢,因为做之前我不知道有啥好的方法可以直接把UI和游戏物体给连接起来,让他们互相约束(本人Unity菜鸟,轻喷)。方法第一种想到的方法就是在根目录下建一个画布,然后给一个Image,调整Image的位置和游戏物体联系起来。做起来效果还可以,但是代码麻烦了点,需要改变位置,改变旋转,改变缩放,做的更细致甚至要自己写遮挡的逻辑。(比如游戏物体走到某个原创 2021-07-14 10:20:33 · 2066 阅读 · 1 评论 -
Unity学习笔记--怎么打断当前动画并且重新播放当前动画(超简单一步实现版)
引言最近在做FPS游戏,发现射击的时候需要根据玩家输入实时射击,也就是需要实时播放相应的射击动画,那么在射击播放播放的时候,再次射击,就需要重新播放当前动画。步骤我们现在有一个idle动画和一个Fire动画,需要射击的时候马上播放射击动画,那么我们可以从idle拖出一个Transition链接到Fire,条件为触发器trigger,然后从Fire拖出一个Transition,链接到idle,没有条件(需要勾选ExitTime)。然后最重要的来了,我们从Fire拖出一个Transition,把它与自身链原创 2021-07-10 09:49:42 · 3130 阅读 · 4 评论 -
Unity学习笔记--NavMeshAgent可能造成原地旋转的问题
引言最近做的Rpg游戏中,我用的NavMeshAgent来控制角色的移动,当我的角色移动到敌人面前的时候,它会攻击我(我设置的攻击状态的时候NavMeshAgent的destination是敌人自己的posion,以至于敌人不会选取其他位置为目标点),此时我移动到它攻击距离的另外一个位置,此时问题出现了(后方统一将敌人初始攻击的旋转方向为位置一,玩家移动之后的旋转方向为位置二)分析由于我设置敌人在攻击我的时候,它的Transform是要LookAt玩家的,所以此时敌人的旋转方向为位置二,此时NavM原创 2021-07-02 17:11:26 · 3014 阅读 · 5 评论 -
Unity学习笔记--Extension Method 扩展方法
引言最近跟着麦克学习Unity的时候,学习到了类的扩展方法。比如你现在有一个已有的类,你想给它加一个方法,当然如果是你自己写的类可以直接在这个方法里面写,但是如果是Unity自带的类,我们不可能直接去编辑它们,我们只是去利用这个类然后加上一些我们自己的方法。所以我们就可以用到Extension Method 扩展方法。附:Unity官方教程:教程注:下方步骤均为硬性要求,并且以扩展Transform类为例子。步骤一首先创建一个类。不继承MonoBehaviour。将该类设置为Static,也就原创 2021-07-02 16:22:09 · 544 阅读 · 0 评论