Unity3D中改变模型的颜色问题 15
初学者,在unity3d中创建几个cube立方体,要求被选中的改变颜色,选中其他一组的时候之前的颜色恢复,类似框选桌面快捷图标的效果,怎么做?...
初学者,在unity3d中创建几个cube立方体,要求被选中的改变颜色,选中其他一组的时候 之前的颜色恢复,类似框选桌面快捷图标的效果,怎么做?
展开
展开全部
你的代码是为被给脚本的物体服务的,所以他只改变那个被给的脚本的物体的颜色
要想改变子物体,必须要遍历子物体,遍历部分可以如下写法
*****************************************************************************************************
//得到所有可渲染的子物体
Renderer[] rds = transform.GetComponentsInChildren<Renderer>();
//逐一遍历他的子物体
foreach (Renderer r in rds)
{
//逐一遍历子物体的子材质
foreach (Material m in r.materials)
{
m.color = Color.black;
}
}
要想改变子物体,必须要遍历子物体,遍历部分可以如下写法
*****************************************************************************************************
//得到所有可渲染的子物体
Renderer[] rds = transform.GetComponentsInChildren<Renderer>();
//逐一遍历他的子物体
foreach (Renderer r in rds)
{
//逐一遍历子物体的子材质
foreach (Material m in r.materials)
{
m.color = Color.black;
}
}
展开全部
render.material.maincolor
选中一个的时候,恢复上一个选中的颜色,然后修改选中项的颜色就可以了
因此还要一个变量来存一个当前选中物体
选中一个的时候,恢复上一个选中的颜色,然后修改选中项的颜色就可以了
因此还要一个变量来存一个当前选中物体
追问
怎么判断选中?这个是关键
追答
哦~ 那推荐你看
Camera.ScreenPointToRay
这个是从相机发一条射线进场景
和
Physics.RayCast这个是用射线判断碰撞
这有个博客写的应该不错
http://www.cnblogs.com/xuling/archive/2013/03/04/2943154.html
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询