可交互的组件 布局控件

可交互的组件

Button 按钮
Toggle 开关
slider 滑动条
Scrollbar 滚动条
InputField 输入框
Dropdown 下拉菜单
Scroll View 滚动视图

可交互组件的通用属性

Interactable 交互的开关 取消这个勾 不可交互

Transition 交互组件的变化 Color Tint变化是由颜色引起的(改变颜色)Sprite Swap 图片 Animation 动画  Normal Color 正常状态  Highlighted Color 高亮状态(悬停) Pressed Color 按住时候 Disabled Color交互开关不可用的时候

Navigation 导航(交互的)有焦点问题  Horizontal 横向 Vertical 纵向 Automatic 自动 Explicit    按下Visualize出现导航

Button

On Click()事件 点小加号 默认就行不用调 None(Object) 事件只能有一个参数或没有参数 点击减号解除绑定

界面拖动绑定点击事件 步骤 先创建一个Button按钮 把自己这个游戏对象拖过去 点击加号创建脚本

using UnityEngine;

public class ButtonController : MonoBehaviour {
    //点击button按钮执行这个方法
    public void OnButtonClick(){
        Debug.Log("你点了button了");
    }
    //也可以传参数
    //public void OnButtonClick(float a){
    //    Debug.Log("你点了button了" + a);
    //}
}

这是界面拖动 当然也可以用代码的方式 同样的方法

using UnityEngine;
using UnityEngine.UI;

public class ButtonController : MonoBehaviour {
    private Button btn;
    
    int a;
    
    private void Awake(){
        //找到他
        btn = GetComponent<Button>();
    }
    
    private void Start(){
        //间接地实现
        a = 123;
        
        //AddListener 绑定不能绑定带参数的 代码绑定只能绑定没有参数的
        btn.onClick.AddListener(OnButtonClick);
    }
    
    public void OnButtonClick(){
        Debug.Log("你点了button了" + a);
    }
}

Slider

Fill Rect 填充区子对象(一般不动)
Handle Rect 滑块  (一般不动)
Direction滑动方向Left To Right 从左到右Right To Left 从右到左Bottom To Top 从上到下Top To Bottom 从下到上
Min Value最小的值
Max Value最大的值
Whole Numbers 只能是整数(没有小数)
Value 调整上面的最小值最大值 这里会受影响
On Value Changed(Single) 也是绑定事件
Dynamic float 动态浮点数 (大多数时候用这个)
Static Parameters 静态浮点数
using UnityEngine;

public class SliderController : MonoBehaviour {
    
    public void OnSliderValueChanged(float val){
        Debug.Log("你滑动了滑动条" + val);
    }
}

Scrollbar

相同的不写了 
Size 滑块大小
Number Of Steps 从左滑到有几步

Toggle

Is On 开关
Toggle Transition   Fade渐变
Graphic (一般不动)
Group 多个Toggle一起使用
Toggle Group 组件 可以分为一个组 Allow Switch off 允许哪个都不选

InputField

Text Component 最后会输出在哪
Text 输出的文本会显示在这里
Character Limit 字数限制
Content Type 内容类型
Line Type (没啥用)
Placeholder 提示信息框 (一般不动)
Caret Blink Rate 光标闪动速度
Caret Width 光标宽度
Custom Caret Color 光标颜色 
Selection Color 选中的颜色 (这几个。。。都没啥太大用)
Hide Mobile	Input 移动端的虚拟键盘不弹出来 就不能输入了
Read Only 只读
On Value Changed(string)
On End Edit(string)当结束编辑

Dropdown

补充 :图片等比例缩放快捷键可以按shift

Template
Caption Text
Caption Image 拖入Dropdown
Item Text
Item Image    拖入Item Background
Value
Options  里面有两行 第一行输入想要的内容 第二行可以选择图片 选完之后要指定 不然是没有的
OnValueChanged(int32)

ScrollView

拓展 : Hierarchy 面板 东西太多了 直接alt + 鼠标左键点击小三角那个可以一键展开 一键合并

ScrollView/Viewport/Content   <-----在这里边放内容

Scroll Rect组件
Content
Horizontal
Vertical
Movement Type   Elastic 弹簧 这个体验感比较好
Elasticity 弹力系数(这些一般都用默认的就行)
Inertia
Deceleration Rate
Scroll Sensitivity
Horizontal Scrollbar 删完之后要调成None
Vertical Scrollbar  删完之后要调成None

Mask 组件
Content Size Fitter 动态调整,内容自适应 Horizontal Fit,Vertical Fit   Unconstrained , Min Size , Preferred Size

Canvas

画布的三种模式

Screen Space - Overlay 不需要相机也能渲染的 Pixel Perfect
Screen Space - Camera 如果不拖摄像机 跟第一种是一样的  Plane Distance 摄像机距离画布 	Sorting Layer选择 Add Sorting Layer... 添加层 Order in Layer
World Space   需要一个事件摄像机

Canvas Scaler(Script)关于画布缩放的三种模式

UI Scale Mode   
Constant Pixel Size 固定的像素大小 Scale Factor 通过这个调整比例 
Scale With Screen Size  缩放随着屏幕的大小变化 Reference Resolution 屏幕分辨率
Constant Physical Size 固定物理尺寸	(基本用不到)

布局控件

创建一个空对象

Horizontal Layout Group
Padding  边距
Left  距离父对象的边距
Right
Top
Bottom
Spacing 间距
Child Alignment 对齐方式 
Grid Layout Group

通用的事件回调

使用前需要有三个条件 :

(1)当前UI对象必须有⾄少⼀个基础组件(Text、Image、Raw Image)

(2)基础UI组件中必须勾选Raycast Target

(3)代码引⼊命名空间:using UnityEngine.EventSystems;

using UnityEngine;
using UnityEngine.EventSystems;

public void UIEventDemo : MoneBehaviour, 
	IPointerEnterHandler, IPointerExitHandler, 
	IPointerDownHandler, IPointerUpHandler,
	IPointerClickHandler, IBeginDragHandler,
	IDragHandler, IEndDragHandler{
    
    //进入
    public void OnPointerEnter(PointerEventData eventData){
        Debug.Log("进入");
    }
    
    //离开
    public void OnPointerExit(PointerEventData eventData){
        Debug.Log("离开");
    }
    
    //按下
    public void OnPointerDown(PointerEventData eventData){
        Debug.Log("按下");
    }
    
    //抬起 执行了按下 一定会执行抬起 但是 从别的地方按下然后一进来松开 是不会抬起的
    public void OnPointerUp(PointerEventData eventData){
        Debug.Log("抬起");
    }
    
    //点击  与按下抬起的区别是 这个点击是按下并抬起 在别的地方抬起没用
    public void OnPointerClick(PointerEventData eventData){
        Debug.Log("点击");
    }
    
    //开始拖拽
    public void OnBeginDrag(PointerEventData eventData){
        Debug.Log("开始拖拽");
    } 
   
    //拖拽中  每帧执行一次
    public void OnDrag(PointerEventData eventData){
        Debug.Log("拖拽中");
        //实现一个小功能 让我鼠标拖动的图片 跟着鼠标运动
        transform.position = Input.mousePosition;//这样的条件是摄像机是第一种模式
    }
    
    //结束拖拽
    public void OnEndDrag(PointerEventData eventData){
        Debug.Log("结束拖拽");
    }
}

也可以不写代码通过Event Trigger(script)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值