? ? ? ? ?RPG游玩中玩家翻开背包,鼠标注移触动到道具(典型为UI->Image)上,露示品摘要;右键道具,则运用掉落该品。

  ? ? ? ?UI控件挂载包罗OnMouseOver函数的脚丫儿子本后,鼠标注移触动到该控件上但OnMouseOver不触发。

  ? ? ?比值先我们看官方文档中关于OnMouseOver运用环境的伸见:

  Called every frame while the mouse is over the?GUIElement?or?Collider.

  A call to?OnMouseEnter?occurs on the first frame the mouse is over the object. OnMouseOver is then called each frame until the mouse moves away, at which point?OnMouseExit?is called.

  This function is not called on objects that belong to Ignore Raycast layer.

  This function is called on Colliders marked as Trigger if and only if?Physics.queriesHitTriggers?is true.

  OnMouseOver can be a co-routine, simply use the yield statement in the function. This event is sent to all scripts attached to the?Collider?or?GUIElement.

  ? ?https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseOver.html

  ? ?划重心:挂载的物体必须 是“GUIElement”或 “Collider”

  ? ?这么我们的Image控件(如次图)是不是?GUIElement呢?

  ?

  暖和心网友给出产恢复案:(信皓定论:不是!)

  https://answers.unity.com/questions/998848/onmouseenter-not-working-on-ui-elements.html

  翻译:

  “我不认为它(OnMouseOver)会在UI元斋上。

  它条会工干在碰撞体或“GUIElement”——此雕刻是GUI体系中运用费过 OnGUI? 的东方正西的名字。

  新的UI体系运用Pointer方法,它要寻求你在脚丫儿子本中完成回调(IPointerEnterHandler 等等)同时运用Event System。”

  我根本赞同,意思是不是在场景中新建壹个UI->Image,就能把此雕刻个图片控件称为“GUIElement”的,鉴于“GUIElement”拥有严峻的定义(如上),因此此雕刻个Image我们至多把它叫UI控件,故此不能触发OnMouseOver。

  将下述代码直接挂到物体上,剩意using

  https://blog.csdn.net/beihuanlihe130/article/details/80179794

  缺隐是不得不完成左中右键点击事情,不能设置鼠标注移到物体上后的事情。

  对物体添加以新组件 Event Trigger,添加以两个 New Event Type,区别选PointerEnter和PointerExit

  在脚丫儿子本中此雕刻么写:

  把脚丫儿子本挂在物体上,把物体移到Event Trigger的相应位置,又区别选中MouseEnter和MouseExit函数。

  优点是却完成鼠标注在物体上时的事情设置,缺隐是看宗到来如同不够优雅。。。。

  工程源码:https://github.com/734843327/OnMouseOver-

  联绕方法:微信? wangwenaowwa

发表评论

电子邮件地址不会被公开。 必填项已用*标注