![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity3D
文章平均质量分 61
苏小败在路上
不一样的人生
展开
-
Unity3D-关于U3D中新版文本组件的代码引用类名(TextMeshPro)
但是在使用的时候,需要提示大家一点,在代码引用TMP时,它的类名和在编辑器中显示的不一致。Inspector视图上显示的名字是“TextMeshPro-Text(UI)”,我在定义的时候,使用TextMesh,TextMeshPro,都无法拖拽上去。在很早以前,Unity里面使用的文本UI控件,都是Text,随着Unity3D的更新,Unity里面新增了一个文本增强的库,叫TextMeshPro。里面增加了很多效果,同时,在导入包的时候,还附带了很多特效的着色器,用起来真的很舒服。原创 2023-05-06 11:23:51 · 701 阅读 · 1 评论 -
【Unity3D简单项目开发】疯狂点击01
使用Unity3D的内置资源,制作一个简单的游戏项目,通过这个项目,掌握使用Unity3D开发简单游戏的一个基本流程。原创 2023-03-23 11:19:21 · 838 阅读 · 0 评论 -
Unity3D-关于Camera.main.ScreenPointToRay方法的问题
最近在做一个鼠标点击选中物体的功能,因为之前一直都是做的2D,使用的也是UGUI去做的小游戏,所以,摄像机被我设置成了正交模式。但是,最近项目需要在原来的基础上,添加3D功能,并且用到的鼠标点击选中物体的功能!本身这个功能并不是很难,直接通过射线去检测即可。由于之前UGUI使用了主摄像机,所以一开始的想法是另外单独用一个摄像机来渲染3D物体,并且也想好了临时更改物体之后,可以将辅助摄像机上的画...原创 2018-08-02 15:01:11 · 8046 阅读 · 4 评论 -
Unity3D-Color与十六进制颜色互相转换
Unity中已经提供了现成的方法,可以直接调用:ColorUtility.TryParseHtmlString:传入的字符串是 “#FFFFFF”的格式,用法如下:Color nowColor;ColorUtility.TryParseHtmlString("#FECEE1", out nowColor);Color转回去使用下面的方法:ColorUtility.ToHtmlS...原创 2018-08-14 16:45:17 · 29987 阅读 · 7 评论 -
Unity3D-iOS创建本地视频
在游戏中,有时候需要将一些简单的图片组合成视频,然后让用户分享出去,当然仅仅是那种很简单的图片组合视频(这是我自己项目的需求,不需要录制UI等其他东西)。本来想找插件的,后面看到大部分插件都是通过摄像机去录屏,但是我们项目本来就一个对图片操作的游戏,因此没法用插件。寻思着自己写一个,还好iOS方面的东西还是很齐全的,在查阅了很多资料和博客之后,终于被我弄出来的。原理也简单,就是通过写iOS...原创 2018-08-01 10:58:54 · 509 阅读 · 0 评论 -
IOS-Unity开发的游戏中获取IDFA出现卡死的问题
在项目用,由于使用Firebase和Facebook事件分析,需要收集IDFA作为用户的唯一标志位。但是在Unity调用原生获取IDFA时,出现是游戏卡死状态。经过我多次尝试,发现如果在Unity加载初始资源时,调用原生代码获取IDFA时,可能会使加载资源的主线程阻塞,具体的原因我并不清楚,但是根据Log的信息看,是加载资源被中断了, 没有继续走下去!改的方式,就是在加载资源完毕之后再去获...原创 2018-07-19 14:58:14 · 1100 阅读 · 0 评论 -
Unity3D-iOS分享本地视频或图片到Instagram(可直接打开Instagram分享的方式)
最近,看到App Store上有些应用可以直接把做好的视频或图片分享到Instagram上,而且是那种直接打开Instagram,并且可以直接编辑的方式,这种分享非常的友好,不需要用户去登录,只要安装了Instagram就可以直接跳转过去,相当于我们说的一键发布,省去了很多的麻烦。可是,在我去Instagram的开发者网站看的时候,发现并没有说怎么直接打开Instagram的方式,然后花了将近5天...原创 2018-05-25 10:29:03 · 4200 阅读 · 2 评论 -
Unity3D-iOS打包出现“This application does not support this device’s CPU type.”的问题
这个可以看这里:https://blog.csdn.net/sinat_22545219/article/details/79352050不过这个是可以在Unity里面设置的:在Build设置里面,将Architecture设置为Universal即可原创 2018-05-11 09:06:39 · 3345 阅读 · 2 评论 -
Unity3D-关于Unity屏幕坐标到iOS屏幕坐标的映射方法
有时候在Unity里面做一些原生的功能,比如:在某个UI的Button旁边弹出一个原生的选择框,我们需要知道这个选择框要显示在那个位置,但是我们只知道在Unity的UI坐标,那么怎么从Unity的UI坐标转到原生去呢。其实有一个很好的办法,Unity之前已经考虑到了,那就是ViewPoint,这个就是关键。ViewPoint是什么?它就是指一个点在屏幕中的百分比!比如,我们的UI的中心点是(0,0...原创 2018-04-25 09:35:53 · 1029 阅读 · 0 评论 -
Unity3D-关于iphoneX适配,简约方式
这个是简单粗暴的方式,但是也有缺点。一下代码都是在Unity2017.2.1版本测试的。在导出的xcode工程里面,在UnityAppController.mm中,添加头文件:#import <sys/utsname.h>该类增加获取机器型号的函数:- (NSString*)getDeviceVersion{ struct utsname systemInfo; uname...原创 2018-04-19 15:45:32 · 2384 阅读 · 0 评论 -
Unity3D-协程中嵌套了协程如何停止的探索
在Unity里面有个很好用的东西,就是协程!它可以很好的帮助我们做很多类似异步加载的东西,特别是资源多的时候,用的很频繁。而且,在一个协程之中,还可以嵌套很多小的协程,会让你用起来很舒服,思路很清晰。但是,有时候需要停止加载,这里就出现问题了。因为经过尝试,Unity中的协程,只有两个方法可以停止协程,第一个是“StopCoroutine”,还有一个是停止所有的“StopAllCoroutines...原创 2018-04-08 11:38:11 · 1708 阅读 · 0 评论 -
Unity3D-iOS因为IPv6崩溃而被拒的问题
最近在Apple store更新版本时,第一次被拒了,很伤心!提示如下:Guideline 2.1 - PerformanceYour app crashed on iPad or iPhone running iOS 11.2.5 connected to an IPv6 network during our review.We have attached detailed crash...原创 2018-03-24 09:30:01 · 1102 阅读 · 0 评论 -
Unity3D-Tilemap初体验(Unity自带Tilemap使用体验)
最近新项目需要做一个用到瓦片地图的游戏,第一想法就是要用Tilemap,之前Unity没有自带的Tilemap,都是第三方插件。知道去年2017.2发布,就有自带的Tilemap啦!将Unity升级到2017.3.1,Tilemap的基本操作,其实API已经有了,看这里:Unity Tilemap API然后在给个别人已经翻译了的:中文由于我项目的特殊性,需要在代码里面创建和修改Tile,初始化T...原创 2018-03-13 16:34:54 · 26296 阅读 · 4 评论 -
Unity3D-iOS中使用Tilemap问题研究以及解决方案
前不久刚刚研究了Unity3D的Tilemap,在编辑器里面捣鼓了半天,总算是弄明白怎么用了。昨天想着可以上真机试试看,结果悲剧果然发生了。在iOS平台上无法显示Tilemap!准确来说,是在iOS平台,用代码初始化Tilemap没有效果,log里面你会看到下面的错误:NullReferenceException: A null value was found where an object in...原创 2018-03-23 09:33:13 · 3192 阅读 · 0 评论 -
Unity3D-Android调用系统分享针对8.0系统的方式
我在原来的帖子上写了一个关于Android原生分享的方法:http://blog.csdn.net/pz789as/article/details/77979594但是,在后面测试的时候发现,这个方式在Android 8.0 上不起作用,点了按钮之后,并没有弹出原生分享框。网上大部分的原生分享代码都和我上面写的一样,所以只能自己看文档,慢慢再试其他的,最后经过努力,终于给弄出来了,还兼容低版本的A...原创 2018-03-01 13:37:33 · 1816 阅读 · 2 评论 -
Unity3d-UGUI特效之Image的Skew变形、倾斜效果
这次在项目中,做动画时,想要多UI的图片做倾斜动画,比如进场有一定的斜度,然后又变回原来的样子。于是在网上搜索有关Image变形或倾斜的做法,后面找到根据文档发现可以通过继承Image来做一些修改,关键是在Image渲染之后,我们拿到顶点坐标,对坐标做一定的偏移,就可以达到目的了。先来看看效果:看着效果还不错,看代码:using System.Collections;using System.C...原创 2018-02-08 09:15:31 · 13166 阅读 · 18 评论 -
Unity3D-限制3D物体的旋转角度
在做项目时,很多时候可能需要做旋转功能,这个很简单,直接使用Rotate方法即可,如果在加上一个限制旋转角度,可不是简单的判断下角度就可以了。在Unity中,角度在它内部是用四元数表示的,这个我也弄不清楚,所以,在面板展示和你实际打印出来的localEulerAngles不一样!!可能你只是想改变x的角度,但是你转着转着可能看到变成x,y,z三个值都变了。之前在网上看到一个解决方案,说是拿取l...原创 2018-08-16 16:19:22 · 13057 阅读 · 1 评论 -
Unity3D-Shader之两张图片叠加并且通过颜色调控
最近项目需要做一个图片叠加在一个模型上,而且还需要通过调整颜色改变两个图片的颜色和透明程度。另外,还需要一个调控值,管理两张图片是否完全显示,Shader如下:Shader "Unlit/BlockTextrue"{ Properties { _MainColor ("Main Color", Color) = (1,1,1,1) //前景图颜色 _BackCo...原创 2018-09-21 17:02:31 · 14014 阅读 · 3 评论 -
Unity3D-IOS利用判断某个应用是否安装来区分测试和正式用户
在实际项目开发过程中,可能需要收集用户的信息以及用户在APP中产生的所有痕迹,以便于分析用户在APP中的行为,这样可以更好地指导我们去更新APP,做出更好的APP。但是,我们在开发中,难免会出现需要屏蔽测试用户的信息,这个其实有一些曲线救国的方式,比如:1、拿到我们测试机型的IDFA,通过IDFA将测试产生的数据都排除掉,以免影响数据分析。这个方式的缺点就是IDFA也许会自动化变,目前知道...原创 2019-08-05 16:41:20 · 760 阅读 · 0 评论 -
Unity3D-获取IOS的IDFA和IDFV
void InitUserProperty() {#if UNITY_IPHONE if (UserIDFA == "" && Device.advertisingTrackingEnabled) { UserIDFA = Device.advertisingIdentifier; } if (Us...原创 2019-07-26 09:16:30 · 2036 阅读 · 0 评论 -
Unity3D-Firebase的Database崩溃报错“createRepo called for Repo that already exists”
最近将Firebase的Database更新到6.x版本之后,在iOS上出现了大量的崩溃:createRepo called for Repo that already exists之前都好好的,不知道这次怎么就报这个错误,在网上找了半天,最后发现是因为在调用数据库引用时,不在主线程FirebaseDatabase.DefaultInstance.GetReference("xxxx/...原创 2019-06-25 18:20:23 · 427 阅读 · 0 评论 -
Unity3D-通过调用iOS原生代码将图片进行高斯模糊
之前一直想使用Shader去做高斯模糊特效,后面发现图片过大的话,效率真的是相当的不理想。后来在网上看到说iOS本身是有将图片处理成高斯模糊的功能的,想想也确实,苹果设备的背景经常会出现模糊特效,那他们的算法应该很快速的,于是突发奇想,如果将要做模糊处理的图片,传到原生端然后处理成模糊图片之后,再传回来使用,不就可以达到这个目的了么!首先要知道这个的局限性,不能实时的去做,这是什么意思呢,...原创 2019-05-08 12:29:23 · 547 阅读 · 0 评论 -
Unity3D-Android关于加载AssetBundle中的视频
Unity现在对视频支持已经算是很好了,特别是iOS上,只要视频格式没有问题,基本就能正常播放和加载。不过,在Android上,如果将视频打包到AB包里面去,可能会出现加载不了的问题,具体情况是在真机中会Log出一条警告,说是找不到视频文件,然后附加说了保证这个文件是否在正确的路径,或者视频没有被压缩过。之前使用AB的经验少,也都是跟着网上的做法做的,在编辑器中直接调用了默认的打包方式:...原创 2019-04-02 17:08:38 · 3417 阅读 · 0 评论 -
Unity3D-Android关于Admob中介Mediation Test Suit的问题
现在Admob测试中介越来越方便了,可以直接下载Admob提供的一个Unity插件,然后在弄个测试按钮中打开中介测试套件,里面会显示你在Admob后台配置中介的所有广告版本,也包括Admob自身的广告。在这个插件显示的界面中,可以查看什么中介平台没有配置好,他都会一个个的列出来: 这样大大的减少测试时间,插件的下载地址:Mediation-test-suite...原创 2019-03-28 14:45:16 · 1275 阅读 · 0 评论 -
Unity3D-AdMob在Android中的回调造成异常的问题
我使用的是Admob的官方Unity插件,这个在iOS上运行一点问题都没有,最近移植到Android上之后,出了很奇怪的问题。比如:看完激励视频之后,拿不到奖励;拿到奖励之后,却没有重新加载新的视频;甚至有时候会直接崩溃或者一些很奇怪的问题。特别是居然调用PlayerPrefs保存数据都出错,说是这个需要要主线程才可以调用,于是给我抛出了一个异常来。一开始还以为是我写的有问题,在改了保存方...原创 2019-04-04 16:03:54 · 1055 阅读 · 0 评论 -
Unity3D-Admob中介设置之后google自身的中介适配器缺失问题
在Unity中使用了Admob广告,并且在Admob的后台配置了中介信息,在原来老版本的时候,Google自身的中介适配器是包含在SDK的包里面的,但是最近我把Google广告的SDK更新到最新的7.42.0版本之后,发现根本不出Admob的广告,其他的广告都正常。后面找了很多方式才发现,是由于Unity的包现在不支持最新的Google的最新版本SDK!所以,在从Unity导出到xCode工程...原创 2019-03-21 16:59:22 · 735 阅读 · 0 评论 -
VSCode-代码自动补全和类的导航路径设置
在使用vscode进行Unity3D开发时,如果想使用tab键自动补全和切换,或者在一个类里面找到需要的函数、参数等,这些都是可以在vscode中设置的,之前的我一直都不知道,后面看了更新记录才发现还有这么好用的功能,所以在此记录下。 设置tab捡自动补全或切换: 开启之后,就可以通过tab键补全代码了哦,是不是很方便呀。然后是代码查找,不知道是不是更新了最新版本原因吧...原创 2019-01-03 09:44:34 · 17989 阅读 · 0 评论 -
Unity3D-获取字体的实际像素宽高
如果是获取ttf字体的实际像素宽高,可以使用下面的方式:Text text = GetComponent<Text>(); Debug.Log(text.preferredWidth); Debug.Log(text.preferredHeight);如果是获取自己制作的图片字体宽高,需要拿到字体中的每个字母的宽高,再将他们加起来就可以了:/// <sum...原创 2018-12-24 15:02:01 · 4122 阅读 · 0 评论 -
Unity3D-Firebase的崩溃接入(iOS,Mac端)
Firebase给我们提供了崩溃收集程序包,我们只要把SDK弄到工程中去,就可能在Firebase后台收集到用户的崩溃信息,以便完善自己的应用,这里主要说的Mac端的下载Firebase的Unity包,导入基本包之后,如果没有其他需要,可以直接导出一个XCode工程了,这个过程可以参考我前面的博客接入谷歌Firebase步骤,或者去官网看也可以,前面步骤是一样的至于安装Pod可以参考这...原创 2018-11-28 10:14:11 · 1859 阅读 · 0 评论 -
Unity3D-Shader之UIImage灰度处理
Shader "Custom/UIGrayEffectDeep" { Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} _Color ("Tint", Color) = (1,1,1,1) _StencilComp ("Stencil Comparison", Float)...原创 2018-09-30 13:23:33 · 850 阅读 · 0 评论 -
VSCode-Unity3D之C#代码浏览步骤的导航器
在VSCode,有时候点了跳转到定义,然后要回到原来的地方很麻烦,后面在扩展程序中看到一个好的插件,可以记录操作过程,然后可以返回或前进一步。插件名:Code Navigation在VSCode扩展程序搜索这个,安装重启即可。在编辑器下方的状态栏,有两个箭头就是了!...原创 2018-10-09 10:17:20 · 796 阅读 · 0 评论 -
Unity3D-iOS崩溃之“__TCCAccessRequest_block_invoke_2.80 + 222”
今天在itunesconnect上看到好多这个崩溃崩溃日记如下:经过查找发现,是由于用户在分享弹出框中将图片保存在相册时发生的。在iOS新版本中,苹果对设备使用的权限有了限制,上面发生的就是因为未获得保存图片到相册的权限,导致的崩溃。因此,只要在xcode的info.plist文件加入权限即可。也可以用文件格式打开,添加下面的字段:<key>NSPhotoLibraryAddUsage...原创 2018-02-26 14:57:54 · 3316 阅读 · 0 评论 -
Unity3D-iOS崩溃之“AGXGLDriver: glrKillClient + 464”
我的项目上线后,出现好多这个崩溃,还主要是iOS10以上很容易出现:AGXGLDriver: glrKillClient + 464在网上查了半天,说是一个webview在后台刷新的引起的,但是我并没有使用webview,经过排查之后,发现其实就是展示谷歌广告的时候会用到webview。于是在程序中处理了下广告,就是当游戏挂起时,把广告都不显示或者销毁,总之就是不让他们刷新就可以了。void On...原创 2018-01-15 13:23:49 · 1242 阅读 · 0 评论 -
Unity3D-UGUI的Text组件渐变效果
今日在做项目中发现,很多时候需要对文字多特殊处理,渐变就是最常用的。特别是文字特别多,还有动态的时候,就不能只靠图了,否则包的大小就吃不消了。在网上搜到雨松写的渐变代码,于是就拿来用了。可是版本不一样,我的是5.5.0版本,函数ModifyMesh的参数已经是VertexHelper了,所以就需要改动改动具体代码如下:using System.Collections;using原创 2017-03-24 11:39:29 · 5530 阅读 · 4 评论 -
Unity3d-调用iPhone或则iOS自带的Maill App去发送邮件
我在前面的博客中也写过,打开Appstore,打开设置之类的由于在网上没找到发送邮件反馈的,大部分都说的是在游戏内发送邮件给玩家。今天顺着打开appstore的方式去尝试了下,可以直接利用Appliction去打开Mail app,代码如下:public static void GotoEmail(string toMail){ #if UNITY_IPHONE || UNITY_原创 2017-04-10 17:17:37 · 4686 阅读 · 0 评论 -
Unity3D-使用自带的LocalNotification推送后,Icon上的Badge Number数量消除不掉
本地推送我是这样写的:LocalNotification localNotification = new LocalNotification(); localNotification.fireDate = newDate; localNotification.alertBody = message; localNotification.applicationIconBadge原创 2017-02-09 17:39:32 · 3945 阅读 · 7 评论 -
Unity3D-关于LaunchScreen界面的设置(IOS)
在Unity中,是可以直接设置Launch界面的,不过分了两种(主要是IOS的,android的没试过,不过道理是一样的)首先说说简单的,就是直接给全屏图片。如果想要通用Iphone和Ipad,则需要设置两个全屏图。为什么需要这样做,因为有些时候要求你启动界面和加载界面保持一致,只是多了个加载的进度条或者等待状态,如果不用全屏图,那么这两屏就会出现不对称。如果你不关心这个细节,那么也无所谓,直原创 2017-08-27 14:47:53 · 8618 阅读 · 0 评论 -
Unity3D-调用Android系统邮件发送邮件,或调用系统分享去分享内容
最近在将项目移植到Android平台,虽然大部分的东西都不需要动,但是关于分享、反馈这类需要用到原生系统功能的,就需要单独去处理了!其实发送邮件和分享是同样的道理,只是发送邮件的参数不同,最主要代码是这样的:AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); A原创 2017-09-14 14:19:49 · 3296 阅读 · 2 评论 -
Unity3D-导出APK报错CommandInvokationFailure: Unable to convert classes into dex format.
今天使用Unity导出APK时,提示我CommandInvokationFailure: Unable to convert classes into dex format.然后打开Editor Log查看了下原因,上面显示是这样的:Android PostProcess task "Creating staging area" took 12.988 msAndroi原创 2017-09-05 14:06:06 · 16704 阅读 · 3 评论 -
Unity3D-关于使用了Metal的Graphic闪退问题
最近看到CrashReport中经常看到因为GfxDeviceMetal::InvalidateState()这里闪退原创 2017-07-18 10:29:53 · 3015 阅读 · 0 评论