
unity笔记
迷lù
这个作者很懒,什么都没留下…
展开
-
Unity Game Framework使用- Json转化对象为null
【代码】Unity Game Framework使用- Json转化对象为null。原创 2023-05-26 00:58:19 · 314 阅读 · 0 评论 -
Unity C# 打印本地PDF文件遇到的问题。
mono-io-layer-error (1155)原创 2023-02-08 15:29:40 · 670 阅读 · 1 评论 -
Unity异步加载场景SceneManager.LoadSceneAsync主线程第一帧卡顿
问题:如下代码,当开启协程LoadScene后,SceneManager.LoadSceneAsync会导致主线程都一起卡住,如update啥的都不运行了。解决办法:在编辑器中会卡住,打包后运行就会正常加载了!原创 2022-09-23 09:31:00 · 1807 阅读 · 0 评论 -
Unity C# ITextSharp5.5.13 笔记
Unity C# ITextSharp5.5.13 操作PDF ,打印原创 2022-09-06 10:34:00 · 1427 阅读 · 0 评论 -
Unity 关于VideoPlayer黑屏的问题。
解决办法: 1.更新Unity版本到2019.2.11,本人是从2019.1.4版本更新上来的目前没有发 现会导致之前已经发布的Ab出现丢失的问题或其它错误。问题原因:https://blog.youkuaiyun.com/ydx10086/article/details/106145357。unity 2019.2.11版本之前,unity 的 VideoPlayer 在Android 10下有bug。问题原因:有些Unity安装后不会自动加上与VideoPlayer相关的Shader。...原创 2022-08-29 15:11:21 · 7440 阅读 · 1 评论 -
unity Scene场景中的物体被隐藏
场景:一艘船创建一些子弹,并设置子弹的Parent后,在Scene窗口中被隐藏,在Game窗口中却显示正常。原因:误点了Hierarchy窗口中的小眼睛,在代码中SetParent后,可能Hierarchy的内容被更新,导致小眼睛开始起作用。解决办法:把小眼睛点掉。...原创 2022-07-04 12:50:12 · 3125 阅读 · 0 评论 -
Unity 关于Destroy 和 OnDestroy失效(延迟)的问题
场景:在做一个回合制小游戏时,我方角色开火后,需要等待子弹全部消失(Destroy),敌方才会开始操作,如何判断子弹全部消失,就是通过它们的父级如何transform.childCount==0; 但是出现了bug原因: Destroy后,对象并没有马上消失,而是等下一帧,所以transform.childCount !=0。解决办法:先bullet.transform.setParent(null);再 Destroy。...原创 2022-06-27 11:12:43 · 2869 阅读 · 1 评论 -
Unity SplashImage 缩放问题
遇到的问题:项目导出的时候,添加开机画面,使用的图片设置成sprite的模式。添加到SplashImage中,导出后运行,图片的比例拉伸 了。试过修改图片大小,并没有说明乱用。解决办法:设置图片属性 在属性选项卡中。确保在Sprite Mode> Mesh Type下设置为Full Rect。如图,设置图片的属性...转载 2022-06-20 11:32:27 · 662 阅读 · 0 评论 -
Unity 物理引擎的一些笔记
unity 物理引擎原创 2022-06-15 15:00:22 · 472 阅读 · 0 评论 -
Unity关于使用RanderTexture时,Material或shader失效的问题。
今天在做使用RanderTexture做分屏时,遇到两个副摄像机下的对象使用Material,在RanderTexture中无法显示的问题,在不断尝试后,发现只要在两个使用RanderTexture的RawImage上使用Shader为“Alpha Blended Premultiply”的材质即可解决这种问题,甚至有可能还能解决遮罩失效的问题。...原创 2021-12-14 18:11:00 · 2761 阅读 · 0 评论 -
Unity 多相机下的UI按钮无效或位置错误
场景:将多个摄像机渲染到RenderTexture,然后在引用到主相机的Panel中,当分辨率发生变化时,按钮无法点击或UI射线位置不对。原因:当分辨率发生改变,Panel也随着主相机发生改变时,我们看到的画面和副摄像机的画面其实是不一样的,通过观察发现,当分辨率发生改变后,主摄像机下的对象都发生了改变,而副摄像机还是使用RenderTexture的的尺寸。解决办法:在代码中新建基于之前的RenderTexture的RenderTexture资源,然后对新的资源根据当前屏幕尺寸进行设置就ok,为什么要新原创 2021-12-07 17:59:51 · 1645 阅读 · 0 评论 -
Unity 设置对象参数后,延迟一帧
场景:在同一个方法中,改变了一个图片的大小后,接着打印图片的尺寸打印出来的值是改变之前的。原因:对对象修改参数后,当前帧并未执行完,或许如set方法被丢进下一帧执行了,如果不是这样,可以试试使用对象列表还原该问题。解决办法:假设设置的是图片宽,image.width = w;则如果要在当前帧引用它应该debug.log(w);...原创 2021-12-07 17:51:01 · 3437 阅读 · 0 评论 -
Unity3D副摄像机下的UI在发布后无法交互
Unity3D副摄像机下的UI在发布后无法交互将副相机的display设置成display1.如果有使用randertexture呈现父相机画面的,取消该组件的raycasttarget属性。原创 2021-12-01 16:03:27 · 2778 阅读 · 0 评论 -
Unity 文字字体显示错误,全是小白快。
原因:使用二维向量对文字父级进行缩放会导致这样的结果。如以下正确写法: if (show_mode == 2) { ui_control.transform.localScale = new Vector3(1, 1,1); } else { ui_control.transform.localScale = new Vector3(0.5f, 1,1); }...原创 2021-08-20 12:46:13 · 1155 阅读 · 0 评论 -
Unity Vectrosity解决如何设置本地坐标。
应用场景:因为要做偏振的项目,需要将其它相机的画面通过渲染成RenderTexture资源后引用到主摄像机上,但是如果画的线在主摄像机上就会导致偏正有问题,但是如果把线放在其它摄像机上,但坐标不对。因此找到以下解决方法,以作记录。将鼠标坐标转化成本地坐标 //定义一个新的点 Vector2 newPoint = Input.mousePosition;//将鼠标坐标转化成本地坐标 RectTransformUtility.ScreenPointToLocalPointInRectangle([原创 2021-08-19 18:02:11 · 543 阅读 · 1 评论 -
Unity UGUI(如按钮等) 交互事件无响应问题!
一、 问题描述:有多个World Space 模式的Canvas的情况下,某个或某几个Canvas下的UI交互事件无响应。将多个摄像机分别渲染成Render Texture资源后,拖到Panel对象的Raw Image组件,这些摄像机下的UI交互事件无响应。(特别注意:在Unity下运行调试功能都正常,但是生成exe后无响应!)基于问题2的内容,如果在代码中使用射线Raycast 发射射线获取与射线有交集的UI时,在Unity编辑器下正常获取,但发布生成exe程序后,无法获取,只能获取到Panel。原创 2021-07-05 16:31:41 · 4921 阅读 · 0 评论 -
Unity3D 获取控件四个角在的坐标
Vector3[] corners = new Vector3[4]; //世界坐标 单位unit gameObject.GetComponent<RectTransform>().GetWorldCorners(corners); //UI 屏幕坐标 单位像素 transform.GetComponent<RectTransform>().GetLocalCorners(corners); foreach (var item in corners) { D.转载 2021-06-25 11:30:22 · 1459 阅读 · 0 评论 -
关于Unity Tilemap的瓦片缩放问题
需求:假设有个棋盘64x64,要求根据每一关卡的难度将格子内的棋子缩小,保持格子的大小依旧不变。就好比网页元素的排版一样,盒子大小不变通过改变内边距使盒子内的元素缩小。一、在编辑器修改单个(tile瓦片)从方法在代码中如使用setTile()后会失效在tile palette中选着指针在选中所要改变的单元,在属性面便中修改二、在tilemap组件中修改整体三、代码中修改,以上两种修改方法都是基于编辑器的,如想在代码中动态修改,则可以参考下面的方法。1.同样在代码中修改第二个方原创 2021-05-25 11:59:57 · 6641 阅读 · 3 评论 -
Unity了两个向量之间的距离
if ((target - (Vector2)this.transform.position).sqrMagnitude<3){ ResetTarget();}原创 2021-05-14 15:18:54 · 877 阅读 · 0 评论 -
Unity 遮罩Shader
shader代码:Shader "VTNew1061/MaskIcon"{ Properties { [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {} _Mask("Base (RGB)", 2D) = "white" {} _Color("Tint", Color) = (1,1,1,1) _StencilComp("Stencil Compar原创 2021-05-07 12:48:41 · 476 阅读 · 0 评论 -
Unity 支持UGUI Mask遮罩的PhotoShop混合模式特效Shader
shader代码:Shader "/BlendShader/Blend Operations" { Properties{ _Color("Color Tint", Color) = (1, 1, 1, 1) _MainTex("Main Tex", 2D) = "white" {} _AlphaScale("Alpha Scale", Range(0, 1)) = 1 //MASK SUPPORT ADD _Ste原创 2021-05-07 12:47:32 · 544 阅读 · 0 评论 -
Unity2D 让自定义UI shader支持UGUI 的mask
场景:在遮罩层下的ui对象使用material(shader)会导致本身不受mask的影响。如:以上没有任何配置错误!解决办法:修改自定义shader,使它支持mask参数Shader "....." { Properties{ ..... //MASK SUPPORT ADD _StencilComp("Stencil Comparison", Float) = 8 _Stencil("Stencil ID", Float原创 2021-05-07 12:41:48 · 801 阅读 · 1 评论 -
Unity 图片模糊特效Shader
Shader:Shader "VT131A/GaussianBlur"{ Properties { _MainTex("Texture", 2D) = "white" {} _StencilComp("Stencil Comparison", Float) = 8 _Stencil("Stencil ID", Float) = 0 _StencilOp("Stencil Operation", Float) = 0 _StencilWriteMask("Stencil Write原创 2021-04-25 11:06:29 · 1073 阅读 · 0 评论 -
如何做出漂亮的追踪子弹轨迹
前言:这是对哔哩哔哩up主分享的视频的代码整理。up链接:https://space.bilibili.com/2385679?spm_id_from=333.788.b_765f7570696e666f.2正文:第一种: public FollowTarget() { Vector2 direction = target - (Vector2)(transform.position); angle = 360 - Mathf.Atan2(direct原创 2021-04-10 14:00:14 · 929 阅读 · 0 评论 -
Unity 两个UI(坐标)之间的连线(直线)。如连线题
应用场景:屏幕上随机出现n对图片,使用鼠标点击图片进行匹配。鼠标点击第一个图片时,开始连线,起点为第一个图片的位置,终点为鼠标的位置。点击空白线条消失,第二次点击匹配失败线条消失,匹配成功线条消失。//连线脚本public class UIMatching : MonoBehaviour{ private Image line; //线条颜色材质。在这因挂载在了Image对象上,故取本身作为材质 private Vector2 startPoint; //起点 线的起点坐标原创 2021-04-02 11:03:16 · 3962 阅读 · 1 评论 -
2021-02-22
Unity2D 射击游戏模板一、武器类public class Weapon : MonoBehaviour{public GameObject BulletPrefab; //子弹预制体资源private GameObject mBullet;#region 武器的功能//创建预备子弹public void InstantiateBulletPrefab(){ mBullet = Instantiate(BulletPrefab); mBullet.transfor原创 2021-02-22 18:38:16 · 97 阅读 · 0 评论 -
Unity 将其它摄像机拍摄到的画面作为图片资源使用,类似于游戏小地图
Unity 将其它摄像机拍摄到的画面作为图片资源使用,类似于游戏小地图。一、创建一个Render Texture资源二、点击Render Texture资源,设置资源显示大小三、选择将要引用的摄像机(camera),并在其Target Texture中引用Render Texture。四、点击Render Texture资源,重置五、创建一个panel对象,并添加Raw Image组件,texture中引用Render Texture,这样就可以将摄像机资源实时显示在panel上了。原创 2021-02-04 14:26:35 · 779 阅读 · 0 评论