![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
unity
mr.chenyuelin
纯属为个人笔记
展开
-
unity创建脚本自动添加头注
转载:https://itmonon.blog.csdn.net/article/details/117330558using System.Collections;using System.Collections.Generic;using UnityEngine;using System.IO;public class FirstComment : UnityEditor.AssetModificationProcessor{ public static void OnWillCr转载 2021-05-28 20:02:25 · 242 阅读 · 0 评论 -
unity切换场景,物体不销毁
在跳转场景的触发事件中,将背景音乐绑定的对象做成预制体,上面绑定了播放音乐的脚本test1和audioSource组件test1.csusing System.Collections;using System.Collections.Generic;using UnityEngine;public class test1 : MonoBehaviour{ //public static test1 instance; private AudioSource source;原创 2021-05-19 11:50:29 · 2496 阅读 · 0 评论 -
Unity 使用JSON实现本地数据保存和读取
转载:https://czhenya.blog.csdn.net/article/details/78057062目前接触的unity 解析json 有几种:1.比较流行的listjson(数据对象必须和json一对一)2.目前unity自带 JsonUtility(不能解析复杂的json)3.Newtonsoft.Json (推荐可以解析复杂的json,不需要和json字段一对一 ,灵活)(下载地址:https://github.com/SaladLab/Json.Net.Unity3D/rel转载 2021-05-16 20:54:18 · 1530 阅读 · 0 评论 -
unity2020+vs2017成功连接mysql
我的环境:unity2020.1.17 vs2017 mysql5.7这里的mysql for visual studio 1.2.8不建议高于这个版本,其它两个的随意下载完上面这些确保你的vs可以显示:然后准备一下东西:下面前5个都在C:\你的unity编辑器路径\Editor\Data\Mono\lib\mono\2.0,不要用别人的可能不行在unity中新建Plugins下放进去,这里System.Data和System.Drawing放进去报错就不要放进去了,中间3个必须放进去,最原创 2021-04-26 21:02:37 · 991 阅读 · 1 评论 -
unity基础模块-1.缓存池模块
为什么要有缓存池?因为我们在实例化物体,再销毁物体,但这样并没有释放内存,而只是断开堆上引用。缓存池形象的跟衣柜的功能有点像,比如我们买了一件衣服,不穿了放进衣柜的衣服区域,等下次想穿了,再从里面拿出来,而不是重新去买一件,难道你是土豪?哈哈哈。缓存池就是我创建一个物体,使用完了隐藏即可,再需要显示即可,不需要销毁,当然也会造成会有一些物体 在内存中没有释放,但也减少了cpu和内存的消耗,提高性能。操作:在project下新建Resources文件夹(不要改名),不然找不到预制体在新建Test文件原创 2021-04-20 22:00:01 · 219 阅读 · 0 评论 -
unity简单理解保存场景和载入场景
转载:https://blog.csdn.net/kmyhy/article/details/78643293目录概念Player Prefs利用BinaryFormatter保存数据和json格式保存数据概念在 Unity 中关于保存,有 4 个关键的概念:PlayerPrefs: 这是一个特殊的缓存系统,在两次游戏过程中为玩家保存简单设定。许多新手程序员误以为他们能够用它来保存游戏存档,但这不是什么好的做法。它只允许你保存简单的东西,比如图形声音设置、登录信息或者其它基本的用户相关的数据。序列转载 2021-04-14 22:29:28 · 2259 阅读 · 0 评论 -
unity5.0的StateMachineBehaviours
作用:Unity中在人物播放某个动画时往往伴随着动画音效的播放,或则是人物打击的粒子特效播放旧方法:Animation(Ctrl+6)动画中添加Event事件,然后填写注册的方法名,Unity会在挂载该动画的物体上查找该方法,在动画播放到定义事件的那一帧时,会执行该方法。使用StateMachineBehaviours明显会方便很多例子:在人物攻击时播放攻击特效,攻击动画结束关闭攻击特效首先类继承StateMachineBehaviour,然后重写OnStateEnter,OnStateExit方法原创 2021-04-05 20:13:52 · 329 阅读 · 0 评论 -
unity让特定层之间设定碰撞关系
unity中我们普遍使用的是碰撞器来实现各个物体的碰撞体积,例如Box collider, Sphere Collider。在实现游戏的过程中,如果不想要物体与特定物体产生碰撞,或反之,只想让碰撞发生在特定物体之间时,我们就需要配置layer collision matrix。首先我们给予需要特殊照顾的物体一个自己的layer,这里我想要这个layer里的物体不与玩家碰撞。当然我们也要为我们的玩家设置自己的层 layer。之后在 Edit -> Project Settings -> P转载 2021-04-03 20:13:24 · 4765 阅读 · 0 评论 -
unity-小白学习Animator建立动画的状态切换
AnimatorAnimator窗口站立的3个动画攻击的3个动画相信你们都学过Animator的一些东西,这里讲在建立状态切换的一些用法,让你状态切换看起来简洁,代码容易理解,不易出现bugAnimator窗口首先是Animator窗口刚开始只有Any state,Entry,ExitAny state:任意状态切换,一般用于死亡状态切换,所以不使用Any state更能看清楚哪些状态之间能切换,哪些不能Entry,默认动画人口,一般是ilde站立Exit:动画退出出口,注意一定要加退出动画的原创 2021-04-01 16:46:07 · 6966 阅读 · 2 评论 -
untiy使用CinemachineFreeLook完成第三人称相机跟随
这个插件用法很多,只讲我用到的先下载:再点击create freelook camera会创建CM FreeLook1物体挂载CinemachineFreeLook组件,同时它会绑定我们的相机,相机下附加CinemachineBrain组件再讲改里面的参数Follow:为我们的人物LookAt:相机始终看向的地方,可以新建空物体,放在人物头上,invert:是反向,就是时鼠标移动方向与相机旋转方向一致后面3个参数:我感觉调相机到合适的位置,大家照搬就可以了脚本里,相机方向与玩家移动方原创 2021-03-30 21:28:55 · 2820 阅读 · 0 评论 -
Unity 按空格一直触发Button点击事件的问题
#解决这是由于Button中Navigation(导航)功能导致的。将导航设置为None即可。真是气死我了,我说为什么点击完按钮界面,按空格就一直触发界面,难搞原创 2021-03-29 18:01:34 · 1110 阅读 · 1 评论 -
看懂unity的Animator中的Apply Rootmotion
作用:Apply RootMotion让角色动画驱动角色运动,提高了动画的使用效率这就有两种情况,比如跑步动画1.当我们的动画是原地跑的时候,这时候使用Apply RootMotion的时候,人物还是在原地跑,就不需要用了,需要代码手动控制人物的移动以下代码不可运行: private void CaculateMove() { move.Set(playerInput.Move.x, 0, playerInput.Move.y); move *= Ti原创 2021-03-28 10:25:49 · 5235 阅读 · 1 评论 -
unity获取场景当前播放动画
using System.Collections;using System.Collections.Generic;using UnityEngine;public class PlayerController : MonoBehaviour{ public Animator animator; //当前动画信息 private AnimatorStateInfo currentStateInfo; //获取指定动画 private int idleHash原创 2021-03-27 22:16:56 · 1600 阅读 · 0 评论 -
unity根据滑动条的进度完成场景加载
提醒:c#脚本知识中含有进阶知识呕说明:开始菜单界面和加载界面是在同一个场景里,但加载界面刚开始不显示,当点击开始游戏后,激活加载界面,并同时更新滑动条进度,滑动条加载完成后,出现游戏场景物体挂载情况:1.playgame按钮挂载SceneChange脚本,并同时在按钮点击事件上绑定Scenechanges方法2.CanvasLoading画布挂载Loading脚本3.sllider在按钮点击事件上绑定CanvasLoadin物体的OnSliderProgressValueChange方法lo原创 2021-03-25 18:04:04 · 306 阅读 · 0 评论 -
unity的final ik的Hand Poser组件
Hand Poser组件:调整手指位置PoseRoot:赋值的为参考的部分。根据该参考的部位,调整自身相应部分。通俗点讲,自身物体为A,复制一份自身物体为B(不带HandPoser),将B赋值到A的PoseRoot。B以后的状态,就是A的参考状态了。改变B的属性,比如旋转,A相应物体的属性,也会跟着改变需求:让人完成如下动作:操作:人物还是挂载full body biped ik1.将武器放在人物右手指下的子物体,然后左手关节Hand_l添加hand poser组件,复制一个Hand_l放到原创 2021-03-21 18:01:05 · 744 阅读 · 1 评论 -
unity3d的5.Prefab预设体
转载:https://blog.csdn.net/qq_37160769/article/details/109508466和https://itmonon.blog.csdn.net/article/details/94574380Prefab我们通常称为预设体作用: 在开发一些功能的时候, 将一些能够复用的对象制作成预设体(可以是模型,窗口,特效等),可以将预设体存放到 Resources 目录之下,通过动态加载的方式加载到场景中并进行实例化。优点: 1、频繁创建物体时,使用prefa转载 2021-03-20 22:18:28 · 342 阅读 · 0 评论 -
unity的final ik组件3.Aim ik
实现功能创建动画完成持枪动作使武器瞄准物体功能:利用现有模型和武器实现枪口瞄准物体创建动画现在创建动画的步骤应该很熟吧:先创建Animation文件夹,在PolygonHeist下的RifleAnimsetPro动画拖入文件夹,在创建一个动画状态机将需要的站立动画,拖到Animator窗口,然后双击站立状态,在Inspector窗口中的Animation下将Loop time勾选,就是重复播放动画,apply即可,如下最后将动画状态机拖进人物的Animator中的Controller就好了这原创 2021-03-20 12:49:32 · 1518 阅读 · 0 评论 -
unity3d的ik2.Grounder Full body Biped组件
Grounder Full body Biped组件是用来检测人走路时,比如前方有楼梯就会踏上楼梯注意也要添加FullBodyBiped IK组件,不然Grounder Full body Biped将不会生效,偶然发现不知道为什么将Animator中的Forward设为0.5,让人物动起来Layers选择Everything,就会开始检测前方是否有物体并踏上如果选nothing,则不检测当它不存在,如下Max Step:最大抬脚高度height offset:踩上去之后离楼梯面的高度,0原创 2021-03-18 22:50:19 · 507 阅读 · 0 评论 -
unity3d的Final IK 之核心组件1.full Body Biped Ik
在对应模型上添加Full Body Biped Ik组件两个脚本和Animator是控制模型移动的,添加完出现以下画面:如果骨骼处出现红色或是黄色,将对应的骨骼处进行旋转调节至蓝色即可运行后在Scene视图中查看这里以左胳膊为例:将position weight调至1,发现人物将手抬起来还可以选中左手骨骼,调该节点坐标下移,像捡东西一样下移,会发现身体都会随着蹲下...原创 2021-03-18 21:35:43 · 1277 阅读 · 0 评论 -
unity3d-利用mixamo使模型完成动画一整套流程
1.新建平面和从unity商店下载一个synty studio里的Starter pack模型2.下载好,将最后一个预制物拖进场景进入https://www.mixamo.com/免费的动作资源网站点击第3个按钮上传该路径下的Characters上传成功如下,记得要是fpx文件,否则上传失败点击需要的舞蹈后,点击下载将格式改如下图就可以下载后放进项目的文件夹中将动画Animation的pig中的 Animation type改为humanoid,点击apply这里补充一下:G原创 2021-03-18 18:35:28 · 2625 阅读 · 1 评论 -
unity的九宫格切割
我们新建Button,然后我们需要一张图片修改图片类型如下:Editor GUI and Lagacy GUI适用于ngui,而Sprite适用于ngui然后点击Sprite Editor,如果首次操作会报错,请按如下操作:点击Package Manager-》将package :改为Unity Registry下载2d Sprite即可将九宫格的上下左右四条线拉成如下图:原理:左下、左上、右上、右下代表缩放不变的区域,而缩放仅改变1-4的4块区域。这样可以保证缩放时,4个角不变形,然原创 2021-02-22 19:38:45 · 5900 阅读 · 0 评论 -
unity mesh入门-2.对平面图形贴图
转自:https://blog.csdn.net/nanggong/article/details/54728823我这里是有写法线的,这位博主没写也能显示出来,很奇怪?我没写法线,就会全黑。。。正方形/三角形贴图void DrawTriangle() { this.GetComponent<MeshRenderer>().material = mat; Mesh mesh = GetComponent<MeshFilter转载 2021-02-05 11:19:54 · 1180 阅读 · 0 评论 -
unity mesh入门画三角形、正方形、圆
画图形mesh简介画三角形画正方形画圆mesh简介mesh为网格组件,3D模型是由多边形拼接而成,而多边形实际上是由多个三角形拼接而成的。Mesh组成:1、顶点坐标数组vertices2、顶点在uv坐标系中的位置信息数组uvs3、三角形顶点顺时针或者逆时针索引数组triangles4、MeshFiler组件,用于增加mesh属性5、MeshRender组件,增加材质并渲染出来。6、可能还需要每个顶点的法线的数组normals画三角形我们简单的2d三角形,只需用到vertices和tri转载 2021-02-04 16:17:31 · 1625 阅读 · 0 评论 -
unity3d-4.地形系统
Terrain创建和编辑地形Create Neighbor TerrainsPaint TerrianRaise or Lower TerrainPaint HolesPaint TextureSet HeightSmooth HeightStamp TerrainPaint Tree(树)Wind Zone(风区)Paint Details(草和其它细节)创建和编辑地形从菜单中选择 GameObject > 3D Object > TerrainCreate Neighbor Terra原创 2021-01-31 14:52:00 · 2070 阅读 · 1 评论 -
unity3d-3.创建聚光灯剪影
导入灰度图像。白色像素意味着完全光照强度,黑色像素意味着没有光照。纹理的边界必须是完全黑色的修改图片:Texture Type 更改为 Cookie启用 Alpha From GrayscaleAlpha Source改为From Gray Scale,之前没改全白了,血的教训然后将图片拖到light的cookie即可,可以把强度调高点原图:效果图:...原创 2021-01-26 10:06:48 · 435 阅读 · 0 评论 -
Unity3D-2.导航(Navigation)
导航和寻路构建导航网格步骤创建导航网格代理创建导航网格障碍物创建网格外链接自动生成网格外链接构建高度网格导航区域和成本导航区域区域遮罩 (Area Mask)构建导航网格步骤菜单:Window > AI > Navigation构建导航网格可以通过2 个快速步骤完成:1.将地板、障碍物等物品标志为Navigation Static2.然后在Bake画面,调完参数,点Bake即可Agent Radius 定义代理中心与墙壁或窗台的接近程度。 - Agent Height 定义代理可原创 2021-01-23 12:55:44 · 614 阅读 · 0 评论 -
Unity3d角色控制器CharacterController的用法
角色控制器可以让你更容易的处理有有碰撞的运动,同时不用处理刚体。(也就是说角色控制器负责处理角色的移动,如果添加角色控制器,就不用在添加刚体组件)角色控制器不受力的影响,并且只有当你调用move函数时才会移动。他的运动收碰撞的约束。Slope Limit爬坡限制:小于等于此角度可以上坡Step Offset台阶高度:Skin Width 皮肤宽度:额外的增加这段距离可以触发碰撞, 一般其值很小但不为0Min Move Distance:0,太多不行,太小动不了Center:中心点坐标Radi.原创 2021-01-14 11:53:50 · 1955 阅读 · 0 评论