当前位置: 首页 > news >正文

温州网站建设价格技术苏州的网站建设

温州网站建设价格技术,苏州的网站建设,企业宣传画册设计,app排名俗话说久病成医#xff0c;虽然不是专业技术美术#xff0c;但代码写久了自然会积累一些常用的shader交互方法。零零散散的#xff0c;总结如下#xff1a; 1#xff0c;改变UGUI的材质球属性 有时候我们需要改变ui的一些属性#xff0c;从而实现想要的效果。通常UGUI上…  俗话说久病成医虽然不是专业技术美术但代码写久了自然会积累一些常用的shader交互方法。零零散散的总结如下 1改变UGUI的材质球属性 有时候我们需要改变ui的一些属性从而实现想要的效果。通常UGUI上有如下属性而我们想要改变就需要获取到Material这个属性 这里拿Image来举例 简单的调用示例如下关联测试 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;/// summary /// 测试UI闪白效果 /// /summary public class TestUIShan : MonoBehaviour {public Image image;public Material material;private bool isShan false;// Start is called before the first frame updatevoid Start(){material image.material;}// Update is called once per framevoid Update(){if (Input.GetKeyDown(KeyCode.A)){isShan !isShan; material.SetFloat(_Switch, isShan ? 1 : 0); }} }我们可以通过代码看出我们可以直接获取到面板上的Material属性然后通过SetFloat之类的Set方法来改变UGUI的材质球属性。 2改变物体的材质球属性 这里多了一步不是直接改变Material而是先new一个MaterialPropertyBlock然后再将其赋值给Renderer属性。实现示例代码如下 /// summary/// 改变子物体颜色/// /summarypublic void ChangeColor(Transform _tran, bool _isHas){var _render _tran.GetComponentMeshRenderer();if (_render ! null){var _pro new MaterialPropertyBlock();_pro.SetFloat(_IsEnable, _isHas ? 0 : 1);_render.SetPropertyBlock(_pro);}var _render1 _tran.GetComponentSkinnedMeshRenderer();if (_render1 ! null){var _pro new MaterialPropertyBlock();_pro.SetFloat(_IsEnable, _isHas ? 0 : 1);_render1.SetPropertyBlock(_pro);}if (_tran.childCount 0) foreach (Transform idx in _tran) ChangeColor(idx, _isHas);} 这里是通过SetFloat来控制_IsEnable这个属性的开关同理我们可以调用别的set方法来改变对应的属性。 3替换shader 这个就更简单了只需要得到Material的shader属性并替换即可示例代码如下 /// summary/// 替换shader/// /summarypublic void ChangeShader(Transform _tran, Shader _s){if (_tran.name.Contains(diban) || _tran.name.Contains(qiang)) return;//0511佳琪定var _render _tran.GetComponentInChildrenMeshRenderer();if (_render ! null){_render.material.shader _s;}var _render1 _tran.GetComponentInChildrenSkinnedMeshRenderer();if (_render1 ! null){_render1.material.shader _s;}if (_tran.childCount 0) foreach (Transform idx in _tran) ChangeShader(idx, _s);} 关键函数为  _render1.material.shader _s; 直接赋值替换即可。 4批量获取父节点下所有具有某一属性的物体 其实通过2/3函数我们可以看出用递归去获取父物体下所有具有renderer属性物体的方法实现起来实在太繁琐了那么有没有更简单的方法呢 答案是有的使用_tran.GetComponentsInChildren即可示例代码如下 var _ms transform.GetComponentsInChildrenSkinnedMeshRenderer(); 5改变全局shader属性 比如我们有很多使用了某一shader的物体其中包括AI、场景等等如果要频繁改变这些材质球的某一属性不可能遍历去寻找的。 好在引擎为我们提供好了方法示例函数如下 Shader.SetGlobalFloat(_YydInterval, _getTime); 同理我们可以用set来改变更多的属性比如Shader.SetGlobalTexture来改变全局的贴图等等。
http://www.w-s-a.com/news/969961/

相关文章:

  • 如何做招聘网站网站建设中 敬请期待
  • 雅安工程交易建设网站做vip电影网站
  • 网站建设方维网站标题title为什么不能频繁的改
  • 网站建设如何上传文件wordpress列表自定义数据表
  • 摄影课程自学网站科技项目的类型有
  • 未来最紧缺的十大专业长春seo顾问
  • 为什么点不开网站公关公司是做什么的
  • wordpress主要菜单如何对网站页面进行优化
  • 建设银行深分行圳招聘网站建立互联网公司网站
  • 湖南做旅游网站哪家最好html5手机网站免费模板
  • 云服务器上放多个网站wordpress ping大全
  • 以下属于网站的管理 更新 维护如何才能做好品牌网站建设
  • 国家工业和信息化部网站备案系统网站建设设计费用
  • 网站建设利弊宁波高端网站建设联系方式
  • 网站订票策划方案郑州代做网站
  • 免费的网站加速器注册公司邮箱
  • 千助网站建设网站整站程序
  • 自学建网站做网站优化访问网站出现目录
  • 济南网站建设是什么百度官网登录入口手机版
  • net快速建站西宁手机网站建设
  • 网站浏览器不兼容怎么办软件系统开发大概多少钱
  • 网站建设哪个公司最好shift wordpress
  • 公司网站建设功能介绍室内设计学习
  • 做网站策划容易遇到哪些问题沈阳公司网站制作
  • 做php网站都用框架吗网站备案当面核验拍摄照片
  • 泉州企业自助建站兰州最好的互联网公司
  • 监察部门网站建设方案网站seo技术教程
  • 个人网站制作源代码下载品牌建设部
  • 网站备案需要准备什么文创产品设计思路
  • 网站开发书籍推荐青岛城阳新闻最新消息