首页 > 其他分享 >【Unity】UI、背景和3D的Camera和Canvas设置

【Unity】UI、背景和3D的Camera和Canvas设置

时间:2024-09-23 09:17:03浏览次数:7  
标签:Canvas 背景 物体 相机 Unity Camera UI 3D

目前存在需求

背景是指定的图片,该图片始终显示在页面中,不会因场景的视角操控发生尺寸等变化;

UI内容显示在页面最上层,同样不会因场景的视角操控发生尺寸等变化,但是当软件整个尺寸发生变化时,会跟随变化,UI内容会覆盖3D物体;

3D物体可以随着相机视角的变化而变近变远等,3D物体上可能存在UI卡片等。

需求分析

背景在最底层,3D物体在中间层,UI在最顶层。

因此背景和UI不能公用一个Canvas,3D物体也需要一个Canvas;

3D物体根据相机视角改变远近等,背景和UI不变,那么3D物体使用单独的相机,背景和UI使用对应的UI相机。

成果展示

查看相机视角控制方法

场景部分组成

三个相机的展示内容:三个相机的内容互不干扰。
主相机

背景相机

UI相机

参数设置

需要建立Sorting layer如下:

将对应的物体设置为对应的层级。

背景的相机和Canvas设置如下
需要将背景相机拖拽到背景CanvasRenderCamera
注意:Sorting Layerorder in Layer参数的选择

注意Depth参数的设置

UI的相机和Canvas设置如下

主相机的设置如下

3D物体的Canvas设置如下

一些参数的说明

Canvas组件

mode:

  • space-overlay(屏幕空间-全局) 展示场景中的方形区域,内部的所有UI元素可见,非常吃性能

  • space-Camera 允许指定一个镜头,让系统渲染镜头内的元素

Canvas Scaler组件

UI scale Mode

  • Constant Pixel Size (保持像素大小) UI可以无视屏幕大小,保持像素的大小

  • scale with screen size (随屏幕大小缩放) 根据屏幕大小适应
    ​ - reference Resolution UI主分辨率 X1280 Y720 (桌面端)
    - Match height:1 只有高度改变时 UI元素才会随之改变

  • constant physical size(保持实体大小) 无视屏幕和分辨率大小 保持UI大小

UICamera的设置

Clear Flags : Depth only 清除镜头的深度信息

projection(投影类型) :Orthographic(正交) 2D场景

标签:Canvas,背景,物体,相机,Unity,Camera,UI,3D
From: https://www.cnblogs.com/sitarblogs/p/18426300

相关文章

  • 音视频生态下Unity3D和虚幻引擎(Unreal Engine)的区别
    技术背景好多开发者跟我们做技术交流的时候,会问我们,为什么有Unity3D的RTMP|RTSP播放模块,还有RTMP推送和轻量级RTSP服务模块,为什么不去支持虚幻引擎?二者区别在哪里?本文就Unity3D和虚幻引擎之间的差异,做个大概的分析,实际上,Unity3D和虚幻引擎(UnrealEngine)在游戏开发及其他相关领域都......
  • 【Canvas技法】辐射式多道光影的实现
    【用余弦函数实现辐射四道光】成图:代码:constR=180;//基准尺寸//十字纹ctx.save();r=R;varN=3600;for(vari=0;i<N;i++){vartheta=Math.PI*2/N*i;vara=createPt(r*Math.cos(theta),r*Math.s......
  • 在虚幻引擎中实现Camera Shake 相机抖动/震屏效果
    在虚幻引擎游戏中创建相机抖动有时能让画面更加高级,比如遇到大型的Boss,出现一些炫酷的特效加一些短而快的CameraShake能达到很好的效果,为玩家提供沉浸感创建CameraShake调整Shake参数到第三人称或第一人称蓝图调用CameraShakeRadius值越大晃动越强......
  • 【Canvas与诗词】木兰辞节选
    【成图】【代码】<!DOCTYPEhtml><htmllang="utf-8"><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><head><title>金边钢底徽章</title><styletype="text/css"&g......
  • unity的移动方式
    关于unity获取外设的输出:Input.GetAxis 或Input.GetAxisRaw是Unity引擎中的一个方法,用于获取用户输入设备(如键盘、鼠标、游戏手柄等)的模拟值。它通常用于处理平滑的输入,比如移动、旋转和缩放。[GetAxis 返回一个介于-1和1之间的浮点数值,表示输入设备的状态。][如果......
  • Netty+HTML5+Canvas 网络画画板实时在线画画
    采用Html5的canvas做前端画画板,发送数据到后端Netty服务,实时转发笔迹数据,在线实时同步画笔轨迹,单击绿色小方块,保存画板的图片页面:<!--index.html--><!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>网络画画板</title></head><body&g......
  • WPF Canvas show custom control with ellipse filled with image and text,peridoica
    //customcontrol<UserControlx:Class="WpfApp389.ElpImageTbk"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"......
  • 【Canvas与诗词】《侠客行》节选
    【成图】【代码】<!DOCTYPEhtml><htmllang="utf-8"><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><head><title>437.侠客行</title><styletype="text/css"&......
  • Unity UI制作新的记录
    也是玩上unity了家人们。记录一下与ui界面斗智斗勇的半个月。TextMeshProtextMeshProUGUI.preferredHeight获取文本长度,便于修改滚动条长度或文本物体长度。TextMeshPro中的使用的文本asset可以在导入字体font文件之后右键->create->TextMeshPro->fontasset......
  • Unity编辑器扩展秘籍-实现一个可拖放的List
    usingSystem;usingSystem.Collections.Generic;usingUnityEditor;usingUnityEngine;usingObject=UnityEngine.Object;namespaceyaojz{publicclassDroppableListView{privateList<DroppableItem>_datas=newList<DroppableIt......