unity 一个物体同时添加单击和双击事件,怎么区分

unity 一个物体同时添加单击和双击事件,怎么区分,第1张

不需要做双击事件。全部都走单击事件。也不需要计数器。应该说不只是计数器。

用一个变量存放每次点击的事件。就是time.time那个。然后每次点击的时候判断当前事件跟存放的事件差值。比如小于0.2秒。就走双击事件,否则走单击事件。然后把当前时间存到变量。

控制角色移动播放动作或者其他逻辑则需要给这个橘色节点绑定逻辑脚本,UNity支持多种脚本语言,在此是用JAVA脚本.

创建 脚本Assets -->Create ---->JavaScript 创建一个空的逻辑脚本,并将这个脚本绑定在主角对象身上,绑定方式是直接拖拽到主角节点即可。

对脚本的编写:

类及接口主要参照帮助文档,这里只介绍脚本基本结构和简单示例:

每个脚本至少都有两个函数: function Start() 可以认为是初始化 function Updata()则是每帧更新函数。

要实现对角色位置的控制移动首先要定义该角色,

首先 定义GameObject对象也就是要控制的目标: private var _MainRole:GameObject

在function Start() 函数中初始化该对象: inRole = GameObject.Find("MainRole")// 从场景中查找到名叫"MainRole"的对象也就是主角。

在每帧更新时侦听键盘事件,如果按键按下W则空对象向前移动

if(Input.GetKey(KeyCode.W))

{

_MainRole.transform.Translate( Vector3.forward * 0.05 )

}

至此,就已经完成按键控制角色移动的全部过程,运行游戏就可以用按键控制角色移动。

使用toggle实现单选效果

为toggle父物体添加:toggleGroup组件,勾选Allow Switch Off

为每一个toggle选择下的Group选择添加toggleGroup组件的物体(此为toggle父物体)

void Start () {

        toggles = transform.GetComponentsInChildren<Toggle>()

        for (int i = 0i <toggles.Lengthi++)

        {

            Toggle toggle = toggles[i]

            toggle.onValueChanged.AddListener((bool value) =>OnToggleClick(toggle, value))

        }

    }

//功能:点击选中某一个toggle时播放相对应的视频

void OnToggleClick(Toggle toggle,bool isSwitch) {

        if (isSwitch)

        {

            print(toggle.name)

//改变文本字体的布局--居中

            toggle.transform.Find("LabelBGImage/Label").GetComponent<Text>().alignment= TextAnchor.MiddleCenter

            PlayerPrefs.DeleteAll()

            PlayerPrefs.SetString("CurrentVideo","xuting")

            SceneManager.LoadScene("fengcaiqiang")

        }

        else {

//改变文本字体的布局--低部居中

            toggle.transform.Find("LabelBGImage/Label").GetComponent<Text>().alignment = TextAnchor.LowerCenter

        }

    }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11684681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存