xiaokunzhang的博客

学习交流,共同进步

VRTK中的物体和手柄高亮以及手柄振动设置

VRTK设计到的相关类 控制器高亮:VRTK_ControllerHighlighter 物体/控制器(边缘)高亮:VRTK_OutlineObjectCopyHighLighter 控制器振动:VRTK_ControllerHaptics 脚本控制实现细节 控制器整体高亮: hi...

2018-07-23 16:11:38

阅读数 812

评论数 1

VRTK中的UI交互方式

交互方式     使用指针交互:类似于激光笔,通过指针(Pointer)对于UI进行选择,适合远距离交互。     使用手柄交互:直接通过手柄触控交互,适合于近距离交互;     使用手柄与头部配合交互:头部发射指针(通常是光标)对UI进行选择,手柄负责确认选中。 具体实现方式     ...

2018-07-23 14:25:10

阅读数 805

评论数 0

HTC Vive 交互开发——手部模型替换和抓取实现

手部模型替换和抓取实现     可以在BasicVRHand.unitypackage包中中获取手部模型。 Hierarchy面板的VRTK_SDK配置 左右控制器Inspector面板设置 using System.Collections; using Syste...

2018-07-22 17:06:01

阅读数 707

评论数 2

VR中的UI

VR中UI的出现场景 菜单 游戏元素UI,如血条、生命值、剩余时间 对话框 提示信息 十字光标 VR中的UI一般构建步骤 新建Canvas Render Model改为World Space 修改缩放 修改Dynamic Pixel Per Unit 添加相关元素 Interact...

2018-07-22 14:25:40

阅读数 224

评论数 0

HTC Vive交互开发——凝视效果实现

凝视效果相关: 通过跟踪头部移动,设置一个代表光标的准星,当停留在某处足够长的时间之后,激发选中逻辑。 类似Kinect自然语言交互。 多用于移动VR,如Cardboard、GearVR等。 VIVE平台使用凝视效果可以增强用户体验。 凝视效果实现原理 1. 基于射线原理,通过Rayc...

2018-07-22 11:31:45

阅读数 301

评论数 0

使用SteamVR实现与物体的交互

使用SteamVR实现与物体的交互需要考虑如下问题:     如何获得按钮事件?如何获得按钮传递的数据?抓取的基本原理(Collider,Rigibody)以及手柄震动的实现 使用SteamVR实现与物体的交互实现步骤 获取手柄引用 手柄与Box的碰撞检测 获取按钮事件 抓取:Box作为手...

2018-07-21 18:26:59

阅读数 647

评论数 0

C++函数模板与类模板

模板 定义:        模板就是实现代码重用机制的一种工具, 它可以实现类型参数化, 即把类型定义为参数, 从而实现了真正的代码可重用性。 分类:        函数模板、 类模板。 作用:        模板用于表达逻辑结构相同, 但具体数据元素类型不同的数据对象的通用行...

2018-07-12 16:16:42

阅读数 65

评论数 0

C++类——纯虚函数与抽象类

纯虚函数 定义:        纯虚函数是一种特殊的虚函数。 在许多情况下, 在基类中不能对虚函数给出有意义的实现, 这时可以把它声明为纯虚函数, 它的实现留给该基类的派生类去做。 作用:        作为派生类中的成员函数的基础, 并实现多态性。 形式: virtual 返...

2018-07-12 14:19:42

阅读数 42

评论数 0

C++中区分概念重载、重写和重定义

重载:      在同一作用域下, 函数名相同, 但是参数列表不同。 重写:     分别在基类和派生类中(在不同作用域下), 函数名相同,参数相同, 返回类型相同, 并且基类函数必须为虚函数。 重定义:     分别在基类和派生类中(在不同作用域下), 函数名相同,不构成重写的话则为重...

2018-07-12 13:56:24

阅读数 57

评论数 0

C++类——多态(概念、实现、理论基础、实现原理、条件与作用)

多态的概念     多态: 同样的调用语句有多种不同的表现形态, 即根据实际的对象类型决定函数调用语句的具体调用目标。 如果父类指针(引用)指向的是父类对象则调用父类中定义的函数。 如果父类指针(引用)指向的是子类对象则调用子类中定义的重写函数。 多态的实现     通过vir...

2018-07-12 13:50:51

阅读数 57

评论数 0

C++类——虚继承

    如果一个派生类从多个基类派生, 而这些基类又有一个共同的基类, 则在对该基类中声明的名字进行访问时, 可能产生二义性。 ![这里写图片描述](https://img-blog.csdn.net/20180711194459451?watermark/2/text/aHR0cHM6Ly9...

2018-07-11 19:47:40

阅读数 86

评论数 0

C++类——多继承

多继承的概念:   如果一个派生类从多个基类继承, 则称为多继承。 多继承的声明: class 派生类名:访问控制 基类名1, 访问控制 基类名2, ... { 成员列表 } 注意: 多个基类的派生类的构造函数执行的顺序与单继承的情况类似,执行顺序取决于定义派生类时指定的继...

2018-07-11 19:29:28

阅读数 183

评论数 0

C++类——派生类中的static关键字用法

  静态数据成员的初始化格式为: 数据类型 类名::静态数据成员名 = 值;    注意: 基类定义的静态成员, 将被所有的派生类共享。 静态数据成员在程序中只有一份拷贝, 由该类型的所有对象共享访问。 静态数据成员和普通数据成员一样遵从访问控制原则。   静态成员函数: sta...

2018-07-11 17:29:18

阅读数 74

评论数 0

C++类——派生类的构造函数与析构函数

类的构造函数     每个类都分别定义了它的对象被初始化的方式, 类通过一个或几个特殊的成员函数来控制器对象的初始化过程, 这些函数叫做构造函数。     构造函数的任务是初始化对象的数据成员, 无论何时只要类的对象被创建, 就会执行构造函数。 默认构造函数     默认构造函数是在未提供...

2018-07-11 17:10:32

阅读数 60

评论数 0

C++类——赋值兼容原则

    赋值兼容规则: 是指在需要基类对象的任何地方, 都可以使用公有派生类对象来替代。     通过公有继承, 派生类得到了基类中除构造函数、析构函数外的所有成员。 这样,公有派生类实际就具备了基类的所有功能, 凡是基类能解决的问题, 公有派生类都可以解决。     赋值兼容原则中的替代主要...

2018-07-11 15:52:56

阅读数 43

评论数 0

C++类——派生类的定义、构成及访问控制

面向对象程序设计   面向对象程序设计(OOP)的核心思想是数据抽象、 继承和动态绑定。 使用数据抽象, 我们可以将类的接口与实现分离(封装)。 使用继承, 我们可以定义相似的类型并对其相似关系建模。 使用动态绑定, 可以在一定程度上忽略相似类型的区别, 而以统 一的方式使用它们的对象(多...

2018-07-11 11:11:24

阅读数 983

评论数 0

C++中的分离式编译

    随着程序越来越复杂, 我们希望把程序的各个部分分别存储在不同的文件中。      我们可以将原来的程序分成三个部分: 头文件: 包含结构声明和使用这些结构的函数的原型。 #pragma once #ifndef GAME_H_ #define GAME_H_ #inclu...

2018-07-10 17:38:19

阅读数 105

评论数 0

C++函数——函数指针

    与数据项类似, 函数也有地址。 函数的地址是存储其机器语言代码内存的开始地址。 可以将地址作为函数的参数,从而使第一个函数能够找到第二个函数, 并运行它。     函数指针指向的是函数而非对象。     想要声明一个可以指向函数的指针, 只需要用指针替换函数名即可。 bool l...

2018-07-10 16:26:54

阅读数 34

评论数 0

C++函数——函数和复杂类型(数组、结构体、string对象)

函数与数组     数组作为参数: int sum_arr(int arr[], int n);     arr是数组名, 但arr实际上并不是数组, 而是一个指针, 指向数组的第一个元素。 但是在编写函数的其余部分时,可以将arr看作是数组。     当且仅当用于函数头或函数原型中, in...

2018-07-10 16:20:21

阅读数 90

评论数 0

C++函数——函数重载

    如果同一作用域内的几个函数名字相同但形参列表不同,我们称之为重载函数。 void print(const char *cp); void print(const int *beg, const int *end); void print(const int ia[], size_t si...

2018-07-09 22:42:57

阅读数 34

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭