| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> UnityVR--机械臂场景2-机械臂 -> 正文阅读 |
|
[游戏开发]UnityVR--机械臂场景2-机械臂 |
机械臂的每一个自由度呈层级关系,也就是较末端的自由度跟随父自由度一起移动。 ? ?因此,我们在控制某个自由度运动以前,要先找出这个自由度的旋转中心,定义旋转约束和旋转步长(每按一次按钮,自由度旋转的角度)。 另外,机械臂的每一个部件的坐标,需要在其他软件或控件中调整和重新定义其位置。 1. 找到需要测试自由度的节点,查看一下它的旋转轴。以Point005为例,选中后在Inspector面板中取消勾选, ?? ?需要将场景坐标切换为“Local”,之后可以在场景中看到这个自由度的旋转轴方向(目前是蓝色的z轴)。 ?? ?2. 在MyScript文件夹中新建一个Test.cs脚本测试一下,在Update()方法中写入: transform.Rotate(new Vector3(0,0,0.1f)); 挂载到Point005节点上,运行测试这个旋转坐标是否正确。 ?3. 第一个自由度关节使用UI控件中的“Link1”的按钮来控制,在这个关节的脚本中需要载入。 脚本RobotLink1.cs分段解释 第一段:定义变量 ?第二段:Start() 初始化各种变量,并且记录这个关节最初的旋转值,以便于回零。 ?第三段:当监听到向左的按钮被按下时,调用onLink1ButtonLeft()方法。其中,rotatedAngle是关节已旋转过的距离,它需要与约束值AngleRange比较,判断是否超过了约束。并且已旋转过的距离还要再与下一步要旋转的距离RotateStep叠加,判断再次旋转一个步长后,是否还在约束角度内,如果这两者都为真,才会进入if循环,否则提示“Link1超过范围了”。 ?第四段:当监听到向右的按钮被按下时,调用onLink1Buttonright()方法。与前一段内容基本相同,不同的是旋转的角度互为相反数。 ?第五段:回零。将Start()中获取到的初始角度值赋给现在的方向。 4. 以上为机械臂的其中一个自由度控制方法。其他自由度可以使用同样的脚本来控制,有所区别的就是机械臂的转动坐标轴需要进行第2步中的测试。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/17 2:59:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |