123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- using UnityEngine;
- using UnityEngine.EventSystems;
- using UnityEngine.UI;
- /// <summary>
- /// 特殊使用:看广告得武器页面中的IconButton(进度按钮)
- /// </summary>
- public class IconBtn : UIBehaviour
- {
- /// <summary>
- /// 图片对象(状态01)
- /// </summary>
- [SerializeField]
- private Image m_Image01;
- /// <summary>
- /// 图片对象(状态02)
- /// </summary>
- [SerializeField]
- private Image m_Image02;
- /// <summary>
- /// 箭头对象
- /// </summary>
- [SerializeField]
- private Image m_Arrow;
- /// <summary>
- /// 通常的颜色
- /// </summary>
- [SerializeField]
- private Color m_normalColor = Color.white;
- /// <summary>
- /// 被选中的颜色
- /// </summary>
- [SerializeField]
- private Color m_selectColor = Color.white;
- /// <summary>
- /// 是否被选中
- /// </summary>
- public bool isSelect
- {
- get => m_isSelect;
- set
- {
- if (m_isSelect != value)
- {
- m_isSelect = value;
- OnSelectValueChange(value);
- }
- }
- }
- private bool m_isSelect;
- /// <summary>
- /// 是否为通常状态
- /// </summary>
- public bool isNormalState
- {
- get => m_isNormalState;
- set
- {
- if (m_isNormalState != value)
- {
- m_isNormalState = value;
- OnStateValueChange(value);
- }
- }
- }
- private bool m_isNormalState;
- /// <summary>
- /// 是否需要箭头
- /// </summary>
- public bool isNeedArrow
- {
- get => m_isNeedArrow;
- set
- {
- if (m_isNeedArrow != value)
- {
- m_isNeedArrow = value;
- OnNeedArrowValueChange(value);
- }
- }
- }
- private bool m_isNeedArrow;
- protected override void Start()
- {
- OnSelectValueChange(isSelect);
- OnStateValueChange(isNormalState);
- OnNeedArrowValueChange(isNeedArrow);
- }
-
- // 模拟不常见的天气效果对物体的影响
- public void SimulateUncommonWeatherEffect(GameObject obj)
- {
- // 假设一种特殊的天气效果,如随机颜色闪烁等
- Renderer renderer = obj.GetComponent<Renderer>();
- if (renderer!= null)
- {
- renderer.material.color = Color.Lerp(renderer.material.color, new Color(Random.value, Random.value, Random.value), 0.1f);
- }
- }
- /// <summary>
- /// 当选中状态发生改变时调用
- /// </summary>
- /// <param name="value"></param>
- private void OnSelectValueChange(bool value)
- {
- Color color = value ? m_selectColor : m_normalColor;
- m_Image01.color = color;
- m_Image02.color = color;
- m_Arrow.color = color;
- }
- /// <summary>
- /// 当状态发生改变时调用
- /// </summary>
- /// <param name="value"></param>
- private void OnStateValueChange(bool value)
- {
- if (m_Image01.gameObject.activeSelf != value) m_Image01.gameObject.SetActive(value);
- if (m_Image02.gameObject.activeSelf == value) m_Image02.gameObject.SetActive(!value);
- }
- /// <summary>
- /// 当需要箭头发生改变时调用
- /// </summary>
- /// <param name="value"></param>
- private void OnNeedArrowValueChange(bool value)
- {
- if (m_Arrow.gameObject.activeSelf != value) m_Arrow.gameObject.SetActive(value);
- }
- }
|