ugui

unity3d UGUI下拉框

眉间皱痕 提交于 2019-12-03 14:23:24
可以用来让用户从列表中选择一个选项的选择。 控制显示当前选择的选项。 一旦点击,它打开了选项列表中,可以选择一个新的选项。 在选择一个新的选项,再次关闭的列表,控制显示了新的选择选项。 列表也关闭,如果用户点击控制本身,或其他地方在画布上。 一个下拉。 打开下拉列表的选项。 属性 属性: 功能: Interactable 该组件将会接受输入吗? 看到 Interactable 。 过渡 属性,确定控制视觉响应用户操作的方式。 看到 过渡的选择 。 导航 属性确定的顺序控制。 看到 导航选项 。 模板 的矩形变换下拉列表的模板。 请参阅下面的说明。 标题文本 文本组件把当前选中的文本选项。 (可选) 标题图片 图像组件当前选中的选项的形象。 (可选) 项文本 文本组件条目的文本。 (可选) 项目形象 图像组件项目的形象。 (可选) 价值 当前选中的索引选项。 0是第一选择,1是第二步,等等。 选项 可能的选项的列表。 一个文本字符串,并为每个选项可以指定一个图像。 事件 属性: 功能: 价值变化 一个 UnityEvent 当调用一个用户点击下拉列表中的选项之一。 细节 选项列表中指定的检查员或从代码可以分配。 对于每一个选项可以指定一个文本字符串,并选择一个图像,如果设置下拉来支持它。 按钮有一个单独的事件 价值变化 响应当用户完成点击列表中的选项之一。

UGUI 实现屏幕方向输入

北战南征 提交于 2019-12-03 10:27:13
在Unity中实现屏幕输入方向(例如摇杆),一般会用到 Input 类来获取触摸点的屏幕位置,然后根据触摸点的位置变动,计算出输入方向。 但是会存在一个问题,如果游戏界面中有按钮,对按钮的点击事件,也会影响到Input 的触摸点输入,我们希望能避免这个问题。 一个比较好的实现方案就是,不使用Input,而是使用UGUI的触摸事件。 这个方案比较简单,新建一个DirectionInput 继承MonoBehaviour,并且继承IPointerDownHandler,IPointerUpHandler,IDragHandler 三个接口。然后在代码中实现 OnPointerDown,OnDrag,OnPointerUp三个方法。 具体代码如下,可以在其他模块中,读取该对象的direction字段来获取方向。 using UnityEngine; using UnityEngine.EventSystems; /// <summary> /// 玩家屏幕方向输入 /// </summary> public class DirectionInput : MonoBehaviour ,IPointerDownHandler,IPointerUpHandler,IDragHandler { private const float MIN_MOVE_DISTANCE = 30f; public

Unity

十年热恋 提交于 2019-12-03 07:07:24
IDM下载器 百度网盘满速下载器(PanDownload) Visual Studio 2017正式版 v15.8.8 离线安装包 Unity官方正版下载 Beta版本 Releases版本 Patch版本 Unity破解版下载 百度网盘 提取码 9laq 天翼云盘 Unity官方资源(Asset Store) Unity2018离线文档下载 https://docs.unity3d.com https://docs.unity3d.com/uploads/UnityDocumentation.zip https://storage.googleapis.com/docscloudstorage/default/UnityDocumentation.zip Unity2017离线文档下载 https://docs.unity3d.com/2017.4/Documentation/Manual/ https://docs.unity3d.com/2017.4/Documentation/uploads/UnityDocumentation.zip https://storage.googleapis.com/docscloudstorage/2017.4/UnityDocumentation.zip Cg语言 http://developer.download.nvidia.com

[UGUI]图文混排(三):资源管理

匿名 (未验证) 提交于 2019-12-03 00:40:02
1.图文混排中的资源,主要是图片。 2.所谓的资源管理,可以分为资源对象池和资源加载这两部分。这里是为图文混排单独做一套资源管理,当然也可以改为调用项目中的资源管理。 RichTextResourceManager.cs 1 using UnityEngine; 2 using System.Collections.Generic; 3 using UnityEngine.UI; 4 using System; 5 #if UNITY_EDITOR 6 using UnityEditor; 7 #endif 8 9 public enum RichTextResourceType 10 { 11 Image, 12 } 13 14 public class RichTextResourceManager : CSharpSingletion<RichTextResourceManager> { 15 16 private Dictionary<RichTextResourceType, List<GameObject>> typeGoDic = new Dictionary<RichTextResourceType, List<GameObject>> (); 17 private DefaultControls.Resources resources = new

UGUI 文本设置居中后的打字机效果

匿名 (未验证) 提交于 2019-12-03 00:26:01
由于项目需求,打字效果需要居中显示,传统的打字机效果都是从左到右逐字出现的,如果将文本居中后,发现打字效果很奇怪,所以新写了打字效果 private int mCurPos; private string mTypingText; private string mTempTypingText; private Text mTalkText; void Start( ){ mTalkText = gameObject.GetComponent<Text>(); mTypingText= "13241341131"; //测试文本,具体需求改变文本内容 InvokeRepeating("Typing", 0, 0.03f); } #region 打字效果 /// <summary> /// 打字效果 /// </summary> private void Typing() { if (mTypingText.Length - 1 == mCurPos) CancelInvoke("Typing"); mTempTypingText += mTypingText.Substring(mCurPos, 1); mTalkText.text = mTempTypingText + "<color=#13171800>" + mTypingText.Substring(mCurPos + 1)

[Unity][Animation&amp;Animator][特效]伤害飘字

匿名 (未验证) 提交于 2019-12-03 00:22:01
角色受到伤害,伤害数值 在角色头顶 飘字。 有几种实现方法: 1.DOTWEEN 2.Unity自带的Animation&Animator 本文着重讲第2种实现方法。 相关资料: 1. [Unity][UGUI]用UGUI自带的Canvas角色头顶的名字 2. 3. 4. 参考资料: 1. 【Unity3D】 DoTween实现飘字的效果 2. Unity Mecanim动画的实现(九):动画层、遮罩与Ik动画 3. 4. 文章来源: [Unity][Animation&Animator][特效]伤害飘字

[Unity][UGUI]IPointerEnterHandler鼠标进入移出事件闪烁问题

匿名 (未验证) 提交于 2019-12-03 00:22:01
IPointerEnterHandler, IPointerExitHandler 鼠标进入,移出事件,闪烁问题 新建一个UIImage,挂载下面的这个脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems;//IPointerEnterHandler, IPointerExitHandler public class UI_MouseEnter : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler { public void OnPointerEnter(PointerEventData eventData) { Debug.Log("Hello"); transform.localScale = new Vector3(0,0,0); } public void OnPointerExit(PointerEventData eventData) { Debug.Log("Bye"); transform.localScale = new Vector3(1, 1, 1); } } 直接改变 UI 按钮的localScale,就会出现闪烁的BUG

UGUI事件系统――事件接口

匿名 (未验证) 提交于 2019-12-03 00:19:01
所有的事件接口均继承自 IEventSystemHandler IPointerEnterHandler  指针进入事件 ――利用指针进入、退出事件,可以完成ToolTip功能 IPointerDownHandler  指针按下事件:在 可视元素矩形区域 内按下时响应 任意地方 抬起时响应 IPointerClickHandler   指针点击事件:在可视元素矩形区域内按下后,且在 同一可视元素矩形区域内 抬起时响应 ――有按下,必定有抬起;有按下,未必有点击 IInitializePotentialDragHandler  初始化潜在的拖动事件:与IPointerDownHandler触发条件基本相同 IBeginDragHandler  拖动开始事件 ISelectHandler    选择事件:选择(点击)时调用EventSystem.current.SetSelectedGameObject(gameObject)选中,随后触发OnSelect(...)方法 IUpdateSelectedHandler  选中物体每帧触发事件 ――移动、提交、取消操作,必须先选中(OnSelect)才能触发 所有被继承的事件接口,需要实现其方法,参数一般是EventData(BaseEventData/PointerEventData),利用这些参数可以完成相应操作。 using

UGUI在两个UI间坐标转换

匿名 (未验证) 提交于 2019-12-03 00:14:01
在UGUI中,在两个Canvas之间进行坐标转换,从CanvasA下的坐标转换到CanvasB下。 或者在同一个界面下,从不同的节点下,转成相同的坐标。 函数定义 public static bool ScreenPointToLocalPointInRectangle ( RectTransform rect , Vector2 screenPoint , Camera cam , out Vector2 localPoint ); 解释: rect: 目标界面的节点 screenPoint: 要转换的节点屏幕坐标,如果worldCamera为空就返回 vector2.zero cam: 目标界面的camera,如果 Canvas 的模式为Screen Space - Overlay mode, the cam parameter should be null. localPoint: 转换后的坐标点 返回值: 判断此点是否在Rect所在的平面上 最后算出来的结果使用:rectTransform.anchoredPosition = localPoint 要转的节点屏幕坐标 var screenPoint = canvas.worldCamera.WorldToScreenpoint(obj.transform.position) 通过查看ugui的Slider(滑块)源码