添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • Target Graphic(目标图形):可选择任意Graphic对象进行着色
  • Normal Color(正常状态颜色)
  • Highlighted Color(突出状态颜色):鼠标悬停或者选择状态的颜色
  • Pressed Color(按下状态颜色)
  • Disabled Color(不可用状态颜色)
  • Color Multiplier(增加颜色):这个不知道有什么用,emmmm 保持默认就好了
  • Fade Duration(消失时间):其实就是着色时间与褪色时间
  • 3.Sprite Swap(图片切换):选项跟Color Tint中的相似,区别在于设置的是图片
    4.Animation(执行动画)

    三、Button按下、抬起、长按事件

    按下事件对于游戏开发来说很重要,之前工作开发项目是MMORPG游戏,像攻击类的按键,都是通过按下来触发
    与其说是Button长按,不如说是所有能接受事件的所有控件的长按都可以这么实现。
    点击Button,然后看到该Button的Inspector然后点击AddComponent >> Event >> Event Trigger。或者可以直接上面搜索框搜索。

    private float LastTime = 0; void Update () { if (IsStart && Ping > 0 && LastTime > 0 && Time.time - LastTime > Ping) Debug.Log("长按触发"); IsStart = false; LastTime = 0; public void LongPress(bool bStart) IsStart = bStart; if(IsStart) LastTime = Time.time; Debug.Log("长按开始"); else if(LastTime != 0) LastTime = 0; Debug.Log("长按取消");

    然后把写好的脚本文件拖到你想设置长按功能的控件里,然后设置好,Down传True,Up传false,Ping传3,长按3秒触发长按

    image.png

    Unity3D的C# API文档中还有有很多其他得函数,目前我知道的觉得能使用到的函数就整理出来了下面几个,进入按钮离开按钮在PC的某些游戏会用到,鼠标悬停在按钮上的话出现一些小提示,离开这些小提示又会消失,通过这连个函数能够实现

    using UnityEngine;
    using UnityEngine.EventSystems;
    public class OnImage : EventTrigger
        public override void OnPointerDown(PointerEventData eventData)
            base.OnPointerDown(eventData);
            Debug.Log("按下" + this.gameObject.name);
        public override void OnPointerUp(PointerEventData eventData)
            base.OnPointerUp(eventData);
            Debug.Log("抬起" + this.gameObject.name);
        public override void OnPointerExit(PointerEventData eventData)
            base.OnPointerExit(eventData);
            Debug.Log("离开" + this.gameObject.name);
        public override void OnPointerEnter(PointerEventData eventData)
            base.OnPointerEnter(eventData);
            Debug.Log("进入" + this.gameObject.name);
    

    这段时间通过学习,更新一下用来实现Button相关、点击、按下、抬起、长按事件,原理还是差不多,只是调用的方法变了

    using UnityEngine;
    using UnityEngine.EventSystems;
    public class OnImage : MonoBehaviour,IPointerDownHandler,IPointerUpHandler,IPointerExitHandler,IPointerEnterHandler
        public float Ping;
        private bool IsStart = false;
        private float LastTime = 0;
        void Update()
            if (IsStart && Time.time - LastTime > Ping)
                IsStart = false;
                Debug.Log("长按");
        public void OnPointerDown(PointerEventData eventData)
            LongPress(true);
            Debug.Log("按下");
        public void OnPointerUp(PointerEventData eventData)
            if(IsStart)
                LongPress(false);
                Debug.Log("抬起");
        public void OnPointerExit(PointerEventData eventData)
            Debug.Log("离开");
        public void OnPointerEnter(PointerEventData eventData)
            Debug.Log("进入");
        public void LongPress(bool bStart)
            IsStart = bStart;
            LastTime = Time.time;