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:


  
  1. var image = GetComponent<Image>();
  2. image
  3. .SetColor(Color.white)
  4. .SetColor(1f, 1f, 1f)
  5. .SetColor(1f, 1f, 1f, 1f)
  6. .SetColorAlpha(1f)
  7. .SetMaterial(null)
  8. .SetRaycastTarget(true);

Extension:


  
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. namespace SK.Framework
  4. {
  5. /// <summary>
  6. /// 图像相关拓展
  7. /// </summary>
  8. public static class GraphicExtension
  9. {
  10. /// <summary>
  11. /// 设置颜色值
  12. /// </summary>
  13. /// <typeparam name="T">类型</typeparam>
  14. /// <param name="self">实例</param>
  15. /// <param name="color">颜色值</param>
  16. /// <returns>实例</returns>
  17. public static T SetColor<T>(this T self, Color color) where T : Graphic
  18. {
  19. self.color = color;
  20. return self;
  21. }
  22. /// <summary>
  23. /// 设置颜色值
  24. /// </summary>
  25. /// <typeparam name="T">类型</typeparam>
  26. /// <param name="self">实例</param>
  27. /// <param name="r">颜色r值</param>
  28. /// <param name="g">颜色g值</param>
  29. /// <param name="b">颜色b值</param>
  30. /// <returns>实例</returns>
  31. public static T SetColor<T>(this T self, float r, float g, float b) where T : Graphic
  32. {
  33. Color color = self.color;
  34. color.r = r;
  35. color.g = g;
  36. color.b = b;
  37. self.color = color;
  38. return self;
  39. }
  40. /// <summary>
  41. /// 设置颜色值
  42. /// </summary>
  43. /// <typeparam name="T">类型</typeparam>
  44. /// <param name="self">实例</param>
  45. /// <param name="r">颜色r值</param>
  46. /// <param name="g">颜色g值</param>
  47. /// <param name="b">颜色b值</param>
  48. /// <param name="a">颜色a值</param>
  49. /// <returns>实例</returns>
  50. public static T SetColor<T>(this T self, float r, float g, float b, float a) where T : Graphic
  51. {
  52. Color color = self.color;
  53. color.r = r;
  54. color.g = g;
  55. color.b = b;
  56. color.a = a;
  57. self.color = color;
  58. return self;
  59. }
  60. /// <summary>
  61. /// 设置颜色Alpha值
  62. /// </summary>
  63. /// <typeparam name="T">类型</typeparam>
  64. /// <param name="self">实例</param>
  65. /// <param name="alpha">alpha值</param>
  66. /// <returns>实例</returns>
  67. public static T SetColorAlpha<T>(this T self, float alpha) where T : Graphic
  68. {
  69. Color color = self.color;
  70. color.a = alpha;
  71. self.color = color;
  72. return self;
  73. }
  74. /// <summary>
  75. /// 设置材质球
  76. /// </summary>
  77. /// <typeparam name="T">类型</typeparam>
  78. /// <param name="self">实例</param>
  79. /// <param name="material">材质球</param>
  80. /// <returns>实例</returns>
  81. public static T SetMaterial<T>(this T self, Material material) where T : Graphic
  82. {
  83. self.material = material;
  84. return self;
  85. }
  86. /// <summary>
  87. /// 设置RaycastTarget属性
  88. /// </summary>
  89. /// <typeparam name="T">类型</typeparam>
  90. /// <param name="self">实例</param>
  91. /// <param name="raycastTarget">raycast target</param>
  92. /// <returns>实例</returns>
  93. public static T SetRaycastTarget<T>(this T self, bool raycastTarget) where T : Graphic
  94. {
  95. self.raycastTarget = raycastTarget;
  96. return self;
  97. }
  98. }
  99. }

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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