前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于ARkit和SceneKit检测相机位置和设置2个物体碰撞的事件

基于ARkit和SceneKit检测相机位置和设置2个物体碰撞的事件

原创
作者头像
发布2018-05-04 09:53:41
1.6K8
发布2018-05-04 09:53:41
举报
文章被收录于专栏:浅探ARKit

####physics body物理形体

####physics shapes物理形状

###获取相机中心

代码语言:txt
复制
ARFrame * frame = self.jpARSCNView.session.currentFrame;

SCNMatrix4 mat = SCNMatrix4FromMat4(frame.camera.transform);
        
SCNVector3 dir = SCNVector3Make(-1* mat.m31, -1* mat.m32 , -1* mat.m33);
        
SCNVector3 pos = SCNVector3Make(mat.m41,mat.m42 ,mat.m43);

bulletsNode.position = pos;

SCNVector3 bulletDirection = dir;

[bulletsNode.physicsBody applyForce:bulletDirection impulse:YES];

[self.jpARSCNView.scene.rootNode addChildNode:bulletsNode];

###检测碰撞事件

######和以往iOS的代理事件不同 它还要多设置categoryBitMask、contactTestBitMask属性的id 用于标志2个物体是否会发生碰撞

#####代理设置

<SCNPhysicsContactDelegate>

_jpARSCNView.scene.physicsWorld.contactDelegate = self;

self.physicsBody.categoryBitMask = 2;

self.physicsBody.contactTestBitMask = 1;

// 这里是自己独立开一条线程出来

— (void)physicsWorld:(SCNPhysicsWorld )world didBeginContact:(SCNPhysicsContact )contact ;

代码

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档