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);
}
}
就可以发现模型按照想要的层级显示了。
热门推荐
肾病患者冬季吃羊肉全攻略:从营养价值到食用禁忌
春季养肝,少酸多甘健脾胃
适合办公室吃的零食有哪些?十大办公室必备零食 哪一款是你最爱
克己复礼:从古训到现代实践
骆驼祥子主要内容概括 中心思想是什么
喜用神助你把握命运!
如何通过喜用神提升个人运势
机油中的C3和C5是什么意思?机油代理商必须知道的知识
四款养胃粥的详细制作攻略,总有一款适合你!
股票入门知识知识点总结
机器学习中的决定系数(R²):定义、计算及应用
高精度轴承波纹度激光多普勒测振仪技术要求与应用解析
心理应激如何加剧蛀牙风险?
儿童蛀牙高发!这些防蛀小妙招你get了吗?
隐形糖:你身边的“蛀牙帮凶”
胡适:在百转千回中创造人生意义
百转千回的人生:那些年我们错过的时光
《哪吒 2 魔童闹海》电影中隐藏的物理学,你看懂了吗?
沃顿神经科学研究中心推荐:社会交往中的观点采择技巧
“妈妈岗”能否缓解女性生育后再就业焦虑
易经卦象图详解:六十四卦吉凶对照表与生活应用
湖南省农村信用社:创新金融助力乡村振兴
如何设置有效的资产组合并评估其风险收益特征?这种设置如何根据市场变化进行调整?
黄金与哪些因素可以形成有效的对冲组合?这种对冲策略如何降低投资风险?
扫码识别产品生产信息的软件
定期锻炼,告别暴躁情绪!
原生家庭创伤如何影响暴躁性格?
中医教你如何平息暴躁脾气
哈佛心理学家刘轩:告别暴躁性格,掌握情绪管理
广州补牙费用大揭秘:你被坑了吗?