有些效果substance物质的。然而,对房地产的材料可以不寻常Material方法调用,必须ProceduralMaterial打电话。

using UnityEngine;
using System.Collections;public class TestProceduralMaterial : MonoBehaviour {public GameObject TestCube;public Texture2D tex;public ProceduralMaterial materialItem;void Start () {ProceduralMaterial substance = Object.Instantiate(materialItem) as ProceduralMaterial;//载入一个程序材质TestCube.renderer.sharedMaterial = substance;TestCube.renderer.sharedMaterial.SetTextureScale("_MainTex" , new Vector2(3,3));//改变uv,这是正常材质的方法ProceduralPropertyDescription[] inputs = substance.GetProceduralPropertyDescriptions();foreach(ProceduralPropertyDescription input in inputs)//获得程序材质的属性,有的属性不知道是什么名字的时候能够用这个获得全部属性名字和类型{Debug.Log("input type = "+input.type +"   input name = "+input.name);}substance.SetProceduralBoolean("Battens",true);//设置boolsubstance.SetProceduralFloat("Battens_Amount_X",6f);//设置floatsubstance.SetProceduralColor("Wood_Color",new Color(0.8f,0.5f,0.2f));//设置颜色substance.SetProceduralTexture("Input",tex);//设置贴图substance.RebuildTextures();//这句话是必须的应用全部改动。}// Update is called once per framevoid Update () {}
}

当然还有SetProceduralEnum,SetProceduralVector。等设置属性。依据须要设置。

我在载入的时候会出现这个问题

无效的程序材质。可是值都已经改动。图也赋上去了,(2014-07-23加入备注。经过測试。这样克隆出一个材质假设改动是不能够使用的。由于这样本身载入错了。改动值的时候也有问题了,仅仅能一个程序材质仅仅能针对一种使用,我研究了下没有好的new出一个新的程序材质的方法,大家有知道的方便告诉下。

)。不知为什么,在ProceduralMaterial和renderer.material的属性也就是正常材质一起改动值的时候会出现这样的情况,

我是为了同一个材质在不同的物体上有不同的參数。才去这样设置Object.Instantiate(materialItem) as ProceduralMaterial;//载入一个程序材质,这样保证不改动主材质球的属性,能够在不同物体上使用同一个substance通过调整值去实现不同的效果。假设我不使用这句话Object.Instantiate。去载入就没事了。显示正常。可是这样仅仅能一个材质球相应一个物体。其它的物体再次这样使用这个材质球的时候。改动參数的时候改动的是主材质球,这样物体就全变了。变成你最后一次改动的參数效果。

这样就会显示出来,这个仅仅影响界面參数显示,不影响实际效果,可是看着那个无效的程序材质invalid Procedural Material有些不爽,不知自己的值是否正确。是否自己想要的。我通过測试确实參数都对应的改动了,有哪位大侠知道请告知小弟。

最后说一下.renderer.sharedMaterial 和renderer.material的差别,我建议使用前者共享材质,可是他在本地开发的时候会出现故障。会影响根材质,这样把自己project中的材质属性就改动了,只是大家能够使用平台推断,在本地project使用后者。公布各个平台使用前者。由于后者每次调用都会new一个材质出来。太耗内存了。

using UnityEngine;
using System.Collections;public class TestProceduralMaterial : MonoBehaviour {public GameObject TestCube;public Texture2D tex;public Material materialItem;void Start () {TestCube.renderer.sharedMaterial = materialItem;TestCube.renderer.sharedMaterial.mainTextureScale = new Vector2(3,3);//改变uv。这是正常材质的方法ProceduralMaterial substance = TestCube.renderer.sharedMaterial as ProceduralMaterial;//得到该物体的程序材质ProceduralPropertyDescription[] inputs = substance.GetProceduralPropertyDescriptions();foreach(ProceduralPropertyDescription input in inputs)//获得程序材质的属性,有的属性不知道是什么名字的时候能够用这个获得全部属性名字和类型{Debug.Log("input type = "+input.type +"   input name = "+input.name);}substance.SetProceduralBoolean("Battens",true);//设置boolsubstance.SetProceduralFloat("Battens_Amount_X",6f);//设置floatsubstance.SetProceduralColor("Wood_Color",new Color(0.8f,0.5f,0.2f));//设置颜色substance.SetProceduralTexture("Input",tex);//设置贴图substance.RebuildTextures();//这句话是必须的应用全部改动。}// Update is called once per framevoid Update () {}
}

这种程序是没有问题的,可是使用改动的都是根材质。这个方案是正确的。肯定没错

版权声明:本文博主原创文章,博客,未经同意不得转载。

unity节目素材ProceduralMaterial采用相关推荐

  1. unity3d collider自动调整大小_自动网格组合建模工具Unity游戏素材资源

    分享最新的CG教程与素材资讯! 人人素材RRCG-专业的CG艺术交流网站 点击上方蓝字关注人人素材 本游戏资料是自动网格组合建模工具Unity游戏素材资源,大小:735 KB ,格式:unitypac ...

  2. unity场景素材_[游戏素材]游戏场景环境天气变化Unity游戏素材资源

    分享最新的CG教程与素材资讯! 人人素材RRCG-专业的CG艺术交流网站 点击上方蓝字关注人人素材 本游戏资料是游戏场景环境天气变化Unity游戏素材资源,大小:143 MB ,格式:unitypac ...

  3. Unity场景素材导出为 FBX文件的方法

    系列文章目录 一.Unity场景素材导出为 FBX文件的方法:http://t.csdn.cn/Xyjxe 二.Unity场景素材导出为 OBJ文件的方法:http://t.csdn.cn/08RY3 ...

  4. Unity NGUI高端游戏小地图6组图标Unity游戏素材资源(UGUI可用图片素材)

    Unity NGUI高端游戏小地图6组图标Unity游戏素材资源(UGUI可用图片素材) 项目下载 Demo下载地址 效果图 例子场景 项目下载 Demo下载地址

  5. unity 根据模型生成碰撞体_快速准确立体碰撞体自动生成器Unity游戏素材资源

    本游戏资料是快速准确立体碰撞体自动生成器Unity游戏素材资源,大小:5 MB ,格式:unitypackage,使用软件:unity5.6.4或更高,资产版本:Version 1.1(current ...

  6. unity3d 人物对话_角色交互任务对话系统Unity游戏素材资源

    游客,您需要回复才可以查看或下载该资源!没有账号?注册 本游戏资料是角色交互任务对话系统Unity游戏素材资源,大小:38 MB ,格式:unitypackage,使用软件:unity2017.4.1 ...

  7. unity导入素材时材质丢失素材变成粉红色的解决方法

    有很多时候,当我们通过unity asset store或者blender等等外源导入素材时,会出现材质缺失的bug,如下图所示 : 一个很可能的原因,是由于unity本身管线在每个版本的更新过程中, ...

  8. 太空射击unity工程素材文件 飞机大战 飞行射击游戏源码(C#,Unity2019.2.4f1)素材+源码 最新写的,demo简单版本

    飞机大战素材 太空大战unity工程文件 飞行射击游戏源码(C#,Unity2019.2.4f1)素材+源码 最新写的,demo简单版本 希望能对初学者提供帮助,代码根据教材以及out了的代码更新了, ...

  9. Unity:素材下载

    https://assetstore.unity.com/ https://assetstore.unity.com/linkmaker

最新文章

  1. 区块链+5G=智慧城市?
  2. html获取get信息,在HTML页面用JS获取Get参数方法(示例代码)
  3. 设置本地用户帐户的过期日期
  4. openshift用户管理_OpenShift Express Web管理控制台:入门
  5. android 获取当前网络,Android 获取当前网络连接的类型信息
  6. 用ViewPager实现轮播效果
  7. python】字符串练习题
  8. CI 里去掉index.php 并 识别css js 文件 技巧
  9. c#编写外卖系统_C#网上订餐系统
  10. phpstudy重置密码登录报错#1045
  11. NetFlow基础:网络流量监控简介
  12. C语言推箱子完整代码
  13. 两台路由器的连接方法和无线路由桥接
  14. 超过2t硬盘分区_大于2T的硬盘怎么分区
  15. 【SMAP 土壤水分的质量处理】
  16. 《动手学深度学习》(PyTorch版)代码注释 - 56 【Machine_translation】
  17. 数据资产盘点实践:智能对标
  18. 计算机二级真题期刊论文模板,论文格式?二级标题是什么?
  19. 三菱FX2NPLC CMP比较指令
  20. MMD导入Unity利用MMD4Mecanim转化MMD模型

热门文章

  1. 「博客之星」评选,诚信的互投啊,留链定回
  2. vivo升级android10系统,官方确认vivo NEX旗舰版会直接升级到Android10
  3. mysql pool返回值_Mysql成神之路-InnoDB 的 Buffer Pool
  4. 微信内测附近的餐厅,小程序要跨界外卖了?
  5. 分享一些书籍,方方面面,很多值得一读
  6. Linux课程第二十一天学习笔记
  7. Linux snmp
  8. selenium如何解决IE自动填充表单问题
  9. happiness is meaningful joy
  10. foundation of the academics