![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity技巧
文章平均质量分 64
拂面清风三点水
这个作者很懒,什么都没留下…
展开
-
Unity中使用代码将预制加载到场景
本文介绍如何在Unity中使用代码将预制加载到场景, 并同时介绍了如何通过代码来替换指定组件.原创 2022-06-17 10:50:06 · 4175 阅读 · 0 评论 -
Unity中使用代码选中对象(Ping)
介绍Unity中如何使用代码选中对象原创 2022-06-17 10:06:45 · 1808 阅读 · 0 评论 -
Unity中在Editor下的延迟调用
Unity中在Editor下的延迟调用说到延迟调用, 大家肯定首先想到的是MonoBehavior的协程, 但是在Editor不太好用. 我们这里给出两个方案供大家选择.async第一种比较简单, 利用C#的特性, 需要c# 5.0以上的版本支持.var delayCall = async () =>{ await Task.Delay(System.TimeSpan.FromSeconds(2)); Debug.Log("do something.............原创 2022-05-11 10:34:21 · 2293 阅读 · 1 评论 -
Unity中使用软连接快速切换平台
Unity中使用软连接快速切换平台Unity会把所有的资源在不同平台下进行不同的设置, 且每次切换平台都需要重新计算, 在大型项目中, 由于资源很多, 切换的成本比较高, 可能动不动的就是几十分钟, 但是偶尔我们又需要在不同的平台下看看不同的效果或者需要在真正出包之前先本地跑一遍, 所以难免会有切换平台的需求.有些同学会搞两个工程, 或者搞两个Libarary文件夹, 或者就直接在Android平台下开发了, 本质上这些方案都能达到我们的目的, 只是可能略显繁琐.而今天给大家分享另一种个方案, 相对来原创 2022-02-16 10:51:04 · 3829 阅读 · 0 评论 -
Unity中使用Profiler进行Android远程调试
Unity中使用Profiler进行Android远程调试这两天研究了下Profiler进行远程调试Android, 查看内存和CPU使用情况等. 原来其实就研究过, 只是很久不用又忘了, 所以写文章记录一下, 避免下次又重复采坑.网上有些文章写得比较明白, 比如这篇, 基本上照着做问题不大. 我这篇文章主要是做一个记录, 还有加上一些自己的总结. 同时也怕别人的文章不见了, 而且总归自己过一遍也是好的.实现原理剖析原理其实很简单, 如果有同学平时使用过AndroidStudio应该对adb命令不陌原创 2022-02-10 15:33:01 · 4032 阅读 · 0 评论 -
Unity中RenderDoc的使用
本文分享Unity中RenderDoc的使用研究过渲染的同学想必对RenderDoc不陌生. RenderDoc是一个查看和分析渲染效果的工具, 可以查看每一帧的渲染信息, 比Unity自带的Frame Debugger更强大.今天给大家分享在Unity中如何使用RenderDoc, 并附带一些比起其它文章更详细的说明和实际使用示例.安装RenderDoc是以软件的形式而不是插件的形式提供, 访问RenderDoc官网, 下载对应的版本, 直接按照普通软件的过程安装即可.打开Unity, 在Gam原创 2021-11-09 11:00:15 · 11067 阅读 · 4 评论 -
Unity中使用另一个遮罩方案解决Mask组件的锯齿现象
本文分享Unity中使用另一个遮罩方案解决Mask组件的锯齿现象动机在上一篇文章中, 细心的同学可能看到了, 放大头像后可以看到明显的锯齿, 如图:这是因为模板测试是按照像素来测试, 要么通过, 要么不通过, 不通过就不给渲染, 那些过渡的地方因为不透明度比较高, 混合的效果与没有混合差不多.我们使用另一个思路来制作遮罩: 绘制图片时, 从遮罩纹理中采样透明度来修改片元的透明度, 遮罩的圆形之外的部分透明度为0, 该过度的地方也有不同透明度, 这样就能正确混合也能正确起到遮罩的效果.过程和效果原创 2021-11-08 09:39:53 · 8473 阅读 · 0 评论 -
Unity中的CustomEditor(自定义编辑器)
本文分享Unity中的CustomEditor(自定义编辑器)Unity对继承了MonoBehavior脚本的类(当然还有其它类)提供了属性面板的展示和修改.默认情况下会显示类的公开字段(public field), 当然这些字段也会被序列化并存储在挂载的预制上.有些情况下我们需要自定义展示和修改逻辑, 这时我们需要用到CustomEditor.本文将对CustomEditor做一些基本的介绍, 主要围绕类的可序列化字段展开.CustomEditor的基本知识下面我们先给出一个相对完整的代码,原创 2021-10-25 15:17:33 · 10846 阅读 · 0 评论 -
Unity中使用XLua时为C#对象绑定代理对象
本文分享Unity中使用XLua时为C#对象绑定代理对象XLua导出的对象在Lua中是Userdata类型. 我们无法动态的向一个Userdata类型的对象附加变量和方法, 如果想要方便的使用, 我们还需要设计一种代理对象来负责对象的访问.Lua中类的实现代理对象可以是一个普通的table, 然后对其进行一些特殊的处理后可以代理userdata对象.如果对所有的table都执行这种操作可能不太方便, 所以我们一般模拟类的概念来设计, 后续所有相关类型的类都继承拥有绑定userdata能力的祖先类.原创 2021-09-27 18:24:22 · 1214 阅读 · 2 评论 -
Unity中UI, 3D和特效等层级SortingOrder管理方案
本文分享Unity中UI, 3D和特效等层级SortingOrder管理方案我们在Unity的开发中, 经常会遇到一个问题, 就是UI, 3D和特效的层次问题.因为UI都是最后绘制, 所以UI总是在所有事物的最上层.但是有些时候我们需要3者相互穿插, 特别是场景中有背景图, 有3D模型, 也有粒子特效动画等, 需要它们和谐共处, 互不影响.这时就需要我们手动来管理渲染层级.使用RenderTexture在某些场景下, 如果只有很少的3D模型(只要带MeshRenderer组件), 我们可以将相原创 2021-07-17 09:31:45 · 5470 阅读 · 0 评论 -
Unity中Animator播放动画后无法修改transform的问题
本文分享Unity中Animator播放动画后无法修改transform的问题在使用Animator时, 如果某些动画状态设计到transform的改动, 比如位置, 缩放等, 在默认情况下我们就不能手动修改该对象的transform相关属性了.比如动画修改了缩放, 不管该动画有没有执行, 只要在Animator的控制之下, 我们不管是通过代码还是通过Inspector面板都无法修改该对象的缩放值.当然, 如果动画只是加入了缩放的关键帧, 但是并没有修改值, 那么还是可以被我们修改的.官方的说明是:原创 2021-07-15 18:39:10 · 6011 阅读 · 14 评论 -
Unity中[SerializeField]和[HideInInspector]的使用
本文分享Unity中[SerializeField]和[HideInInspector]的使用今天给大家分享几个特性的使用.在Unity的开发中, 我们经常会使用到序列化技术. 那么什么是序列化呢?序列化(Serialize)序列化最质朴的解释就是我们按照一定的规则将数据组织和存储或者传输, 然后在某些时候或者某些点按照相同的规则将其解析出来.现在有很多的序列化手段, 如常见的Xml, Json, Protobuf等, 相信很多同学都接触过.这些手段或者说规则, 各有各的优势, 比如有的占用空间原创 2021-06-07 15:32:31 · 3058 阅读 · 2 评论 -
Unity中Animator播放动画结束监听实现
本文分享Unity中Animator播放动画结束监听实现今天要分享的是一个在项目中会经常用到, 但是却没有一个统一实现的问题.我们在Unity的开发中经常会用到动画, 即使用Animator, 但是Unity却没有给我们提供动画结束的回调方法.通常情况下, 在一些比较简单的项目中, 我们会在动画帧中添加结束事件来达到我们的目的. 这也是Unity官方推荐的方式.但是在一些大型项目中, 我们很难对所有的动画都添加结束事件, 所以最好能使用代码来完成.很多同学都会遇到这种困扰, 作者也曾经查询过大量的原创 2021-06-05 15:39:59 · 7591 阅读 · 4 评论 -
Unity中场景生命周期的监听: EditorSceneManager
本文分享Unity中场景生命周期的监听: EditorSceneManager在Unity开发中, 有时我们需要在场景的某些生命周期时做一些特定的操作, 特别是在Editor模式下的一些工具代码.我们可以使用EditorSceneManager对场景的生命周期变化进行监听来达到目的.下面我们简单分享下一些基本的用法.sceneOpening场景被打开之前调用.// 第一个参数是场景文件的相对路径// 第二个参数是场景的打开模式, 详情请参考: SceneManagement.OpenScene原创 2021-06-05 14:54:18 · 1975 阅读 · 0 评论 -
Unity中[ExecuteInEditMode]特性的使用
本文分享Unity中[ExecuteInEditMode]在默认情况下, 继承MonoBehaviour的脚本只能在PlayMode下才能执行相应的生命周期函数, 如Awake, Update等.加上[ExecuteInEditMode]特性后, 任何添加了该组件的对象能够在EditMode下执行相应生命周期函数.不同的是, 有一些在PlayMode下可能会被频繁调用的函数, 如Update, OnGUI等, 在EditMode下不会被一直调用, 而是在某些变化发生时才会被调用, 如:对象的某些属原创 2021-05-20 09:45:35 · 1385 阅读 · 1 评论 -
(Unity技巧)-1. 复制组件的值
在我们日常使用Unity的过程中, 经常会出现需要在不同的对象上使用相同组件和相同值的情况, 很多刚刚接触Unity不久的小伙伴可能不知道我们可以直接复制组件值, 这里我们简单介绍下:选中对象, 在属性面板上对应的组件右上角有一个菜单选项, 点开后可以看到各种选项:选择复制后, 在另一个对象上同样点开菜单选项可以看到粘贴:在菜单内部还有其他的功能, 比如可以找到组件在场景中的引用, 重置组件的值等, 作者就不一一列举了, 有兴趣的小伙伴可以自行探索.今天的分享就先到这里, 祝大家开心原创 2021-03-17 17:34:39 · 899 阅读 · 0 评论