谁用过2代手柄sdk自己开发unity小游戏教程啊吧

技术·Unity3D(14)
暴风魔镜(5)
android(8)
最近在做一个模块,要求使用暴风魔镜SDK通过头部和手柄控制字体拼凑,注意不是笔划的书写哦,以为用头来控制写字实在是太奇怪了......
以“鸟”字为例,其他的字也可以,只需设置好模板上笔划应到的位置,以及按顺序给笔划编号如1,2,3....即可。效果如下,肯定不完美,但还是要记录下来,希望能与大家多交流啊,哈哈哈哈
通过按下魔镜C键来选择下方的笔划,通过头部移动来控制笔划的移动
C键选择时必须按照标准的笔划顺序才能选取
实现思路基本是射线
1.通过射线检测所有物体,当找到tag为Font的物体后,即确定了想要的笔划。
2.通过射线检测所有物体,控制笔划始终与头部发射射线触碰点相一致。
3.以该笔划为发射点向墙体发射射线,碰到需要到达的地方之后,就自动对齐。
需要放置笔划最终想要到达的点,如下
工程如下图,按照笔划顺序给笔划命名
stroke下的物体是笔划实体,tag是Font,加碰撞体
originalStrokePositionParent下的是笔划实体原本待在的地方,tagboardStrokePosition
position是墙上希望笔划应该待在的地方,tag是wallStrokePosition,加碰撞体
代码如下:
选择笔划及控制移动
using UnityE
using System.C
namespace MojingSample.CrossPlatformInput.PlatformSpecific
public class FontMove : MonoBehaviour
public static FontMove _
private GameObject lacuchP//射线发射位置
public GameObject targetMoveObject =//被拾起的笔画
public LayerMask moveL//移动层
public LayerMask wallL//墙体层
public bool isMove =//是否可以移动
public bool isFind =//是否可以寻找
private Vector3 lastP
private int strokeNumber=1;//记录笔画顺序
void Awake()
_instance =
void Start()
lacuchPosition = GameObject.FindGameObjectWithTag(&MainCamera&);
// Update is called once per frame
void Update()
FindTarget();
if (isMove == true)
TargetMove();
void FindTarget()
{//寻找需要选择的笔画
if (isFind == true)
if (CrossPlatformInputManager.GetButtonDown(&C&) || Input.GetKeyDown(KeyCode.J))
bool hit = Physics.Raycast(lacuchPosition.transform.position, lacuchPosition.transform.forward, out info, 100);
if (info.transform.tag == &Font&)
if (info.transform.name == strokeNumber.ToString())
{//如果满足要求的笔划顺序
targetMoveObject = info.transform.gameO
lastPosition = targetMoveObject.transform.
targetMoveObject.GetComponent&BoxCollider&().enabled =
strokeNumber++;
void TargetMove()
{//移动笔画
if (targetMoveObject != null)
bool hit = Physics.Raycast(lacuchPosition.transform.position, lacuchPosition.transform.forward, out info, 100);
if (info.transform.tag == &Wall&)
Vector3 pos = info.
pos -= new Vector3(0.1f, 0, 0);
targetMoveObject.transform.position =
控制笔划匹配
using UnityE
using System.C
namespace MojingSample.CrossPlatformInput.PlatformSpecific
public class FontAlign : MonoBehaviour
private GameObject[] wallStrokeP//墙上应该被放置的笔画的位置
private GameObject lacuchP//笔画向墙发射射线的位置
private GameObject targetStroke =//墙上被选中的笔画
// Use this for initialization
void Start()
wallStrokePosition = GameObject.FindGameObjectsWithTag(&wallStrokePosition&);
// Update is called once per frame
void Update()
if (FontMove._instance.targetMoveObject != null)
lacuchPosition = FontMove._instance.targetMoveO
FindPosition();
void FindPosition()
if (lacuchPosition != null)
foreach (GameObject go in wallStrokePosition)
if (go.name == lacuchPosition.name)
targetStroke =
if (FontMove._instance.targetMoveObject != null)
if (Vector3.Distance(lacuchPosition.transform.position, targetStroke.transform.position) &= 0.5f)
FontMove._instance.isMove =
FontMove._instance.isFind =
FontMove._instance.targetMoveObject.transform.position = targetStroke.transform.
FontMove._instance.targetMoveObject =
有不足的地方或者更好地解决办法希望大家能指出哦
using UnityE
using System.C
namespace MojingSample.CrossPlatformInput.PlatformSpecific
public class FontMove : MonoBehaviour
public static FontMove _
private GameObject lacuchP//射线发射位置
public GameObject targetMoveObject =//被拾起的笔画
public LayerMask moveL//移动层
public LayerMask wallL//墙体层
public bool isMove =//是否可以移动
public bool isFind =//是否可以寻找
private Vector3 lastP
private int strokeNumber=1;//记录笔画顺序
void Awake()
_instance =
void Start()
lacuchPosition = GameObject.FindGameObjectWithTag(&MainCamera&);
// Update is called once per frame
void Update()
FindTarget();
if (isMove == true)
TargetMove();
void FindTarget()
{//寻找需要选择的笔画
if (isFind == true)
if (CrossPlatformInputManager.GetButtonDown(&C&) || Input.GetKeyDown(KeyCode.J))
bool hit = Physics.Raycast(lacuchPosition.transform.position, lacuchPosition.transform.forward, out info, 100);
if (info.transform.tag == &Font&)
if (info.transform.name == strokeNumber.ToString())
{//如果满足要求的笔划顺序
targetMoveObject = info.transform.gameO
lastPosition = targetMoveObject.transform.
targetMoveObject.GetComponent&BoxCollider&().enabled =
strokeNumber++;
void TargetMove()
{//移动笔画
if (targetMoveObject != null)
bool hit = Physics.Raycast(lacuchPosition.transform.position, lacuchPosition.transform.forward, out info, 100);
if (info.transform.tag == &Wall&)
Vector3 pos = info.
pos -= new Vector3(0.1f, 0, 0);
targetMoveObject.transform.position =
控制笔划匹配
using UnityE
using System.C
namespace MojingSample.CrossPlatformInput.PlatformSpecific
public class FontAlign : MonoBehaviour
private GameObject[] wallStrokeP//墙上应该被放置的笔画的位置
private GameObject lacuchP//笔画向墙发射射线的位置
private GameObject targetStroke =//墙上被选中的笔画
// Use this for initialization
void Start()
wallStrokePosition = GameObject.FindGameObjectsWithTag(&wallStrokePosition&);
// Update is called once per frame
void Update()
if (FontMove._instance.targetMoveObject != null)
lacuchPosition = FontMove._instance.targetMoveO
FindPosition();
void FindPosition()
if (lacuchPosition != null)
foreach (GameObject go in wallStrokePosition)
if (go.name == lacuchPosition.name)
targetStroke =
if (FontMove._instance.targetMoveObject != null)
if (Vector3.Distance(lacuchPosition.transform.position, targetStroke.transform.position) &= 0.5f)
FontMove._instance.isMove =
FontMove._instance.isFind =
FontMove._instance.targetMoveObject.transform.position = targetStroke.transform.
FontMove._instance.targetMoveObject =
有不足的地方或者更好地解决办法希望大家能指出哦
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:705次
排名:千里之外
原创:15篇
转载:10篇Unity 3D基于SteamVR进行开发,怎么判断手柄与其他物体的接触?_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:61,299贴子:
Unity 3D基于SteamVR进行开发,怎么判断手柄与其他物体的接触?收藏
Unity 3D基于SteamVR进行开发,怎么判断手柄与其他物体的接触? openVR SDK API中是否有相应接口?请大神赐教
小白一个,刚开始做
unity3d,学习专业的游戏引擎-unity3d.达内游戏主程培训,一般要4-16周,就可掌握.变高端游戏达人-薪资翻番.unity3d费用根据培训课时定,上海官方咨询-unity3d.
真小白还是先从基础学起吧,不建议上来做VR,你这个问题属于基础啊
触发事件或碰撞事件
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或VR游戏开发201 在Unity中使用Cardboard SDK - 简书
VR游戏开发201 在Unity中使用Cardboard SDK
在Unity引擎中使用Cardboard SDK
对于每个虚拟现实的开发者来说,拥有一个虚拟现实显示设备似乎是必须的。然而大多数的虚拟现实显示设备例如Oculus Rift、HTC VIVE等均售价过于昂古,若是入坑不久或考虑是否入坑,购买设备显得不太划算。因此我们决定使用Google的Cardboard来发挥虚拟现实显示头盔的作用。较其他设备言之,Cardboard可以自己DIY,也可以选择网购,成本在5-20元之间,十分低廉。设备需求:
安卓或IOS手机一部(最好是大屏手机)
Cardboard一个
若自己DIY的话需要如下配件:
凸透镜片(具体规格参考Cardboard图纸)2个
打印图纸一张(图纸可以到Google Cardboard的网上下载,或根据下文链接下载)
Cardboard图纸:
1代网友修改版:
百度网盘链接:密码:96a2
2代官方图纸:
链接:/s/1kUuRY1h 密码:efef
图1Cardboard2.0
开发准备工作必备工具依赖关系:安装AndroidSDK需要JDK Unity生成安卓项目需要安卓SDK所以安装顺序为JDK-&AndroidSDK-&Unity但由于Unity安装缓慢所以可以先开始安装Unity1、安装Unity安装Unity5的时候勾选Android Build Support和IOS Build Support以便发布Android和IOS的项目。
图2安装界面
由于Unity下载在国内没有服务器,所以下载速度很慢,耐心等待即可。
图3下载界面
完成安装之后下载Google Cardboard的SDK
注:需翻墙
官方网址:
文件CardboardSDKForUnity.unitypackage
网盘地址:密码:7wp3
文件CardboardDemoForUnity.unitypackage
链接:/s/1skrrWDn密码:sbmg
JDK 8下载地址:
如果地址无法下载请到Oracle官网进行下载
安装安卓SDK链接:/s/1mgPHUvY 密码:lquj
图4 安装 JDK
安装JDK之后安装安卓SDK
图5 安装安卓SDK
安装完安卓SDK后打开SDK manager
图6 Android SDK Manager
选择如下Build Tools点击安装若没下载速度或下载失败需要翻墙正式开始新建一个Unity项目
新建Unity项目
导入CardboardSDK包
导入CardboardSDK的包
再导入CardboardDemo包
DemoScene场景
导入后打开demo场景打包安卓APK点击File – BuildSetting选择android如果没安装安卓的build support这时需要重新下载安装完成后重启Unity
Build Setting
点击右下角加入现有场景
导入现有场景
期间会弹出窗口,让你选择安卓SDK的目录。选择你要导出的APK的位置于是开启漫长的Build过程
途中可能需要制定Android SDK的位置和到PlayerSetting中修改你的Identifier为com.公司名.项目名如com.LightSpot.TestDemo发布完成之后传到手机上进行测试
输出的APK文件
手机端测试
Cardboard类VR眼镜
恭喜,至此你的第一个VR应用就此诞生了日更新日志:修正Cardboard2.0错误链接本文作者沈庆阳拥有著作权,未经允许不得转载。unity3d吧_百度贴吧
签到排名:今日本吧第个签到,
本吧因你更精彩,明天继续来努力!
本吧排名:
本吧签到人数:2745
可签7级以上的吧50个
本月漏签0次!
成为超级会员,赠送8张补签卡
连续签到:天&&累计签到:天
超级会员单次开通12个月以上,赠送连续签到卡3张
Unity3D同好者学术交流圣地
各位吧友们,我自学unity3d游戏引擎一年了,想自己做些什么,于是就有了我现在正在做的这款fps游戏,寒
这是加载部分的代码,明明释放内存还是不得劲啊
unity3d,学习专业的游戏引擎-unity3d.达内游戏主程培训,一般要4-16周,就可掌握.变高..
我是初学者,想用mac版,但是资料上都是win版快捷键,请问区别大吗?
哪位大神可以帮我做几张室内意向图 就是效果图做平面图 我给图片 急用有偿 谢谢各位大神了 评论私聊 &#
想要实现一个游戏中很常见的功能,就是和NPC对话的时候,NPC的话的字是一个一个显示出来的,而且有一
这两个都不错,不知道学哪个好
谁有PR CS4的一些特效插件,就比如像FE这样的插件,在网上找了好久都没找到真的,求吧里大神发个资源,
坐标上海,已经持续一个多星期了. 刚开始以为是墙或者梯子的问题. 结果发现google能用一切正常. 有谁和我
很多时候我们需要的并不是直线和折线,而是平滑的曲线,比如寻路系统,某些物体的曲线运动,都需要平滑曲线来保证效果,今天试了一下,通过iTweenPath利用
火星时代作为专业unity3d研发培训机构,依靠多年游戏教学实力,让您快速成为u3d工程师..
默认路径不在安卓的图册里显示,如何设置这个截图路径? api的重载形式里没有设路径的参数。
这是改了size 这是没改的, 上图,,敏捷和体力中间的空格很大,,我Text里组件里字体是25,我用size单独改了力量,
麻,正在看关于UGUI的视频,不知道怎么突然就跑到贴吧里了,感觉心里有点话想说说,于是决定写下了,
请问这个组件是怎么引用的
这种软件可以开发mmorpg手游么?
我定义了 一个public Gameobject[] 无法给 程序(没安道物体上)选 基本物体,只能先安到一个物体上后才
如题:做了一个custom font,结果字都重叠在一起,求助高手~
我以前用5.2的时候不会这样,,最近改用5.5,只要Unity开着,,走开几个小时回来,,就点不了了,只要最小化就点不
这几天安装unity3d,背了点,电脑无法自动激活,只能手动自己激活,我就搜了一下发现关于手动激活的内容少之又少,所以打算写一篇关于手动激活的帖子
在UNITY里弄了一天做了个肉钩出来,和DOTA1里还有不少差距,大神请别喷我 有动图有真相 一开始是在GAME视
如题,用unity开发个简单的vr,比如在一个简单的场景,两个人打架,一个vr操作,一个电脑!大概要做多
如题,就是汽车发动机的仿真,一点思路没有
如题目,谁有啊,急! 谢谢!(希望能找到)
帮我把那个女的p走,这是我们4兄弟的跨年照片,这个女的强行挤进来,又不好意思叫她走开……𤎱htt
蛮牛A神的视频 问题:发送消息后,ReceiveCallBack(IAsyncResult ar)方法里的 readCount = socket.EndReceive(ar);//调用这个函数来结束本次接收并返
如果让A物体碰到B物体就改变前进方向
我想问一下,unity3d能做出能在安卓系统或者在iOS系统上能运行的游戏吗? 做手游的话能用c#吗? 谢谢大家
记住我那个已经打钩了啊
昨天偶尔做出这个黑客帝国数字矩阵特效,特来与大家分享做法
求问5.5.0的地形和水,天空的素材包在哪里?怎么都找不到。这个后面应该怎么弄?
应该要怎么做呢?目前是买了5.x和宣雨松的unity3D游戏开发这两本书,打算寒假一边啃书一遍网上找些视频
今天发现可以用 get和set 直接限制数值结构 ,实验了下,发现在 unity里不好用 public int name{ se
自学Unity3D引擎20天左右,在学习《微信打飞机》游戏时脑洞大开,自己做了一个类似的游戏,将原版资源自行改造了一下,将敌人由3种增加到了11种,增加
这样做可以吗
请问一下,怎样才能让position里面的m_IsOverPoint变量在面板上显示出来,现在这样写在面板上是这样的
NGUI 建议的默认字体是28, 我盐酸的时候看着像蚊子,完全看不清楚 像这样的游戏 他字体大小怎么测量
小白求大神解答啊啊啊啊
本人计算机专业,用unity做了毕设.求一篇unity相关的英文文献以及翻译~~~~急求!!!!!!!
unity 固定关节不牢固 ,轮子用固定关节连接起来的 在重力的作用下会弯曲,像弹簧一样软巴巴,这个怎
笔者最近因为项目需要,研究,类似fps游戏,边跑边打。 但是,发现,处理过后,始终达不到源文件的效
你可能感兴趣的吧...
发贴红色标题
签到六倍经验
兑换本吧会员
赠送补签卡1张,获得
助攻总额: 43W
贴吧热议榜
使用签名档&关于使用Unity为Gear&VR开发的Mobile&SDK问题
有开发者问,
“我已经好几个月没有开发Gear
VR应用了。几个月前,我用的是Oculus Mobile SDK和Unity4.6。
但是最新的情况是,我看到有Unity
5.1.2f1,而这个版本中Unity已经原生支持Gear VR,可以参考这里:
但我看到Oculus仍然在更新自己的SDK,参考这里:
于是问题来了:
开发者在实际开发的时候,到底该怎么选?应该混合使用吗?还是受选择其中的一种方法?官方能不能给个说法,哥已经完全糊涂了。"
官方的回答:
"如果你想使用Unity的内置VR支持,那么可以不需要任何其它文件。
不过如果你喜欢的话,可以考虑同时使用Oculus Unity
Utilities,其中提供了一些辅助类,比如OVRPlayerController,等等。
此外,你还可以考虑使用历史遗留的Oculus
Integration(但是要关闭Unity的原生支持),这种做法对项目还在开发中的情况比较合适,或是因为种种原因无法支持Unity内置的VR支持。"
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 unity3d小游戏 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信