当前位置: 首页 > news >正文

简易虚拟培训系统-UI控件的应用4

目录

Slider组件的常用参数

示例-使用Slider控制主轴

示例-Slider控制溜板箱的移动


本文以操作面板为例,介绍使用Slider控件控制开关和速度。

Slider组件的常用参数

  Slider组件下面包含了3个子节点,都是Image组件,负责Slider的背景、填充区域和滑动手柄的图片显示,Image组件在前文已经写过,不再赘述(Image组件)。

  最重要的组件在Slider节点上,这里介绍常用的参数:

  1. 颜色设置:与按钮Button中的颜色设置一样,主要检测鼠标(或其他输入设备)的射线,离开、悬停、点击等不同状态时的颜色显示(详见Button的设置)。

  2. Slider的值变化:这是Slider控件中最重要的参数

  3. OnValueChanged:当Slider值变化时关联的回调函数,设置方式和Button类似

示例-使用Slider控制主轴

  1. 场景中找到需要被控制的机床主轴MainAxis

 

  2. 制作Slider控件:

  3. 脚本如下:当获取到Slider的值为1时,主轴旋转

public class mainAxisCtrl : MonoBehaviour
{//主轴运动控制public float axisSpeed = 20;   //主轴的旋转速度public Slider onOffCtrlSlider; //开关Sliderpublic GameObject mainAxis;    //载入主轴的节点void Update(){if(onOffCtrlSlider.value==1)mainAxis.transform.Rotate(0,0,axisSpeed);}
}

  4. 同样将脚本挂在空节点Empty上,拖入相应的节点

  

示例-Slider控制溜板箱的移动

  1.制作溜板箱的Slider

  

  2. 调整Slider控件的数值:溜板箱的行程较长,可以将Slider的数值当作移动长度的百分比,起始位置是0

  3. 脚本如下:

public class carriageCtrl : MonoBehaviour
{//溜板箱的控制public Slider carCtrlSlider; //溜板箱移动Sliderpublic GameObject carriage;    //载入溜板箱的节点private float startPos, endPos,curMovPos; //溜板箱移动方向的起始坐标记录private Vector3 oriCarPos;  //溜板箱的最初位置void Start(){startPos = -1;    //记录溜板箱移动方向(X轴)起点位置endPos = -2.5f;   //记录溜板箱移动方向(X轴)终点位置curMovPos =- (startPos - endPos)/100;  //起点和终点的差分成100等份oriCarPos=carriage.transform.localPosition; //记录溜板箱最初的坐标}void Update(){//溜板箱当前的位置为起点距离+Slider滑动的数值比例,仅修改x方向carriage.transform.localPosition = new Vector3(startPos+curMovPos * carCtrlSlider.value,oriCarPos.y, oriCarPos.z);}
}

  4. 同样,将脚本挂在空节点Empty上,并赋值Slider节点和溜板箱的节点:

  5. 运行结果

http://www.lryc.cn/news/152647.html

相关文章:

  • #include <graphics.h> #include <conio.h> #include<stdlib.h>无法打开源文件解决方案
  • 【C语言】数据结构的基本概念与评价算法的指标
  • [PyTorch][chapter 54][Variational Auto-Encoder 实战]
  • Java实现HTTP的上传与下载
  • VPG算法
  • docker 笔记5:redis 集群分布式存储案例
  • 【Vue2】 axios库
  • 云计算 - 百度AIStudio使用小结
  • 刷新你对Redis持久化的认知
  • Greenplum-最佳实践小结
  • 从Gamma空间改为Linear空间会导致性能下降吗
  • 双轨制的发展,弊端和前景
  • 生成对抗网络(GAN):在图像生成和修复中的应用
  • 扬杰科技携手企企通,召开SRM采购供应链协同系统项目启动会
  • AtCoder Beginner Contest 318
  • 《Python魔法大冒险》003 两个神奇的魔法工具
  • 每日一题-动态规划(从不同类型的物品中各挑选一个,使得最后花费总和等于1000)
  • 2023-9-3 试除法判定质数
  • 【Apollo学习笔记】——规划模块TASK之RULE_BASED_STOP_DECIDER
  • 【SpringBoot】最基础的项目架构(SpringBoot+Mybatis-plus+lombok+knife4j+hutool)
  • RNN 单元:分析 GRU 方程与 LSTM,以及何时选择 RNN 而不是变压器
  • Linux音频了解
  • 精心整理了优秀的GitHub开源项目,包含前端、后端、AI人工智能、游戏、黑客工具、网络工具、AI医疗等等,空闲的时候方便看看提高自己的视野
  • Leetcode54螺旋矩阵
  • element-plus 表格-方法、事件、属性的使用
  • NVME Linux的查询命令-继续更新
  • pyqt5-自定义文本域1
  • Go实现LogCollect:海量日志收集系统【上篇——LogAgent实现】
  • MySQL (1)
  • MR混合现实汽车维修情景实训教学演示