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);
}
}
就可以发现模型按照想要的层级显示了。
热门推荐
沒生病卻提不起勁?你有「職業倦怠」嗎?職業倦怠帶來的身心影響與因應對策
运动心率解析,科学监测运动强度
弹簧的劲度系数与什么有关
云南旅游:无人机拍照技巧与法规须知
玉米淀粉、糯米粉、澄粉、粘米粉、木薯淀粉的用途
偿还自住住房贷款提取指南
Ubuntu 硬盘分区策略:提高电脑性能与稳定性的关键
汽修专业职业发展规划指南
胆囊萎缩怎么治疗最好
如何解决柴油机动力不足的问题?这些解决方法有哪些技术要点?
老照片“复活”、影片创作……生成式AI引爆创新潮!
生化干燥剂可以用于干燥衣物吗?
衣服去甲醛的最好办法
阜阳汉简《诗经》现存较早的古本
《诗经》里的文化基因丨中华文化符号和形象
如何正确的挑选少儿编程兴趣班
如何为孩子选兴趣班?真实体验避坑指南来了!
医院多收了钱应该如何处理?
六道轮回图详解:生死流转的艺术表达
跑步三个月后的脸部变化:从脂肪到线条的蜕变
脾的位置及其保护方法
残疾妻子邹孝娟:用爱与坚韧编织幸福生活
购房网签合同和备案合同有何区别?
壁纸选择指南:如何挑选适合家居的壁纸风格与材质
种植玉米怎样做到一播全出苗
美联储降息预期下的市场走势分析
儿童猫毛过敏应对策略:如何与爱猫共处?
如何正确使用copy命令进行文件复制?
如何理解投资在不同阶段的特点
盖浇饭,才是最适合中国胃的健身餐!