Unity 使用this关键字进行函数拓展 - Graphic

举报
CoderZ1010 发表于 2022/09/25 06:04:17 2022/09/25
【摘要】 Example: var image = GetComponent<Image>();image .SetColor(Color.white) .SetColor(1f, 1f, 1f) .SetColor(1f, 1f, 1f, 1f) .SetColorAlpha(1f) .SetMate...

Example:


      var image = GetComponent<Image>();
      image
          .SetColor(Color.white)
          .SetColor(1f, 1f, 1f)
          .SetColor(1f, 1f, 1f, 1f)
          .SetColorAlpha(1f)
          .SetMaterial(null)
          .SetRaycastTarget(true);
  
 

Extension:


      using UnityEngine;
      using UnityEngine.UI;
      namespace SK.Framework
      {
         /// <summary>
         /// 图像相关拓展
         /// </summary>
         public static class GraphicExtension
          {
             /// <summary>
             /// 设置颜色值
             /// </summary>
             /// <typeparam name="T">类型</typeparam>
             /// <param name="self">实例</param>
             /// <param name="color">颜色值</param>
             /// <returns>实例</returns>
             public static T SetColor<T>(this T self, Color color) where T : Graphic
              {
                  self.color = color;
                 return self;
              }
             /// <summary>
             /// 设置颜色值
             /// </summary>
             /// <typeparam name="T">类型</typeparam>
             /// <param name="self">实例</param>
             /// <param name="r">颜色r值</param>
             /// <param name="g">颜色g值</param>
             /// <param name="b">颜色b值</param>
             /// <returns>实例</returns>
             public static T SetColor<T>(this T self, float r, float g, float b) where T : Graphic
              {
                  Color color = self.color;
                  color.r = r;
                  color.g = g;
                  color.b = b;
                  self.color = color;
                 return self;
              }
             /// <summary>
             /// 设置颜色值
             /// </summary>
             /// <typeparam name="T">类型</typeparam>
             /// <param name="self">实例</param>
             /// <param name="r">颜色r值</param>
             /// <param name="g">颜色g值</param>
             /// <param name="b">颜色b值</param>
             /// <param name="a">颜色a值</param>
             /// <returns>实例</returns>
             public static T SetColor<T>(this T self, float r, float g, float b, float a) where T : Graphic
              {
                  Color color = self.color;
                  color.r = r;
                  color.g = g;
                  color.b = b;
                  color.a = a;
                  self.color = color;
                 return self;
              }
             /// <summary>
             /// 设置颜色Alpha值
             /// </summary>
             /// <typeparam name="T">类型</typeparam>
             /// <param name="self">实例</param>
             /// <param name="alpha">alpha值</param>
             /// <returns>实例</returns>
             public static T SetColorAlpha<T>(this T self, float alpha) where T : Graphic
              {
                  Color color = self.color;
                  color.a = alpha;
                  self.color = color;
                 return self;
              }
             /// <summary>
             /// 设置材质球
             /// </summary>
             /// <typeparam name="T">类型</typeparam>
             /// <param name="self">实例</param>
             /// <param name="material">材质球</param>
             /// <returns>实例</returns>
             public static T SetMaterial<T>(this T self, Material material) where T : Graphic
              {
                  self.material = material;
                 return self;
              }
             /// <summary>
             /// 设置RaycastTarget属性
             /// </summary>
             /// <typeparam name="T">类型</typeparam>
             /// <param name="self">实例</param>
             /// <param name="raycastTarget">raycast target</param>
             /// <returns>实例</returns>
             public static T SetRaycastTarget<T>(this T self, bool raycastTarget) where T : Graphic
              {
                  self.raycastTarget = raycastTarget;
                 return self;
              }
          }
      }
  
 

文章来源: coderz.blog.csdn.net,作者:CoderZ1010,版权归原作者所有,如需转载,请联系作者。

原文链接:coderz.blog.csdn.net/article/details/116756257

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。