NVisionXR_iOS教程六 —— 场景中对象交互

本章节将介绍如何与场景中的对象进行交互,接着上一章节的代码,我们往立方体对象 
添加如下代码,并实现它的代理<HitEventDelegate> 

代码:

    // 创建一个立方体 
    NVBoxWidget *cube = [[NVBoxWidget alloc] initWithScenePlay:self WidgetName:@"cube"]; 
    // 添加材质,传入的是对应的material 材质名 
    [cube setAppearance:@"cubeTex"]; 
    // 设置坐标 
    [cube setPosition:NVPosition(0, 0, 0)]; 
    // 设置缩放比例 
    [cube setScale:NVPosition(1.0, 1.0, 1.0)]; 
    // 设置点击拾取事件 
    [cube setClickEnadble]; 
    cube.delegate = self; 
     
    // 将对象添加到场景中 
    [self addWidget:cube];

点击代理,可以看到里面的方法,我们实现一下 
 
代码:

// 点击事件 
- (void)onClick:(NVWidget *)widget 
{ 
    // 点击到的对象是否和立方体的对象名一致 
    if ([[widget getName] isEqualToString:@"cube"]) { 
         NSLog(@"点击到立方体"); 
    } 
}

运行项目,点击立方体,可以看到控制台打印了日志 

通过这个代理,就可以和场景中的对象进行交互。本章节内容到这里就结束了,下一章 
节,我会教大家让这个立方体动起来。

欢迎联系:

原文地址:http://blog.51cto.com/13683331/2093647

时间: 2024-10-12 01:20:22

NVisionXR_iOS教程六 —— 场景中对象交互的相关文章

NVisionXR_iOS教程七 —— 场景中物体运动

本章节教大家如何让立方体按照自己想要的轨迹运动. 添加头文件#import''NVAnimationEffect.h'',在onCreate方法中实例该动画类,代码如下图: 1.立方体移动  代码:    /**       * 构建一个NVAnimationEffect对象       * name 可以随便取,但是要唯一       * context 传入场景即可       * widget 作用的NVWidget对象,本例传入的是立方体       * duration 运动的总时长 

【转载】Unity3D VR 教程:3.VR中的交互

原文地址:http://blog.csdn.net/sherlockchang/article/details/51336901 概述 在VR开发中,我们经常需要激活一个用户正在盯着的物体.我们准备了一个示例,一个简单的可扩展的轻量级的系统,让用户和物体交互.这个系统由三个主要的脚本组成,VREyeRaycaster, VRInput, 和VRInteractiveItem - 下面有一些简短的说明和项目的源码. VREyeRaycaster 这个脚本需要放在主摄像机上,每一次调用脚本的Upda

《Unity3D》通过对象池模式,管理场景中的元素

池管理类有啥用? 在游戏场景中,我们有时候会需要复用一些游戏物体,比如常见的子弹.子弹碰撞类,某些情况下,怪物也可以使用池管理,UI部分比如:血条.文字等等 这些元素共同的特性是:存在固定生命周期,使用比较频繁,场景中大量使用. 所以,我们就通过池管理思路,在游戏初始化的时候,生成一个初始的池,存放我们要复用的元素, 当要用到时,从池中取出:生命周期结束,放回到池中. 代码 这个池的参数有两个:1池中存放的元素 2 池的初始容量(如果池不够了,则会按照这个容量进行扩展) 代码如下 using S

Unity 获取场景中所有目标对象(包括不激活的对象)

using UnityEngine; using UnityEditor; using System.Collections.Generic; public class ExampleScript : MonoBehaviour { // 获取场景中所有目标对象(包括不激活的对象)不包括Prefabs: List<T> FindSceneObject<T>(string _SceneName)where T:UnityEngine.Component { List<T>

WebGL简易教程(六):第一个三维示例(使用模型视图投影变换)

目录 1. 概述 2. 示例:绘制多个三角形 2.1. Triangle_MVPMatrix.html 2.2. Triangle_MVPMatrix.js 2.2.1. 数据加入Z值 2.2.2. 加入深度测试 2.2.3. MVP矩阵设置 3. 结果 4. 参考 1. 概述 在上一篇教程<WebGL简易教程(五):图形变换(模型.视图.投影变换)>中,详细讲解了OpenGL\WebGL关于绘制场景的模型变换.视图变换以及投影变换的过程.不过那篇教程是纯理论知识,这里就具体结合一个实际的例子

Elasticsearch入门教程(六):Elasticsearch查询(二)

原文:Elasticsearch入门教程(六):Elasticsearch查询(二) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/vbirdbest/article/details/79237950 地理坐标点geo-point 地理坐标点:是指地球表面可以用经纬度描述的一个点. 地理坐标点可以用来计算两个坐标间的距离,还可以判断一个坐标是否在一个区域中,或在聚合中. 地理坐标点不能被

关于hibernate中对象的三种状态分析

一,首先hibernate中对象的状态有三种:瞬态.游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save().saveOrUpdate().get().load():持久态到瞬态的方法有delete():游离态到持久态的方法有update().saveOrUpdate().lock():持久态到游离态的方法有:session.close().session.evict().session.clear(). 二,Hibernate的状态 hibernate的

.Net魔法堂:史上最全的ActiveX开发教程——ActiveX与JS间交互篇

一.前言 经过上几篇的学习,现在我们已经掌握了ActiveX的整个开发过程,但要发挥ActiveX的真正威力,必须依靠JS.下面一起来学习吧! 二.JS调用ActiveX方法 只需在UserControl子类中(即自定义的ActiveX控件中),编写公共方法即可. C# [Guid("0203DABD-51B8-4E8E-A1EB-156950EE1668")] public partial class Uploader : UserControl, IObjectSafety { p

hibernate中对象的三种状态分析

一,首先hibernate中对象的状态有 三种:瞬态.游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save().saveOrUpdate(). get().load():持久态到瞬态的方法有delete():游离态到持久态的方法有update().saveOrUpdate(). lock():持久态到游离态的方法有:session.close().session.evict().session.clear(). 二,Hibernate的状态 hiberna