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

大邯郸网站昆山做网站找文博

大邯郸网站,昆山做网站找文博,个人营业执照怎么申请,花都网站建设信科网络俗话说久病成医#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.hkea.cn/news/14271820/

相关文章:

  • 运营网站要多少费用网站建设需要哪些条件
  • 医院网站建设运行管理办法怎么可以创建网站
  • wordpress网站百度数据视频制作公司经营范围
  • 甘肃省和住房建设厅网站天津市市建设与管理局网站
  • 免费做团购网站的软件深圳app开发公司都有哪些
  • 网站项目建设目标品牌营销方案
  • 网站哪里备案有区别么重庆面条制作
  • 佛山网站建设凤软如何建设网站安全管理制度
  • 大连市营商环境建设局网站安卓系统应用开发
  • 一半招聘网站海报格式都怎么做wordpress 三主题
  • 广西建设监理协会官网站沈阳哪有wordpress
  • 网站建设设计风格描述网站建设宣传册
  • 金华城乡建设部网站首页做淘宝内部优惠券网站要钱么
  • 单位建设网站申请报告百度关键词
  • 商城网站开发方案书手机网页设计用什么软件
  • 外贸网站推广计划网站关键词百度搜不到
  • 网站静态与动态手机网站 自适应屏幕
  • 本机iis发布网站后台管理dw设计做网站完整案例
  • 站长网seo综合查询工具什么是网络营销和技巧
  • 怎么做网站引流wordpress游客评论游客
  • 个人网站建立 学生学网站建设需要下载什么
  • 中国建设教育网官网是什么网站群辉搭wordpress
  • 哪家公司做网站比较好wordpress标签组合
  • 公司网站建设及优化计划书免费的企业网站
  • 天津网站建设方案策划微信开放平台appid
  • 分析网站建设到运营需要多少钱融资平台公司
  • 做网站推广的技巧南京企业网站设计公司500元
  • 腾讯云域名申请官网优化哪家专业
  • 莘县做网站推广wordpress 简约论坛
  • 国外产品展示网站源码房建设计图网站