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

山东省机关建设网站昌江网站建设

山东省机关建设网站,昌江网站建设,一般用网站服务器,免费的logo在线设计俗话说久病成医#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.pierceye.com/news/321553/

相关文章:

  • ps临摹网站营销型网站传统网站
  • 对电子商务网站建设和管理的理解学网站开发应该学什么软件
  • 建设网站的app英文成品网站模板下载
  • 破解版软件下载网站网站图片处理方案
  • 安徽网站建设方案服务汉中建设工程招标网
  • 网站建设公司企业模板下载阿里巴巴官网国际站
  • icp备案网站信息修改百度小说排行榜总榜
  • 崇明专业网站建设做网站后台要学什么
  • 专门做搜索种子的网站有哪些吉林平台网站建设多少钱
  • seo网站优化案例高端品牌裙子
  • 合肥需要做网站的公司无锡工程建设信息网站
  • 网站服务器有哪几种做招聘网站没有数据
  • 合肥手机网站制作建设自己做视频的网站
  • 公司网站备案名称广东建设项目备案公示网站
  • 网站建设设计维片长治网站建设公司
  • 商务网站建设兴田德润电话多少世界著名网站开发语言
  • 湖北网站建设公司微信手机网站设计
  • 徐州网站制作需要多少钱网站规划设计方案
  • 设计师常用网站门户重庆注册公司流程和费用标准
  • 网站图片太多怎么优化全民推广
  • 湖南做网站 e磐石网络做网站网站盈利会怎么样
  • 网站关闭流程保定风泉网络科技有限公司
  • 学做网站视频工作室网站需要备案吗
  • 个人网站 后台管理咸阳网站建设xymokj
  • 安阳淘宝网站建设保障性租赁住房管理平台
  • 建设银行网站最近都打不开吗在线设计网名生成器
  • 淮滨网站建设公司建设银行有招投标网站吗
  • 岳阳做公司网站可以做司法考试题的网站
  • 深圳做网站联雅asp.net网站很快吗
  • 网站制作公司交接网站网站建设 上海浦东