- 博客(22)
- 收藏
- 关注
原创 Unity物理检测Physics
unity射线和物理检测测试实例,包含CheckBox、OverlapBox、OverlapBoxNonAlloc、BoxCast、BoxCastAll、BoxCastNonAlloc等共18个方法的测试
2023-11-01 16:46:41
1173
转载 OnCollisionEnter和OnTriggerEnter 区别
1 OnTriggerEnter要求碰撞体的任意一方必须勾选IsTigger选项,OnCollisionEnter则要求全不勾选。3 OnTriggerEnter对刚体挂在碰撞双方的哪一方没有要求,而OnCollisionEnter则要求挂在碰撞的主动方。2 OnTriggerEnter对刚体的IsKinematic项没有要求,OnCollisionEnter则要求不能勾选。注意:OnCollisionEnter方法的形参对象指的是碰撞双方中没有携带OnCollisionEnter方法的一方。
2023-05-18 16:26:41
432
原创 Lua判断一个对象是否为空,包含userdata
客户端在开发游戏的时候,经常会遇到一个问题,C#传递过来的GameObject已经被销毁了,但是lua这边判断却不是nil,而是一个userdata,那怎么判断一个userdata是否为空呢?
2023-02-09 12:20:36
1506
原创 Unity3D导入音频自动设置格式(包含手动设置)
using System.Collections;using System.Collections.Generic;using UnityEditor;using UnityEngine;using System.Text.RegularExpressions;using System.IO;public class AudioProcessor : AssetPostprocessor{ [MenuItem("AssetsTools/将选择文件夹的音频设置成规定格式", fals
2022-01-13 16:36:16
4319
原创 Unity3d 2020以上版本创建SpriteAtlas工具
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;using System.IO;using UnityEditor.U2D;using UnityEngine.U2D;public class CreateSpriteAtlas{ static string rootPath = (Application.dataPath + "/").Rep
2022-01-13 16:34:54
3131
原创 Unity3D Texture导入设置(包含手动和自动设置)
using System.Collections;using System.Collections.Generic;using UnityEditor;using UnityEngine;using System.Text.RegularExpressions;using System.IO;public class UISpritePostprocessor : AssetPostprocessor{ static string effectPath = "Game/Art/Eff
2022-01-13 16:32:27
4332
原创 Unity资源依赖检测小工具
using System;using System.Collections.Generic;using System.IO;using UnityEditor;using UnityEngine;public class CheckPrefabDependencies : EditorWindow{ private string idStr = ""; private static CheckPrefabDependencies window; private stat
2021-10-11 17:21:17
691
原创 Lua基础知识
一.Lua的8种数据类型在Lua中有8种基本类型,分别是:nil–空,boolean–布尔,number–数值,string–字符串,userdata–用户数据,function–函数,thread–线程(注意这里的线程和操作系统的线程完全不同,lua和c/c++进行交互的lua_Stack就是一种llua的线程类型),和table–表。我们可以通过调用print(type(变量))来查看变量的数据类型。(1) nil 类型nil是一种只有一个nil值的类型,它的主要作用是与其他所有值进行区分。Lu
2021-10-11 17:19:38
1126
1
原创 unity小工具之Hierarchy控制物体显示和隐藏
unity小工具之Hierarchy控制物体显示和隐藏using System;using System.Collections.Generic;using System.Reflection;using UnityEditor;using UnityEngine;using Object = UnityEngine.Object;namespace SubjectNerd.QuickToggle{ [InitializeOnLoad] public class Quick
2021-03-26 16:07:10
2558
原创 UGUI性能优化之Drawcall详解
UGUI性能优化之Drawcall详解游戏开发圈里的人一定听过优化游戏要降低DrawCall,那么DrawCall到底是什么呢?要了解什么是Drawcall,就要从图形引擎渲染画面说起了。一、图形引擎渲染画面的过程Unity(或者说基本所有图形引擎)生成一帧画面的处理过程大致可以这样简化描述:1. 可见性测试引擎首先经过简单的可见性测试,确定摄像机可以看到的物体2. 准备好需要渲染的数据把这些物体的顶点(包括本地位置、法线、UV等),索引(顶点如何组成三角形),变换(就是物体的位置、旋转、缩放
2021-02-25 16:17:08
3160
1
原创 Unity的Mask组件性能解析
Unity的Mask组件性能解析UGUI的裁切分为Mask和Mask2D两种一、Mask:IMaskable,IMaterialModifier我们先来看Mask。它可以给Mask指定一张裁切图裁切子元素。我们给Mask指定了一张圆形图片,那么子节点下的元素都会被裁切在这个圆形区域中。Mask的实现原理:Mask会赋予Image一个特殊的材质,这个材质会给Image的每个像素点进行标记,将标记结果存放在一个缓存内(这个缓存叫做 Stencil Buffer)当子级UI进行渲染的时候会去检查这个
2021-02-02 14:30:55
3034
原创 Unity3D各平台Application.xxxPath的路径
Unity3D各平台Application.xxxPath的路径前几天我们游戏在一个同事的Android手机上启动时无法正常进入,经查发现Application.temporaryCachePath和Application.persistentDataPath返回空字符串。便花时间认真研究了一下Unity3D的路径问题。我们常用的是以下四个路径:Application.dataPathApplication.streamingAssetsPathApplication.persistentDataP
2020-10-09 16:27:20
941
原创 unity3d中ScriptingBackend选择mono和il2cpp的区别
unity3d中ScriptingBackend选择mono和il2cpp的区别在iOS和Android上,在Player Settings中选择mono或il2cpp脚本后端。要更改脚本后端,请转到“Player Settings 窗口(菜单:Edit > Project Settings > Player),向下滚动到“Other Settings”部分,然后从“Scripting Backend”下拉菜单中选择mono或il2cpp。注意:从2017.3开始,选择IL2CPP脚本后端或
2020-10-09 15:32:31
7505
2
转载 Unity Color Space详解--深入理解Gamma、Linear、sRGB
深入理解Gamma、Linear、sRGB“为什么我渲染出来的场景,总是感觉和真实世界不像呢?”游戏从业者或多或少都听过Linear、Gamma、sRGB和伽马校正这些术语,互联网上也有很多科普的资料,但是它们似乎又都没有讲很"清楚"。游戏界(特别是中小团队)很容易忽略这些概念造成的影响。长远来看,作为游戏从业者的你应该理解这些术语的含义,理解它们的本质联系,理解选择Linear或Gamma 空间带来的工作流变化。本文将会简单介绍Gamma、Linear、sRGB和伽马校正的概念。接着通过实例解析统
2020-09-30 14:44:36
2863
1
原创 Unity动态设置帧率以及垂直同步V Sync Count详解
Unity动态设置帧率以及垂直同步V Sync Count详解1.显示器的工作原理要知道什么是垂直同步,必须要先明白显示器的工作原理,显示器上的所有图像都是一线一线的扫描上去的,无论是隔行扫描还是逐行扫描,显示器扫描的过程中有两个重要的概念:H Blank(水平同步)和V Blank(垂直同步)。什么叫水平同步?什么叫垂直同步?垂直和水平是CRT中两个基本的同步信号,水平同步信号决定了CRT画出一条横越屏幕线的时间, 垂直同步信号决定了CRT从屏幕顶部画到底部,再返回原始位置的时间, 而恰恰是垂直同
2020-09-28 17:15:44
2098
原创 Unity性能优化-音频设置
Unity性能优化-音频设置没想到Unity的音频会成为内存杀手,在实际的商业项目中,音频的优化必不可少。Unity支持许多不同的音频格式,但最终它将它们全部转换为首选格式。音频压缩格式有PCM、ADPCM、Vorbis,不是所有平台都支持这些所有的压缩格式,有些平台,例如WebGL只支持AAC格式。2.所有音频导入时,默认两项设置,LoadType是"Decompress On Load",压缩格式是“Vorbis”,例如下图原始文件大小计算为35.9 MB,导入的大小计算为10.7 MB。这意
2020-08-12 15:56:20
1023
原创 UGUI性能优化之图集使用减少Drawcall
UGUI性能优化之图集使用减少Drawcall如果游戏内容比较多,是不太可能把所有的UI图片都合并在同一个图集里面的。所以必然会产生多个图集的问题。而使用同一个图集的Image能合并成一个DrawCall的前提,是他们中间没有再穿插着使用了其他图集的Image。打成图集需要注意的是:1、单张图片大小不要超过512*512;2、同一个图集的图片放到一个文件夹下,这样也方便管理;3、会频繁变动的元素(位置、颜色、大小等发生改变)单独打成一张图集,这样能减少不必要的元素重绘;使用图集的时候:同一图集
2020-06-23 11:38:14
1179
转载 UGUI性能优化之Canvas
UGUI性能优化之Canvas自从Unity问世以来,UI一直都存在比较大的问题,自带的OnGUI不能所见即所得,制作过程比较麻烦。于是出现了很多第三方的优秀的UI插件,比如很多项目里面用到的NGUI,或者后来出的FairyGUI。Unity官方在4.x时代开始推出了自己的新UI系统,名为UGUI。由于是官方出品,所以选择使用的人也比较多。阿赵我也是基于信任官方出品的心理,在最近的两个项目里面都使用UGUI进行开发。UGUI是一个比较完整的所见即所得式的UI系统, 不过说实在的,我个人感觉它的成熟度还是
2020-06-23 11:24:24
860
原创 unity3D接入Sign in with Apple
unity3D接入Sign in with Apple苹果明确规定2020.6.30之后提交到AppStroe审核的app如接入了第三方登录,则必须接入Sign in with Apple;下面给大家分享一下unity3D接入Sign in with Apple的具体流程:1、首先是按钮格式必须使用苹果给定的几种,具体可以参考链接 苹果官方登录按钮样式;2、oc代码:#import <Foundation/Foundation.h>#import <AuthenticationS
2020-06-17 17:38:40
3673
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人