unity笔记
文章平均质量分 52
驰愿
这个作者很懒,什么都没留下…
展开
-
HybridCLR 热更新笔记 GF接入
Unity 热更新 Hybrid GF框架 GameFramework框架 GF框架使用HybridCLR原创 2023-02-09 13:18:32 · 3380 阅读 · 0 评论 -
Unity 使用RVO2(orca)算法
动态避障算法 RVO ORCA RVO2原创 2023-01-31 12:44:27 · 3444 阅读 · 2 评论 -
Unity 2d碰撞检测
Unity 射线检测函数,碰撞函数原创 2023-01-13 18:04:34 · 3957 阅读 · 0 评论 -
Unity 容易被坑的点
坐标打印输出Unity Vector3 的Tostring 方法 只保留一位小数。如果需要更精确的数据需要单独输出 x,y,z。直接使用Vector3.Tostring 比较容易产生误解。发现数据与预期不符原创 2022-05-26 11:28:01 · 691 阅读 · 0 评论 -
FGUI GTween 完成事件不回调的问题
最近有个项目出现了动画完成 事件不回调的问题, 一开始还以为是FGUI的bug,在社区也没找到答案。只能加日志一探究竟。一、首先 FGUI 里面的动画底层实现都是 GTweener。包括 FGUI 编辑器制作的动画, 通过代码创建的 GObject.TweenMove 或者控件封装的动画 GProgressBar.TweenValue().二、所有的GTween都被 对象池管理(TweenManager)这里就有一个很关键的地方。一个被对象池管理的对象,持有其引用就有可能会引发问题。来段有问题的原创 2022-05-18 19:59:19 · 1627 阅读 · 0 评论 -
Unity内置着色器
https://www.wenjiangs.com/doc/3mfx2zti内置着色器的特定用途Standrad : 内置着色器FX : 灯光和玻璃效果GUI 和 UI : 用于用户界面图形Mobile : 简化移动设备的高性能着色器Nature : 用于树和图形Particles : 粒子系统效果Skybox : 用于渲染背景环境Sprites : 用于 2D sprite系统Legacy : 被标准着色器取代的众多旧着色器常用的着色器Vertex-Lit: 顶点光照着色器。Di原创 2022-05-09 16:26:15 · 824 阅读 · 0 评论 -
使用Rider开发Unity项目
Rider下载配置 Unity1.Editor -> Preferences -> External ToolsExternal Script Editor 选择 Rider 程序2.Windows->package Manager搜索下载 JetBrains Rider Editor3.Unity 可能需要重启生效。原创 2022-05-09 11:48:31 · 2566 阅读 · 0 评论 -
Unity 动画控制器
动画状态参数参数说明Speed动画剪辑播放速度 实际速度为 Speed * MultiplierMultiplier动画剪辑播放速度 实际速度为 Speed * Multiplier 点击右侧的Parameter开启NormalizedTime默认范围0-1 用来判断当前动画剪辑播放到的比例CycleOffset范围0-1 用来控制进入该状态的动画偏移量 (如果动画是循环播放的,循环到第二次播放时不会偏移)Mirror人形动画才有用FootIK原创 2021-07-30 18:17:54 · 2760 阅读 · 0 评论 -
Unity Texture Mesh Type 选项
MeshType 只针对于 SpriteRenderer 有效, 如果不使用这个设置哪个选项都无所谓啦FullRect 是生成一个矩形网格可以看到片 SpriteRenderer 只有一个矩形线框Tight 会根据图片的alpha 通道生成相应的网格。对比下两者的优劣FullRect 网格数少,如果生成的物体数量很多,用这个比较好Tight 网格数多但是根据alpha 裁剪了透明的网格,减少了渲染, 如果图片是少量存在并且超级大,用这个比较合适。...原创 2020-09-07 00:45:09 · 4772 阅读 · 0 评论 -
Texture WrapMode
unity 与 cocosCreator 的纹理设置都有WrapMode 选项默认是 Clamp如果使用图片拉伸则使用这个选项Repeat如果是希望图片平铺则使用这个选项如果想要实现图片平铺的效果, 来看下两种纹理设置的对比。设置为 Clamp 模式下可以得到平铺的效果但是可以看到线框模式下,图片被多次渲染。设置为Repeat模式线框模式可以看到只有两个三角形就可以渲染完成。效果上来说都实现了平铺, 但是设置Repeat 更加高效。另外在高版本的Unity 中有Mirrror 选原创 2020-09-06 23:57:05 · 8296 阅读 · 0 评论 -
Unity windows打开文件选择对话框
Unity 中是无法直接使用 C# 提供的 OpenFileDialog 与 FolderBrowserDialog 类来打开文件夹对话框。这些方式在Untiy 编辑器下可能使用成功,但是一旦打包成 应用程序,就无法运行了。可以使用外部插件 StandaloneFileBrowser 来处理git地址:https://github.com/gkngkc/UnityStandaloneFileBrowser插件有详细的例子!...原创 2020-08-16 00:46:33 · 1131 阅读 · 0 评论 -
Unity Task 的用法
Unity 中的 Task 和 C# 中的 Task 不同。unity Task 属于 netstandard.dllC# Task 属于 mscorlib.dll不同之处:Unity 主线程调用 async 方法时,不论是 await 之前还是之后,代码都在主线程运行c# 主线程调用async 方法时,await之前由主线程运行,await之后由子线程运行unity async void task(){语句1 //主线程调用await taskMethod; //这里肯定是新线程原创 2020-08-14 01:05:34 · 12545 阅读 · 6 评论 -
Untiy 编码不是UTF8的问题
第一个原因: Unity 默认脚本不是UTF8编码。解决: 把默认脚本修改为UTF8编码。默认脚本文件在Unity安装目录下: Editor\Data\Resources\ScriptTemplates 。第二个原因: VS 默认编码的问题, VS只支持修改单个文件的编码,不支持修改默认编码。我是下载插件解决的。 插件名称 ForceUTF8...原创 2020-08-08 14:15:47 · 1359 阅读 · 0 评论 -
Unity 日志保存文本
Untiy 提供了日志回调事件 Application.logMessageReceivedThreaded监听这个事件,即可把文件保存文本文件了。using UnityEngine;using System.IO;using System.Text;using System;public class LogManager : MonoBehavior{ /// <summary> /// 日志流 /// </summary> priv原创 2020-08-02 22:15:16 · 659 阅读 · 0 评论 -
Mono GC的内存管理
1.mono 在分配内存时会先看 mono 的空闲内存够不够。2.如果足够的话直接使用内存,3.否则进行GC垃圾回收, GC回收不再使用的内存后,4.再次判断空闲内存够不够,5.如果足够的话直接使用空闲内存。6.如果不够的话就会向系统申请新的内存。mono 占用的内存只增不减, 向系统申请的内存不会再还给系统。GC 回收的几个步骤1.停止所有的mono内存分配。2.遍历所有已用内存,找到不再使用的内存打上标记。3.释放被标记的内存到空闲内存。如何找到不再使用的内存:遍历全局数据区的原创 2020-06-16 10:16:51 · 754 阅读 · 0 评论 -
Unity WWW 读取本地文件报错
couldn’t read a file:// file正确的格式是@“file://d:\123\123”不可以写成@“file://d:/123/123”或者@“file://d:\123/123”错误的格式并不是每次都出错,具体什么情况下会出错我也不清楚。真是非常坑!原创 2020-05-30 16:23:15 · 1273 阅读 · 1 评论 -
Unity VideoPlayer 安卓不播放的问题
如果你使用的是 android studio, gradle 来构建apk,需要在build.gradle 中加上配置。如果你不是使用gradle,那么应该是其他的问题,就不必往下看了。android { aaptOptions { noCompress '.unity3d', '.ress', '.resource', '.obb' }}Unity 中使用 Build Sy...原创 2020-04-30 16:42:22 · 3640 阅读 · 0 评论 -
Unity 优化相关
减少DrawCallDrawCall 是CPU 对 GPU 发送一次渲染指令,其中传递了材质球,顶点等信息。发生DrawCall 比较损耗效率,所以要尽量减少DrawCall。Batches 与 DrawCall 息息相关。Batches 是把一个或多个物体一次提交给gpu 渲染的流程。 也就是一个批次产生一次DrawCall。一个批次把尽可能多的物体一起渲染,就可以减少DrawCall。批...原创 2020-04-26 17:57:04 · 378 阅读 · 0 评论 -
Unity Socket网络处理
先声明用于网络链的Socket,以及用于接收网络接收数据的缓存区//用于网络链接的Socketprivate Socket _socket;//缓冲区大小private const int buffSize = 1024*1024;//用户存放接收到的网络数据private readonly byte[] packBuffer = new byte[buffSize];链接方法。...原创 2020-04-05 23:56:15 · 1396 阅读 · 0 评论 -
Unity 射线检测
要使用射线检测,物体必须是触发器或者碰撞器。什么是触发器,碰撞器请看https://blog.csdn.net/qq_27461747/article/details/104492748射线检测函数在Physics 类中。由于射线无法看见,调试起来非常不方便。Unity 给我们提供了一个画射线的方法Debug.DrawRay,便于调试。Debug.DrawRay需要在Update中使用,否则渲...原创 2020-02-25 16:10:42 · 3584 阅读 · 0 评论 -
Unity 碰撞
一:产生碰撞的必要条件要产生碰撞的两个游戏对象都需要添加碰撞器组件Collider(不能勾选IsTrigger,勾选此属性表示物体是一个触发器,已经不能叫做碰撞器了)。其中一个对象必须添加刚体组件Rigidbody。具备这两个条件就可以发生碰撞效果,对两个物体添加力的效果可以是碰撞产生,直接修改物体的position也可是使碰撞现象产生。但是这不是绝对的。如果物体的速度太快,物体会互相穿过。将...原创 2020-02-25 13:22:55 · 3306 阅读 · 0 评论 -
Unity 旋转函数 RotateAroundLocal、RotateAround 与 Rotate
Unity的三个旋转函数都位于Transform中RotateAroundLocal,RotateAround 这两个函数都过时了,用Rotate 可以完全代替这两个函数。这一些老旧项目依然可以看到他们。RotateAroundLocal 没有重载 就一个方法public void RotateAroundLocal(Vector3 axis, float angle);以自身中心点为基准...原创 2020-02-24 17:34:12 · 5502 阅读 · 1 评论 -
Unity 协程,停止 以及 yield return 的用法
1.开启协程第一个public Coroutine StartCoroutine(IEnumerator routine);第二个public Coroutine StartCoroutine(string methodName, object value);第三个public Coroutine StartCoroutine(string methodName);第四个publi...原创 2020-02-24 14:32:50 · 8886 阅读 · 0 评论 -
Unity Rect 结构
原创 2020-02-20 20:33:30 · 677 阅读 · 0 评论 -
Unity 协程的C# 实现
直接上代码:using System;using System.Collections.Generic;using System.Collections;namespace Server { /// <summary> /// 协程类 /// </summary> public sealed class Coroutine {...原创 2019-03-01 14:53:42 · 714 阅读 · 0 评论