草庐IT

Unity-Koreography

全部标签

Unity Shader:tex2D函数详解

tex2D函数作用:CG程序中用来在一张贴图中对一个点进行采样的方法,返回一个float4,通过一个二维uv坐标在纹理上,获取该处值。 float4Tex2D(sampler2Dtex,float2s):s-需进行查找的纹理坐标(uv)其中根据纹理的类型不同,获取的值的含义也不一样,普通纹理一般代表的是该点的颜色值//该像素的真实颜色值half4c=tex2D(_MainTex,IN.uv_MainTex);bump类型纹理上存储的值代表的含义是该点的法向量//从_Bump纹理中提取法向信息tex2D(_Bump,IN.uv_Bump) tex2D数值精度问题:有时候数据被适应到0.f~1.f

Unity中协程(IEnumerator)的使用

目录一、问题的出现二、协程(IEnumerator)的使用方式1、协程的开启2、yieldreturn3、协程的终止三、问题的解决一、问题的出现今天在学unity的时候,想要给角色添加一个大力药水,捡到之后增加力量,把敌人砍滴飞起。效果实现了,但是问题也来了:这药水效果一直存在,砍谁都是一刀斩了!这并不是我想要的效果,我希望是:药水有一段持续时间,在结束后恢复正常状态,这样才合情合理吗。二、协程(IEnumerator)的使用方式当我们的任务不能在一帧之内完成,而需要持续一段时间的时候,需要用一种方式将进程从主线程中剥离,放在另一条分支上(伪)。我们希望他不要停,但是又不要影响其他进程的运行。

Unity3d 实现UI节点切换顺序SiblingIndex(上移、下移和快速置顶、置底)

usingUnityEngine;publicclassSiblingTest:MonoBehaviour{publicvoidClickTop(GameObjectobj){obj.transform.SetAsFirstSibling();}publicvoidClickBottom(GameObjectobj){obj.transform.SetAsLastSibling();}publicvoidClickMoveUp(GameObjectobj){intidx=obj.transform.GetSiblingIndex();if(idx>0)obj.transform.SetSibl

解决Unity打包时,Android SDK 报错问题

报错内容应该包括类似如下信息:CommandInvokationFailure:FailedtoupdateAndroidSDKpackagelist.java.lang.UnsupportedClassVersionError:com/android/prefs/AndroidLocationsProviderhasbeencompiledbyamorerecentversionoftheJavaRuntime(classfileversion55.0),thisversionoftheJavaRuntimeonlyrecognizesclassfileversionsupto52.0不一定

Unity计算2个物体之间距离 (2个三维向量之间)

  publicfloatGetDistance(Vector3startPoint,Vector3endPoint)  {    floatdistance=(startPoint-endPoint).magnitude;    returndistance;  }  方法2  publicdoubleGetDistance(Vector3startPoint,Vector3endPoint)  {    doublex=System.Math.Abs(endPoint.x-startPoint.x);    doubley=System.Math.Abs(endPoint.y-startP

【Unity】自带的录屏插件Recorder

目录Recorder简介Recorder导入Recorder使用Recorder简介Recorder是Unity官方的录屏插件,可以直接录制Game窗口,还可以录制不同相机的视图。不仅可以直接生成视频、帧动画图、还可以制作gif和animation。Recorder导入菜单栏Windows→PackageManager,左上角选择UnityRegistry,右侧搜索栏查找recorder:找到该插件,右下角点击Install,安装完成即可使用。Recorder使用菜单栏Windows→General→Recorder→RecorderWindow即可打开该录屏插件的控制窗口:一般选择Movie

Unity连接Mysql数据库(详细教程)

Unity连接Mysql详解1.需要在unity中引用一个MySql.Data.dll文件(如果你安装的mysql中找不到这个文件,可以直接从网上下载一个)把这个文件放在Assets-Plugins下在代码中引用usingMySql.Data.MySqlClient;本地连接Mysql的字符串stringconstr=“Database=zzz;DataSource=127.0.0.1;user=root;Password=123456;pooling=false;charset=utf8;port=3306”;例:连接Mysql并进行模糊查找usingMySql.Data.MySqlClie

unity如何禁用物体上的其他脚本

unity如何禁用物体上的其他脚本一、把该物体组件的enabled设置为falsetransform.GetComponent().enabled=false;这种方法不太靠谱,可能禁用脚本后还会执行,其他组件完全可以。二、使用Destroy函数Destroy(transform.GetComponent());触发后直接销毁这个函数。三、使用bool值进行控制boolIsSucceed;第一个脚本执行完后,就用IsSucceed锁死,不让再执行后面的操作。

Unity-- Gfx.WaitForPresentOnGfxThread占用CPU过高导致帧率低

一个新建的URP项目,里面只有几个测试模型,结果在3070的笔记本电脑上,只能运行到20帧!FPS=20!这实在受不了,开始Profiler分析原因。发现Gfx.WaitForPresentOnGfxThread占用较高。应该是它导致了帧率这么低。死磕了一下午,终于找到原因,解决了。下面详细说明一下:Gfx.WaitForPresentOnGfxThread这个东西,是CPU已经准备好绘制下一帧,但是GPU还没准备好,应用程序等待GPU所花费的时间。附一个官网的说明:https://docs.unity3d.com/Manual/profiler-markers.htmlhttps://doc

Unity 使用NPOI,模板替换Excel中的关键字(针对.xlsx)

Unity使用NPOI,模板替换Excel中的关键字(针对.xlsx)需求:项目中要用到生成Excel来打印文件,只需要替换其中的值,保留原模板,生成新的Excel第一步:在unity中导入一下的dll新建一个Plugin的文件夹,把dll全部放进去以上选中的这些文件在unity的安装目录下Unity\Editor\Data\Mono\lib\mono\unity可以找到还有一个System.Data.dll,我放进去它会显示重复引用,所以我就没放上去,你要是想试试也可以在安装路径下找到,然后放进去其他的链接在这里下载:Dll下载地址第二步:新建一个Excel,取名为量表.xlsx(这个自己定