Canvas
调整渲染顺序:
- Hierarchy中在父类中的顺序;(???)
- 摄像机深度;
- Sorting Layer;
- Order in Layer。
Render Mode
- Screen Space -overlay :不需要UI摄像机,UI将永远出现在所有摄像机最前面。
- Screen Space -Camera :此模式需要提供一个摄像机,该摄像机始终对着该UI。
- World Space :完全3D的UI
自适应分辨率
以宽度为标准缩放
Rect Transform
Blueprint:
在此模式下,物体不会旋转和缩放。
在Inspector中调整scale时,组件大小缩放,但边界(4个蓝色实心点)不会进行缩放。
Raw Edit:
在此模式下,调整物体的Divot和Anchor不会改变物体的位置和尺寸。即在Inspector中调整Pivot值时,在Scene中看到的情况是,蓝色实心点保持不动,组件根据Pivot比例位置移动。
Image
Raycast Target
UI事件会在EventSystem在Update的Process触发。UGUI会遍历屏幕中所有RaycastTarget是true的UI,接着就会发射线,并且排序找到玩家最先触发的那个UI,在抛出事件给逻辑层去响应。
不需要响应的Image和Text,要取消勾选掉。RaycastTarget如果被勾选的过多的话, 效率必然会低。
Raw Image
适合做小地图。
UV Rect:UV纹理编辑器,移动UV框:X向右,Y向上
Camera
targetTexture(可用来做小地图)
Camera的属性targetTexture作用是可以吧某个摄像机A的视图作为Renderer Texture,然后添加到一个Material对象形成一个新的材质:
- 首先创建一个材质Material修改名字为TargetMaterial,然后创建一个Render Texture 修改名字为TargetRenderTexture;
- 把材质TargetMaterial的Shader修改为Texture;
- 把TargetRenderTexture拖到TargetMaterial上Shader的纹理区;
- 创建一个摄像机,并把TargetRenderTexture拖到摄像机的TargetTexture属性上,Culling Mask选项去掉UI;
- 创建一个Plane,并调整大小和位置,并让让Plane上Image或Raw Image组件上的材质使用TargetMaterial;
- 运行游戏我们会看到右上角Plane面板中会显示出场景中的Cube,即小地图。
Text
Rich Text
Text、GUIStyle 和 TextMesh 类都具有 Rich Text 设置,此设置会指示 Unity 在文本中查找标记标签。Debug.Log 函数也可使用这些标记标签来增强代码中的错误报告。标签不会显示,但会指示要应用于文本的样式更改。
参见Unity手册:https://docs.unity.cn/cn/2019.4/Manual/StyledText.html
可在Add Component -> UI -> Effects中增加阴影和描边特效。