当前位置:网站首页>Unity笔记
Unity笔记
2023-01-19 15:33:04【阿斯提尼】
- Input.GetMouseButtonDown(0)只在鼠标按下时刻作用
- Vector3类型不能直接与double类型相乘,但可与float相乘
- 小球速度过快导致直接穿过墙体可以设置小球刚体组件中的Collision Detection模式为Continuous/ContinuousDynamic就可避免
- Mathf.Clamp(a,min,max);让a的取值在min和max之间
- Unity Graphical User Interface(UGUI)
- Inspector面板下的Max Size可以修改图片的尺寸,2048并非内存大小限制而是宽或高都不能超过2048个像素
- UGUI Anchors重合为点时选择的位置为原点建立笛卡尔坐标系(右上为正),PosX,PosY的值是Pivot点相对于这个坐标系的坐标,所以在坐标值不变的情况下更改锚点位置,相应UI的位置也会改变;Anchors不重合时Pivot点对位置的控制失效即不起作用,位置定位方式为控件边缘距锚点各个方向的偏移量;每个控件都有锚点,不过锚点的坐标位置是相对于父控件的
- Anchors的四个点对应着控件的四个顶点,各对应点之间的偏移量一旦设定就不会改变(用于屏幕适应)
- Pivot还可以控制控件的width,height改变方式,例如当Pivot的X为0时,增加Button的width,Button只会向右拓展左边不会动(依据是我们未改变PosX,实际就是锚点距中心点的水平偏移量不变)
- 当scene和game视图中的字体模糊时,再game视图设置具体的分辨率即可让字体变清晰
- PlayerPrefs数据持久化,跨场景保存传递数据,int、float、string,不支持bool值
- 一个场景中只能有一个AudioListener组件,一般挂在Camera上
- UGUI中Toggle控件绑定的事件需要有一个bool型参数来控制Toggle的状态(是否选中),而系统会自动将我们写的形参与Toggle的实际状态绑定,即不需要给形参赋值
- ScrollRect组件当选中移动类型为弹性时,内容组件与视口组件(通常是Mask)的顶部不能调节偏移量;内容组件以GridLayoutGroup组件为例,我们也可以通过调节GridLayoutGroup的Padding的方式来保证内容在视口的中央
- 在空物体上加个SpriteRender(Cube的为MeshRender)拖进图片,可以将图片当作物体直立在场景中
- 协程中yield return 耗费时间
- Random.Range(min,max)可以取到下限但取不到上限
- Animator状态机中,权重(Weight0~1优先级逐渐增大)一样的情况下BaseLayer的优先级最低,Layer越往下优先级越高,不过当优先级高的动画层中没有默认动画时,会播放低一层的动画
- 修改UI的位置用transform和rectTransform(UI专属,localPosition修改相对坐标即面板显示的坐标,position为绝对坐标为控件相对坐标与Canvas坐标之和)是一样的
- UGUI托管的控件即带RectTransform的用localPosition和LocalRotation,其它用position和rotation
- shift+左键以左键点击的对顶的点为基准等比例缩放;shift+alt+左键以中心点为基准等比例缩放;alt+左键以中心点为基准非等比例缩放(对边同时改变)
- GridLayoutGroup最好和Mask的3条边重合,因为滑动过程中GridLayoutGroup会偏移到和Mask重合;另外可以将每个grid放置在对应的空物体下,这样GridLayoutGroup迫使空物体尺寸为100×100而grid的实际大小不变,还方便计算尺寸;设计时最好计算好宽高(例:每页3×3共4页水平则,Group左上底与Mask重合;Group宽等于item12倍宽+space12倍宽;Mask的宽度等于item3倍+space3倍)
- 获取与本体无父子关系的物体上的控件可用GameObject.FindObjectOfType<>();Transform.Find(“子物体名”)找到对应子物体,同tranform.FindChild(消耗高)一样,并且只要物体的根节点为active状态,即使该物体甚至连它的父物体也隐藏到情况下都可以找到;Gameobject.find是找到hierarchy下最后一个同名物体,物体以及它的父物体等都必须被激活才能找到
- GameObject.Find()并不能查找到active为false的游戏物体;transform.Find()和transform.FindChild()方法是可以查找到隐藏的游戏物体的,但是也只限于是其transform的子物体才可以
- 给DropDown.value赋值要等DropDown的各个选项填充好之后,否则赋不了,即使令DropDown.value = 1(>0),实际DropDown.value的值还是0
- OnTrigger或OnCollision方法在所在脚本被禁用时,方法依然会被调用,只依赖于游戏对象,除非对象被隐藏或摧毁
- DoTween中每执行一次Do方法都会自动创建一个动画,然后自动销毁
- 不管是同一物体还是不同物体都是先挂的脚本都后执行
- mipmap原理:将一张贴图按照2的倍数进行缩小直到1×1,把缩小的图都存储起来(所以占的内存资源大了),在渲染时根据离相机的距离选择一张贴图来使用(这点类似LOD)
- lightmap:光照贴图,对场景中的静态物体进行烘焙得出一张lightmap建立照明效果,用来代替复杂的光照计算,提升了性能(这样即使删除灯光,也能显示照明效果)
- Prefab上的脚本如果拖拽赋值只能赋来自Prefab的东西
- 点击UI时禁用游戏内逻辑,可在输入判断条件里&&以下api(需引入命名空间):EventSystem.current.IsPointerOverGameObject()==false;
- 如果想要在弹出UI时屏蔽游戏内的逻辑,可以建一个全屏image改成全透明,并让它显示在UI的下方
- Unity中的存档方式:[1],PlayerPrefs数据持久化方案(只能int、float、string)[2],Serialization(序列化)将对象转化成字节流保存到File、Database、Memory,然后再反序列化(Deserialization)回来将字节流转换成对象。常见的序列化方法有:二进制法、xml和json(json和语言无关)
- 游戏设计分辨率如果低于电脑分辨率而又没做屏幕自适应,则画面会因全屏而被拉伸,这时候可以在Awake方法中写死分辨率Screen.SetResolution(1024,768,false);最后false是不全屏的意思。屏幕可能会闪一下因为执行到代码才会设置,如果是专业版unity可以在打包的时候splash image选项中将splash screen和Logos取消勾选解决;如果免费版需修改注册表解决
- 导入插件时出现warning,内容如果是使用了过时api,可以在该脚本上方#pragma warning disable 0618(后面是编号warning中会提到即CS0622)
边栏推荐
猜你喜欢
随机推荐
- 负电压是怎么产生的原理分析
- 迟滞比较器Hysteresiswindow和comparator(窗口比较器)原理
- 残留物与电子PCBA 的可靠性和三防漆涂敷前后可能导致电路板出现故障的变量
- 京东探索研究院 | 2023年十大科技趋势
- A variety of Chinese dialect voice landing applications, Microsoft's intelligent voice unlocks more interactive scenarios
- Is Alipay's annuity insurance worth buying?is it safe?
- Which is the top ten insurance for annuity insurance? Is it safe?
- Use MeterSphere beanshell global assertion reference JSONObject solution
- CNN+LSTM+Attention实现时间序列预测(PyTorch版)
- WebView加载heml代码简单应用
- CTA-Sensitive Behavior-AppOps Solution
- Beyond TensorFlow?Yann LeCun: "Why? PyTorch. That's why."
- 蜻蜓安全工作台程序编排简要说明
- WSL2安装systemd方法
- 安信证券开户安全吗?佣金是万几?
- 大智慧在上面开户安全吗?谁能告诉我一下
- 从合并石子学区间DP
- Golang的基本数据类型-基本使用
- 线扫相机DALSA--卡间同步
- 海康visionmaster-图像Bitmap和CmvdImage互转的方法
- 【threejs】根据点绘制直线
- 【threejs】threesjs 初学场景构建
- 第十三章 UML建模
- 为什么很多年轻人,都被 “伪自律” 给拖垮了?
- 小黑年前实习倒数第二天,又到了开心的疯狂星期四的leetcode之旅:剑指 Offer 27. 二叉树的镜像&&剑指 Offer 28. 对称的二叉树
- Servlet —— Servlet API
- 使用nvm管理node版本(window版)
- typescript学习笔记(三)
- vtkPolyData数据的空间变换
- 深入透析 类的 访问修饰符 public、 protected 、private
- C语言基础 — ( 函数——模块化设计)
- Wider Face+YOLOV8人脸检测
- Wider Face+YOLOV7人脸检测
- 【Android安全】Google Hardware-backed Keystore | SafetyNet | 远程证明Remote Attestation
- [转]SteamVR 1.x️一、实现手与物体交互——基于[CameraRig]
- PHP MySQL Where 子句
- PHP MySQL Order By 关键词
- 我理解的卓越工程
- 各种huggingface分词器对比
- PHP MySQL Order By keywords




