Unity中如何让模型(MeshRender)显示在UI之上
创作时间:
作者:
@小白创作中心
Unity中如何让模型(MeshRender)显示在UI之上
引用
CSDN
1.
https://blog.csdn.net/qq_42980269/article/details/145027074
有时候我们需要把模型(MeshRender或者别的)显示在UI之上,比如有些UV特效,但是MeshRender不像粒子一样可以修改SortingLayer和sortingOrder,想要显示在UI之上就要调整这两个参数和所在Canvas一样的层级。
没改之前是MeshRender是这样的:
没有可修改项。加上代码多了两个选项:
然后就可以按照自己的需求调整层级了。创建一个MeshRenderEditor脚本把下面这个代码放在Editor文件夹下,然后你的MeshRender面板就会多出两个属性。别的同理扩展。代码如下:
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(MeshRenderer))]
public class MeshRenderEditor : Editor
{
MeshRenderer meshRenderer;
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
meshRenderer = target as MeshRenderer;
string[] layerNames = new string[SortingLayer.layers.Length];
for (int i = 0; i < layerNames.Length; i++)
{
layerNames[i] = SortingLayer.layers[i].name;
}
int layerValue = SortingLayer.GetLayerValueFromID(meshRenderer.sortingLayerID);
layerValue = EditorGUILayout.Popup("Sorting Layer", layerValue, layerNames);
SortingLayer layer = SortingLayer.layers[layerValue];
meshRenderer.sortingLayerName = layer.name;
meshRenderer.sortingLayerID = layer.id;
meshRenderer.sortingOrder = EditorGUILayout.IntField("Order In Layer", meshRenderer.sortingOrder);
}
}
就可以发现模型按照想要的层级显示了。
热门推荐
2025春节祝福语大揭秘:这些话最火!
上海浦东新区旅游景点有哪些?跟随我一起来看看吧!
体制内职场:如何建立有效的人脉网络?
体制内理财新姿势:基金定投大揭秘
应届生如何在300万考生中突围?公务员考试攻略来了!
不卑不亢:职场生存的黄金法则
大众宝来怎么打开后备箱
养蚯蚓10大忌
经常“冥想”对身体有什么积极影响?4个益处,可以提前了解一下
坚持15个好习惯,让你越来越健康
50+蛇年吉祥話
经典名肴——豉汁蒸排骨
“扣”字到底怎么念?一起来“扣”一下吧!
“扣”字的N种玩法,你知道几个?
晋江飞重庆,最省钱的交通方案揭秘
北京现代伊兰特车主必看:自动挡换挡故障解决指南
自动变速器故障频发?这些应对方法请收好
自动变速箱换挡故障的终极指南
自动挡车辆换挡故障解决方案
自动挡挂不上档?这波操作让你秒变老司机!
【有声】韩国历史:光复节
韩国节庆日与传统文化习俗
三亚海鲜美食打卡攻略:从市场到餐桌的美味之旅
三亚必打卡:海胆蒸蛋的神仙美味
王安石教你贴春联,古诗里的讲究你知道吗?
山楂蜂蜜水,祛寒暖心喜迎新春
从《延禧攻略》魏璎珞看现代职场生存术
申请提前解冻司法冻结的财产需要提交哪些材料?
手机上怎么查询银行卡冻结原因?多途径解析与应对策略
忘了开过的银行卡、存过的钱?来“一键查卡”→