Unity3D中模型变换颜色的问题!!急~~~~~~~!!!

   更新日期:2024.05.13
你的代码是为被给脚本的物体服务的,所以他只改变那个被给的脚本的物体的颜色
要想改变子物体,必须要遍历子物体,遍历部分可以如下写法
*****************************************************************************************************
//得到所有可渲染的子物体
Renderer[] rds = transform.GetComponentsInChildren<Renderer>();
//逐一遍历他的子物体
foreach (Renderer r in rds)
{
//逐一遍历子物体的子材质
foreach (Material m in r.materials)
{
m.color = Color.black;
}
}

如果是unity自建的object,应该没问题,但如果是导入的,可能会出现改不了的情况,其颜色也可能是由材质贴图控制的~这种情况下应该改贴图颜色才能改变颜色吧?~~
如果真是材质贴图倒方便了~~你可以通过PS多设置几张贴图,直接更改贴图就可以实现改变颜色了~~我用过这种方便 ~~嘻嘻~
我对unity不是很精通~~希望这个回答能给你帮上点小忙,而不是添乱~~嘻嘻~~~

只要把你想要换色的部分都通用一个材质球(比如已经实现换色的那个材质球)就可以了,我刚好也在做一个汽车,已经实现车体换色了。

脚本赋给根对象就行了,不必遍历子对象

  • 18330015258 :unity如何把3d模型变成黑白
    邰强例2233 :答:把3d模型的材质球全部换成黑白色的材质即可变为黑白。
  • 18330015258 :Unity3D中改变模型的颜色问题
    邰强例2233 :答:你的代码是为被给脚本的物体服务的,所以他只改变那个被给的脚本的物体的颜色 要想改变子物体,必须要遍历子物体,遍历部分可以如下写法 //得到所有可渲染的子物体 Renderer[] rds = transform.GetComponentsInChildren<Renderer>();//逐一遍历他的子物体 foreach (Renderer r in rds){ //逐一遍历子...
  • 18330015258 :unity3d怎么通过脚本改变颜色
    邰强例2233 :答:绿色,定义material2;然后获取物体的renderer,renderer.matertal=material1;这样就是让该物体变成红色。
  • 18330015258 :unity3d 如何代码修改某个shader的颜色
    邰强例2233 :答:1.打开软件,新建工程如下图所示。点击创建工程按钮。2.在层级面板中穿件Cube,在项目面板鼠标右键中创建材质,如下图所示 3.在项目面板下创建脚本文件,如图所示 4.双击脚本文件打开,编写代码如下 5.创建标准shader,如下图所示 6.并将创建的shader替换给Cube对象 7.双击打开5中创建的Shader文件,查...
  • 18330015258 :unity3d怎么改变界面的颜色?
    邰强例2233 :答:unity3d 改变界面颜色的具体步骤如下:我们需要准备的材料分别是:电脑、unity3d。1、首先我们打开unity3d,点击打开Edit中的“Preferences”。2、然后我们在弹出来的窗口中点击打开Colors中的Background。3、然后我们点击后面的颜色,之后选择喜欢的颜色即可。
  • 18330015258 :如果给新建的gameobject上颜色?unity3d.
    邰强例2233 :答:mycube.renderer.material.color = Color.red;//这是把mycube这个物体设置为红色 要改其它颜色,定义一个颜色值就行,比如 = new Color(0.1f,0.2f,0.3f,1.0f),注意最后一个值是alfa,就是影响透明度的,设为1就是不透明,要表现出半透明就是0.5,前提是这个shader要支持透明通道 ...
  • 18330015258 :在unity3d里面怎么把模型饱和度提高
    邰强例2233 :答:在unity3d里面把模型饱和度提高:render.material.maincolor选中一个的时候,恢复上一个选中的颜色,然后修改选中项的颜色就可以了,因此还要一个变量来存一个当前选中物体。如果是unity自建的object,应该没问题,但如果是导入的,可能会出现改不了的情况,其颜色也可能是由材质贴图控制的,这种情况下应该...
  • 18330015258 :我的Unity3d 的界面是黑色的,如何设置为白色的那种
    邰强例2233 :答:1、首先我们打开unity3d,点击打开Edit中的“Preferences”。2、然后我们在弹出来的窗口中点击打开Colors中的Background。3、然后我们点击后面的颜色,之后选择喜欢的颜色即可。设置为白色的那种就行了。注意事项:unity中Layer最多32个,对应一个Int32类型数据变量,其中每一个bit对应一个Layer。当该bit为1...
  • 18330015258 :Unity打包后UI变粉红色
    邰强例2233 :答:这个应该是某一个物体没有做好,Unity3D自己加上的一个替代物。建议重新调整一下那条线。我们通过unityassetstore或者blender等等外源导入素材时,会出现材质缺失的bug,是由于unity本身管线在每个版本的更新过程中,材质的渲染编码发生了改变。
  • 18330015258 :unity3d中 如何用js代码来更改shader中的3个子着色器?
    邰强例2233 :答:用SetColor()函数 具体看官方脚本手册的Material类 例子是:function Start () { //设置glossy着色器以便使用高光颜色 renderer.material.shader = Shader.Find (" Glossy");//设置高光色为红色 renderer.material.SetColor ("_SpecColor", Color.red );} ...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网