Pvr_ControllerModuleInit代码分析
1 using System; 2 using UnityEngine; 3 using System.Collections; 4 using Pvr_UnitySDKAPI; 5 6 7 namespace Pvr_UnitySDKAPI 8 { 9 public enum ControllerVariety//定义枚举类型的控制种类变量 10 { 11 Controller0, 12 Controller1, 13 } 14 } 15 16 public class Pvr_ControllerModuleInit : MonoBehaviour 17 { 18 19 public ControllerVariety Variety; 20 public bool IsCustomModel = false;//是否是定制的模型 21 [SerializeField] 22 private GameObject dot;//游戏对象-点 23 [SerializeField] 24 private GameObject rayLine;//游戏对象射线 25 [SerializeField] 26 private GameObject controller;//邮箱对象控制器 27 private int controllerDof = -1; 28 private int mainHand = 0; 29 private bool moduleState = true; //模块状态 30 31 void Awake() 32 { 33 Pvr_ControllerManager.PvrServiceStartSuccessEvent += ServiceStartSuccess; 34 Pvr_ControllerManager.SetControllerAbilityEvent += CheckControllerStateOfAbility; 35 Pvr_ControllerManager.ControllerStatusChangeEvent += CheckControllerStateForGoblin; 36 } 37 void OnDestroy() 38 { 39 Pvr_ControllerManager.PvrServiceStartSuccessEvent -= ServiceStartSuccess; 40 Pvr_ControllerManager.SetControllerAbilityEvent -= CheckControllerStateOfAbility; 41 Pvr_ControllerManager.ControllerStatusChangeEvent -= CheckControllerStateForGoblin; 42 } 43 44 private void ServiceStartSuccess() 45 { 46 mainHand = Controller.UPvr_GetMainHandNess();//设置主手柄 47 if (Variety == ControllerVariety.Controller0) 48 { 49 StartCoroutine(ShowAndHideRay(mainHand == 0 && Pvr_ControllerManager.controllerlink.controller0Connected)); 50 51 } 52 if (Variety == ControllerVariety.Controller1) 53 { 54 StartCoroutine(ShowAndHideRay(mainHand == 1 && Pvr_ControllerManager.controllerlink.controller1Connected)); 55 } 56 } 57 58 private void CheckControllerStateForGoblin(string state) 59 { 60 if (Variety == ControllerVariety.Controller0) 61 { 62 StartCoroutine(ShowAndHideRay(Convert.ToBoolean(Convert.ToInt16(state)))); 63 } 64 } 65 66 private void CheckControllerStateOfAbility(string data) 67 { 68 mainHand = Controller.UPvr_GetMainHandNess(); 69 if (Variety == ControllerVariety.Controller0) 70 { 71 StartCoroutine(ShowAndHideRay(mainHand == 0 && Pvr_ControllerManager.controllerlink.controller0Connected)); 72 73 } 74 if (Variety == ControllerVariety.Controller1) 75 { 76 StartCoroutine(ShowAndHideRay(mainHand == 1 && Pvr_ControllerManager.controllerlink.controller1Connected)); 77 } 78 } 79 80 private IEnumerator ShowAndHideRay(bool state) 81 { 82 yield return null; 83 yield return null; 84 if (moduleState) 85 { 86 dot.SetActive(state); 87 rayLine.SetActive(state); 88 } 89 } 90 91 public void ForceHideOrShow(bool state) 92 { 93 dot.SetActive(state); 94 rayLine.SetActive(state); 95 controller.SetActive(state); 96 moduleState = state; 97 } 98 }
转载于:https://www.cnblogs.com/krystalstar/p/9643789.html
Pvr_ControllerModuleInit代码分析相关推荐
- 20145236《网络攻防》Exp4 恶意代码分析
20145236<网络攻防>Exp4 恶意代码分析 一.基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些 ...
- C#中类的继承 override virtual new的作用以及代码分析
继承中override virtual new的作用 virtual 父类中需要注明允许重写的方法: override 子类中必须显示声明该方法是重写的父类中的方法: new 子类中忽略父类的已存在的 ...
- 2017.4.18 静态代码分析工具sonarqube+sonar-runner的安装配置及使用
配置成功后的代码分析页面: 可以看到对复杂度.语法使用.重复度等等都做了分析,具体到了每一个方法和每一句代码. 四种使用方式: sonarqube + sonar-runner sonarqube + ...
- lighttpd1.4.18代码分析
lighttpd1.4.18代码分析(八)--状态机(2)CON_STATE_READ状态 posted @ 2008-09-24 10:50 那谁 阅读(2225) | 评论 (1) 编辑 lig ...
- Device Tree(三):代码分析
2019独角兽企业重金招聘Python工程师标准>>> 一.前言 Device Tree总共有三篇,分别是: 1.为何要引入Device Tree,这个机制是用来解决什么问题的?(请 ...
- 使用Hadoop和ELK进行业务代码分析!分分钟捉到Bug!
大数据是计算领域的新高地,它有望提供一种方法来应对二十一世纪不断增长的数据生成.越来越多的大数据爱好者正在涌现,越来越多的公司正在采用各种大数据平台,并希望提出以客户为中心的解决方案,帮助他们在竞争激 ...
- 20145328 《网络对抗技术》恶意代码分析
20145328 <网络对抗技术>恶意代码分析 ------看到这句话说明还没写完-------- 实践内容: 使用schtasks指令监控系统运行 使用sysmon工具监控系统运行 使用 ...
- starGAN原理代码分析
下载: git clone https://github.com/yunjey/StarGAN.git 1 cd StarGAN/ 1 下载celebA训练数据: bash download.sh 1 ...
- tensorflow笔记:多层CNN代码分析
tensorflow笔记系列: (一) tensorflow笔记:流程,概念和简单代码注释 (二) tensorflow笔记:多层CNN代码分析 (三) tensorflow笔记:多层LSTM代 ...
- ARM裸机篇---启动代码分析
ARM裸机篇---启动代码分析 先搞清楚启动代码和Bootloader的区别,启动代码是指CPU复位后到进入C语言的main函数之前需要执行的那段汇编代码. 下面的代码先暂且这样吧,没啥注释的,时间关 ...
最新文章
- tree类型题目需要用到的头文件tree.h
- java泛型的实现和原理_java 泛型实现原理
- oracle rman 架构图,图解Oracle RMAN备份入门
- 视频直播点播nginx-rtmp开发手册中文版
- C语言试题七十三之请编写函数求两个数的最大公约数
- 计算机软件著作权奖励资金绩效目标,专项资金项目绩效目标表.pdf
- python爬虫入门实战---------一周天气预报爬取_Python爬虫入门实战--------一周天气预报爬取【转载】【没有分析...
- mysql sqlserver firstrow=2_将CSV文件导入SQLServer
- 关于慢开始、拥塞控制、快重传、快恢复算法的理解
- !DOCTYPE html 到底是什么意思?
- Python—Pytest+Allure定制报告
- 什么是SSL安全证书
- 计算机系统导论实验教程第二版,清华大学出版社-图书详情-《大学计算机基础实验教程(第2版)》...
- C#控件之OpenFileDialog选择图片文件并在picturebox里面显示
- 【windows10】使用pytorch版本deeplabv3+训练自己数据集
- 深度学习模型压缩与优化方法
- 为什么重写equals()就要重写hashCode()
- maven的配置流程
- Java基础(22)-Java反射总览(把反射基本了解一遍)
- EXCEl按16进制递增
热门文章
- 3. 项目立项三板斧-建议书-可行性研究-评估论证
- mysql创建软连接_18.4.2 建立MySQL的软链接
- python微博情感分析,Python情感分析:鹿晗的粉丝们究竟原谅他了吗?
- 怎么下载高清无水印的视频号作品?视频号下载要用什么工具?1分钟解决微信视频号下载
- 郑捷《机器学习算法原理与编程实践》学习笔记(第二章 中文文本分类(二)—朴素贝叶斯算法)...
- 无代码生产新模式探索
- 5G技术—5G网络架构及关键技术详述测试题目
- 云笔记+心情日记类APP推荐
- 使用Kotlin+JetPack 从零开发自己的日记App
- ffmpeg4.x支持的编解码器等相关信息一览表