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

怎么做网站赌博企业培训心得体会

怎么做网站赌博,企业培训心得体会,dedecms织梦古典艺术书画书法公司企业网站源码模板,centos 下载wordpress俗话说久病成医,虽然不是专业技术美术,但代码写久了自然会积累一些常用的shader交互方法。零零散散的,总结如下: 1,改变UGUI的材质球属性 有时候我们需要改变ui的一些属性,从而实现想要的效果。通常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>/// 改变子物体颜色/// </summary>public void ChangeColor(Transform _tran, bool _isHas){var _render = _tran.GetComponent<MeshRenderer>();if (_render != null){var _pro = new MaterialPropertyBlock();_pro.SetFloat("_IsEnable", _isHas ? 0 : 1);_render.SetPropertyBlock(_pro);}var _render1 = _tran.GetComponent<SkinnedMeshRenderer>();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/// </summary>public void ChangeShader(Transform _tran, Shader _s){if (_tran.name.Contains("diban") || _tran.name.Contains("qiang")) return;//0511佳琪定var _render = _tran.GetComponentInChildren<MeshRenderer>();if (_render != null){_render.material.shader = _s;}var _render1 = _tran.GetComponentInChildren<SkinnedMeshRenderer>();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.GetComponentsInChildren<SkinnedMeshRenderer>();

5,改变全局shader属性

  比如我们有很多使用了某一shader的物体,其中包括AI、场景等等,如果要频繁改变这些材质球的某一属性,不可能遍历去寻找的。

  好在引擎为我们提供好了方法,示例函数如下:

 Shader.SetGlobalFloat("_YydInterval", _getTime);

  同理我们可以用set来改变更多的属性,比如Shader.SetGlobalTexture来改变全局的贴图等等。

http://www.15wanjia.com/news/23873.html

相关文章:

  • 番禺大石网站建设网络营销模式有哪些?
  • 网站 用什么数据库seo推广方式是什么呢
  • 高级wordpress搜索重庆整站seo
  • 企业信息网页模板苏州优化网站公司
  • ps做电商网站流程百度建站平台官网
  • 快速网站收录搜索引擎优化的主题
  • 手机网站建设的整体流程图厦门网站建设公司
  • 通过wordpress建站南昌百度推广联系方式
  • 青岛 机械 中企动力提供网站建设网站关键词优化费用
  • 个人网站做cpaseo分析案例
  • 手机做网站服务器广告公司怎么找客户资源
  • 做预算的网站东莞seo网络培训
  • java开源网站最近新闻大事
  • 商丘市做1企业网站的公司百度小说风云榜今天
  • 容桂网站制作价格2023今天的新闻联播
  • 汽车网站建设公司哪家好今日新闻事件
  • 网站开发前后端语言发布新闻稿
  • php网站建设基本流程网推渠道
  • 网站后台修改教程网站建设公司
  • 只做自己网站百度搜索引擎地址
  • 创建网站的视频卖友情链接赚钱
  • 做网站买个域名多少钱百度百家官网入口
  • 网站建设与管理方案书中国网络推广网站排名
  • 版纳网站建设软文营销范文100字
  • 济南营销型网站建设厦门百度推广怎么做
  • 临猗商城网站建设平台引流软件
  • 有app怎么做网站宣传推广的十种方式
  • 动感十足的网站永久免费建站系统
  • 网站建设具体步骤应该怎么做seo推广seo技术培训
  • 幸运快三的网站怎么做品牌营销理论