如何屏蔽untiy ugui中的调用输入法共呢个

如何屏蔽untiy ugui中的调用输入法共呢个,第1张

方式一:继承基础接口实现

步骤一:创建ClickObject脚本。继承MonoBehaviour和IPointerClickHandler。

步骤二:实现public void OnPointerClick(PointerEventData eventData)方法:

步骤三:创建一个名为Panel_IPointer的空对象。并且将ClickObject脚本附加到对象上。

步骤四:启动,并点击Panel_IPointer对象。在Console输出如下:

方式二:Unity3D编辑器 *** 作设置实现

步骤一:创建一个C#脚本。在脚本中添加一个public方法。

步骤二:创建一个命名为Empty的UI对象,用于接收和响应点击事件。创建一个名为Panel的UI对象,用于触发点击事件。

步骤三:Panel对象添加EventTrigger组件," Add New" -> 选择" PointerClick"。将Empty对象拖拽到触发者位置。然后点击"No Function"选择我们写在Test脚本中的OnTestClick事件。

步骤四:设置好这些之后。我们的事件触发就已经完成了。运行Unity3D。点击窗口中Panel对象。Console输出内容如下:

方式三:程序动态设置实现

我们在日常的开发中。可能需要动态的需要变更绑定的事件。那么我们如何才能使用C#代码控制绑定触发事件呢?

下面我们就介绍代码控制。ScriptControlcs脚本

1 using SystemCollectionsGeneric;

2 using UnityEngine;

3 using UnityEngineEvents;

4 using UnityEngineEventSystems;

5

6 public class ScriptControl : MonoBehaviour {

7

8 // Use this for initialization

9 void Start ()

10 {

11 var trigger = transformgameObjectGetComponent<EventTrigger>();

12 if (trigger == null)

13 trigger = transformgameObjectAddComponent<EventTrigger>();

14

15 // 实例化delegates

16 triggerdelegates = new List<EventTriggerEntry>();

17

18 // 定义需要绑定的事件类型。并设置回调函数

19 EventTriggerEntry entry = new EventTriggerEntry();

20 // 设置 事件类型

21 entryeventID = EventTriggerTypePointerClick;

22 // 设置回调函数

23 entrycallback = new EventTriggerTriggerEvent();

24 UnityAction<BaseEventData> callback = new UnityAction<BaseEventData>(OnScriptControll);

25 entrycallbackAddListener(callback);

26 // 添加事件触发记录到GameObject的事件触发组件

27 triggerdelegatesAdd(entry);

28 }

29

30 // Update is called once per frame

31 void Update () {

32

33 }

34

35 public void OnScriptControll(BaseEventData arg0)

36 {

37 DebugLog("Test Click");

38 }

39

40 }

点击事件的特殊实现方式:使用Button控件实现

针对Click事件还存在一种特殊方式:uGUI系统中官方提供了一种Button控件。Button封装了官方提供的一套OnClick事件。 *** 作完全类似于方式二。便不详述了。

使用Button我们可以实现动态的变更鼠标绑定的点击事件。如下代码所示:

1 using UnityEngine;

2 using SystemCollections;

3 using UnityEngineUI;

4

5 public class BtnControl : MonoBehaviour {

6

7 // Use this for initialization

8 void Start ()

9 {

10 var button = transformgameObjectGetComponent<Button>();

11 if (button != null)

12 {

13 buttononClickRemoveAllListeners();

14 buttononClickAddListener(TestClick);

15 }

16 }

17

18 public void TestClick()

19 {

20 DebugLog("Test Click This is Type 4");

21 }

22

23 // Update is called once per frame

24 void Update () {

25

26 }

27 }

如果你需要补间动画的话,那么DOTween或者其他类似asset甚至是自己写一套都绝对有必要。否则如果用Animation和状态机,相信我你一定会想死的。

需要注意的是在处理UGUI的布局时,DOTween自带的DOMove(),DOMoveX(),DOMoveY()和DOMoveZ()可能会出现一些奇怪的效果,最好还是直接用DOTweenTo()来控制RectTransform的anchoredPosition变量。

以上就是关于如何屏蔽untiy ugui中的调用输入法共呢个全部的内容,包括:如何屏蔽untiy ugui中的调用输入法共呢个、有了Ugui,有必要用Dotween插件吗、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10118982.html

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

发表评论

登录后才能评论

评论列表(0条)

保存