如图要获取划线物体并修改其材质球:
private Transform[] FindChild;
public Material ChangeMat;//变换后的材质球
private Material mat;
void Start()
{
FindChild = this.gameObject.GetComponentsInChildren<Transform>(true);//true表示包括隐藏物体的查找
foreach (Transform child in FindChild)
{
if(child.childCount == 1)//0为最下子物体即AttackPosition_Special
{
Transform FindLChild = child.GetChild(0);
mat = FindLChild.GetComponentInChildren<MeshRenderer>().material;
//Debug.Log("Mat");
}
}
}然后再做材质球的变化,记得拖拽。文章来源:https://www.toymoban.com/news/detail-613305.html
这里要注意的是,如果代码运行无误,包括Debug也正常输出,且材质球由ShaderGraph制作,但材质球未发生变化,那么可考虑mat.shader = ChangeMat.shader;文章来源地址https://www.toymoban.com/news/detail-613305.html
到了这里,关于Unity3D 获取子孙物体并修改材质球属性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!