自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xiaokunzhang的博客

学习交流,共同进步

  • 博客(25)
  • 收藏
  • 关注

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

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

2018-07-23 16:11:38 4656 3

原创 VRTK中的UI交互方式

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

2018-07-23 14:25:10 7606

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

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

2018-07-22 17:06:01 5396 3

原创 VR中的UI

VR中UI的出现场景菜单游戏元素UI,如血条、生命值、剩余时间对话框提示信息十字光标VR中的UI一般构建步骤新建CanvasRender Model改为World Space修改缩放修改Dynamic Pixel Per Unit添加相关元素Interaction System 中的UI交互按钮点击基于Collider,一般放置为BoxCollider...

2018-07-22 14:25:40 2719

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

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

2018-07-22 11:31:45 2172

原创 使用SteamVR实现与物体的交互

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

2018-07-21 18:26:59 4843

原创 C++函数模板与类模板

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

2018-07-12 16:16:42 1160

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

纯虚函数定义:       纯虚函数是一种特殊的虚函数。 在许多情况下, 在基类中不能对虚函数给出有意义的实现, 这时可以把它声明为纯虚函数, 它的实现留给该基类的派生类去做。作用:       作为派生类中的成员函数的基础, 并实现多态性。形式:virtual 返回类型 函数名(形式参数列表) = 0;抽象类定义:       包含纯虚函数的基类称...

2018-07-12 14:19:42 345 1

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

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

2018-07-12 13:56:24 425

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

多态的概念    多态: 同样的调用语句有多种不同的表现形态, 即根据实际的对象类型决定函数调用语句的具体调用目标。如果父类指针(引用)指向的是父类对象则调用父类中定义的函数。如果父类指针(引用)指向的是子类对象则调用子类中定义的重写函数。 多态的实现    通过virtual关键字, 来修饰成员函数, 则该成员函数为虚函数。    虚函数允许派生类重新定义成员函数...

2018-07-12 13:50:51 734

原创 C++类——虚继承

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

2018-07-11 19:47:40 527

原创 C++类——多继承

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

2018-07-11 19:29:28 6681

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

  静态数据成员的初始化格式为:数据类型 类名::静态数据成员名 = 值;   注意:基类定义的静态成员, 将被所有的派生类共享。静态数据成员在程序中只有一份拷贝, 由该类型的所有对象共享访问。静态数据成员和普通数据成员一样遵从访问控制原则。  静态成员函数:static 返回类型 函数名(参数列表){函数体}  注意:出现在类体外的函数定义不能指定...

2018-07-11 17:29:18 988

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

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

2018-07-11 17:10:32 1392 1

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

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

2018-07-11 15:52:56 1623

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

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

2018-07-11 11:11:24 43649 5

原创 C++中的分离式编译

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

2018-07-10 17:38:19 1014

原创 C++函数——函数指针

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

2018-07-10 16:26:54 243

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

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

2018-07-10 16:20:21 674

原创 C++函数——函数重载

    如果同一作用域内的几个函数名字相同但形参列表不同,我们称之为重载函数。void print(const char *cp);void print(const int *beg, const int *end);void print(const int ia[], size_t size);    这些函数接受的形参类型不一样, 但是执行的操作非常类似。 当调用这些函数时, 编译...

2018-07-09 22:42:57 227

原创 C++函数——递归函数、内联函数、constexpr函数

递归函数    直接或间接调用自己的函数称为递归函数。    递归函数的要求: 递归函数必须定义一个终止条件, 否则,函数将永远递归下去。#include<iostream>using namespace std;long fact(int i);int main(){ int num; cout << "请输入一个小于8的正整数...

2018-07-09 22:27:16 1153

原创 C++函数——返回类型

    无返回值函数: 没有返回值的return语句只能用在返回类型是void的函数中。    有返回值函数: return语句的第二种形式提供了函数的结果。 只要函数的返回类型不是void, 则该函数内的每条return语句必须返回一个值。    返回一个值的方式和初始化一个变量或形参的方式完全一样: 返回的值用于初始化调用点的一个临时量, 该临时量就是函数调用的结果。    返回引...

2018-07-09 21:50:37 5528

原创 C++函数——默认实参

    默认实参: 某些函数有这样一种形参, 在函数的很多次调用中它们都被赋予一个相同的值, 我们把这个反复出现的值称为函数的默认实参。    调用含有默认实参的函数时, 可以包含该实参, 也可以省略该实参。     对于有多个形参的函数, 必须从右向左添加默认值。#include<iostream>#include<string>using name...

2018-07-09 21:25:17 1373

原创 C++函数——const形参和实参

    顶层const: 表示任意的对象是常量。     底层const: 与指针和引用等复合类型有关。    对指针而言, 顶层const表示指针本身是个常量, 而底层const表示指针所指的对象是一个常量。int i = 22;const int ci = 20; //顶层const, 不能修改ci的值const int *p1= &ci; //底层const, 允...

2018-07-09 21:09:33 11397 3

原创 C++函数——参数传递

参数传递形参的类型决定了形参和实参的交互方式。如果形参是引用类型, 它将绑定到对应的实参上 (传引用参数); 否则, 将实参的值拷贝后赋给形参(传值参数)。传值参数    传值参数有2种方式:将实参的实际值复制给函数的形参。 在这种情况下,修改函数内的形参对实参没有影响。#include<iostream>#include<string&amp

2018-07-09 20:48:42 222

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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