Unity开关门的脚本,从VRTK的例子里边找的
来源:互联网 发布:淘宝会员号是什么 编辑:程序博客网 时间:2024/06/05 04:33
在做HTC-VR项目时发现了这个脚本,用于开关门,感觉很不错,就稍微改了下(就是把VRTK_SDK相关的删了),自己用,看代码:
using UnityEngine;public class OpenDoor:MonoBehaviour{ public bool flipped = false; //正转还是倒转 public bool rotated = false;//是否相对相机旋转 public float smooth = 60.0f; //旋转速度 public float doorOpenAngle = -90f; //旋转角度 private float sideFlip = -1; private float side = -1; private bool open = false; //当前状态 private Vector3 defaultRotation;//初始旋转欧拉 private Vector3 openRotation;//目标旋转欧拉 //触发方法 public void StartUsing() { SetDoorRotation(transform.position); SetRotation(); open = !open; } private void Start() { defaultRotation = transform.eulerAngles; SetRotation(); sideFlip = (flipped ? 1 : -1); } private void Update() { if (open) { transform.rotation = Quaternion.RotateTowards(transform.rotation, Quaternion.Euler(openRotation), Time.deltaTime * smooth); } else { transform.rotation = Quaternion.RotateTowards(transform.rotation, Quaternion.Euler(defaultRotation), Time.deltaTime * smooth); } } //设置新的旋转 private void SetRotation() { openRotation = new Vector3(defaultRotation.x, defaultRotation.y + (doorOpenAngle * (sideFlip * side)), defaultRotation.z); } //是否两面旋转,相机在哪人在哪(实验出来的在VR里) private void SetDoorRotation(Vector3 interacterPosition) { side = ((rotated == false && interacterPosition.z > transform.position.z) || (rotated == true && interacterPosition.x > transform.position.x) ? -1 : 1); }}
想让啥转让啥转,也可以用开关,把这个脚本放到开关物体上,然后将transform改成门的物体就行了,同理可以随便控制物体旋转,如果有人看的话,多给意见
阅读全文
0 0
- Unity开关门的脚本,从VRTK的例子里边找的
- VRTK脚本都是干嘛的?
- 在unity中有关VRTK的射线使用
- [HTC Vive + Unity开发]——VRTK的研究——用手柄旋转物体(使用VRTK_Knob脚本)
- eclipse里边找对应大括号的快捷键是
- github里边常用的一些Cocoa例子代码
- 将expdp的dmp文件从asm磁盘组里边放到本地文件系统里边
- bean 里边的注解
- sln里边的内容
- <VRTK学习一> 初识vrtk,如何在自己的项目中使用vrtk
- 从100本名书里边选出来的名言
- 从QQ里边复制出来代码存在的问题
- Unity3D——VRTK-SteamVR Unity Toollit插件工具的运用
- unity VRTK拿起物体设置成碰撞物体的子物体
- Unity脚本的属性
- Unity抛物线的脚本
- Unity脚本的生命周期
- unity 陀螺仪的脚本
- 封装rhel6.5的虚拟机
- Struts2(十二):国际化
- Reclyclerview 的条目的textview展开,收起
- PAT 1029旧键盘
- leetcode -- 557. Reverse Words in a String III 【字符反转 + 字符数组 + 双指针 + 状态记录】
- Unity开关门的脚本,从VRTK的例子里边找的
- UESTC 1131 男神的礼物
- Android中GridView、ListView 的 getChildAt() 方法返回null 解决方案
- 字符串去重
- 记录小错误
- FTP内部常用命令
- 经常用到的字符串截取
- thymeleaf快速入门教程
- 多线程编程之二——MFC中的多线程开发