VRTK4开发笔记
1.Interactions.AngularJointDrive(物理铰链旋转)
1.1参数详解
在这些回调中最常用的是NormalizedValueChanged/ValueChanged(角度变化/归一化数值变化)
其他方法可能在使用中 "不能正确回调",以后会补上使用方法。
1.2手动(代码)控制角度
根据需要初始化开关(switch)位置让用户进行操作。
如:需要用户打开开关初始为关闭状态
通过对AngularDriveFacade和AngularDrive两个脚本的阅读理解得到控制角度应有以下步骤:
- 1.设置TargetValue(归一化数值,参考上图)
- 2.设置DriveSpeed(到达TargetValue的角速度,不宜过大,下面图片展示100的速度)
- 3.设置MoveToTargetValue = true;朝着目标移动
- 4.添加对TargetValueReached回调函数
- 5.调用AngularDriveFacade.Drive.Process();
public AngularDriveFacade Switch01;
Switch01.TargetValue = 1; //1
Switch01.DriveSpeed = 100; //2
Switch01.MoveToTargetValue = true; //3
Switch01.TargetValueReached.AddListener((arg0 => //4
{
Switch01.TargetValueReached.RemoveAllListeners();
Switch01.MoveToTargetValue = false;
Switch01.DriveSpeed = 20;
Debug.Log($"TargetValueReached:{arg0}");
}));
Switch01.Drive.Process(); //5
tips:
如果想让用户继续操作,需要在TargetValueReached回调中调用MoveToTargetValue = false;