Unity3D学习笔记——Android重力感应控制小球
一:准备资源
两张贴图:地图和小球贴图。
二:导入资源
在Assets下建立resources文件夹,然后将贴图导入。


三:建立场景游戏对象
1.建立灯光:


2.创建一个相机,配置默认。

3.建立一个Plane用来表示地面,将导入的地面图片付给Plane。


4:建立一个小球,并为其添加一个刚体,因为之后会通过重力感应为小球添加外部作用力,所以需要有刚体组件。


三:创建脚本
1.控制小球运动的脚本:首先要将手机的重力感应控件坐标转换为游戏世界的空间坐标。

建立一个C#脚本:

using UnityEngine;
using System.Collections; public class BallControl : MonoBehaviour
{
//移动速度
public int speed = ; void Update ()
{
//建立一个向量变量,将手机向量坐标改变为游戏向量坐标
Vector3 dir = Vector3.zero;
dir.z = Input.acceleration.y;
dir.x = Input.acceleration.x; //钳制加速度向量到单位球
if (dir.sqrMagnitude > )
dir.Normalize (); //使它每秒移动10米,而不是每帧10米
dir *= Time.deltaTime; // Move object 移动物体
rigidbody.AddForce (dir * speed, ForceMode.Force);
}
}
将这个脚本附加给小球:

Speed:小球运动的速度。
2.控制相机脚本,使相机跟随小球移动
using UnityEngine;
using System.Collections; public class CameraControl : MonoBehaviour
{
public Transform target;
public int relativeHeight = ;
public int zDistance = ;
public int dampSpeed = ; // Update is called once per frame
void Update ()
{
Vector3 newPos = target.position + new Vector3 (, relativeHeight, -zDistance);
transform.position = Vector3.Lerp (transform.position, newPos, Time.deltaTime * dampSpeed);
}
}
然后将这个脚本附加给相机:

Target:指向小球物体。
Relative Height:相机的相对高度
ZDistace:Z轴相对的距离。
Damp Speed:物体移动的时候,相机跟随物体的速度。
最后运行如下:
源码及APK下载:http://download.csdn.net/detail/as294985925/7053823
Unity3D学习笔记——Android重力感应控制小球的更多相关文章
- Unity3D学习笔记——Android远程真机调试(Unity Remote)
前言:当使用Unity开发移动端的游戏,特别是使用到手机的传感器,如重力感应等,调试的时候,很麻烦, 因为每次都需要编译成APK后安装到手机中测试,而Unity Remote便能很好的解决这个问题,U ...
- 基于野火M3开发板(STM32F103VET6)的迷宫小球(重力感应控制)游戏开发
2013-03-03 这是研一上学期<实时嵌入式系统实验>课程的大作业,是利用野火板的资源,加上一个AHRS(Attitude and Heading Reference System,姿 ...
- unity3d学习笔记(一) 第一人称视角实现和倒计时实现
unity3d学习笔记(一) 第一人称视角实现和倒计时实现 1. 第一人称视角 (1)让mainCamera和player(视角对象)同步在一起 因为我们的player是生成的,所以不能把mainCa ...
- Unity3D学习笔记3——Unity Shader的初步使用
目录 1. 概述 2. 详论 2.1. 创建材质 2.2. 着色器 2.2.1. 名称 2.2.2. 属性 2.2.3. SubShader 2.2.3.1. 标签(Tags) 2.2.3.2. 渲染 ...
- Unity3D学习笔记12——渲染纹理
目录 1. 概述 2. 详论 3. 问题 1. 概述 在文章<Unity3D学习笔记11--后处理>中论述了后处理是帧缓存(Framebuffer)技术实现之一:而另外一个帧缓存技术实现就 ...
- Android动画学习笔记-Android Animation
Android动画学习笔记-Android Animation 3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...
- Android重力感应开发
http://blog.csdn.net/mad1989/article/details/20848181 一.手机中常用的传感器 在Android2.3 gingerbread系统中,google提 ...
- [转]Android重力感应开发
http://blog.csdn.net/mad1989/article/details/20848181 一.手机中常用的传感器 在Android2.3 gingerbread系统中,google提 ...
- .NET MVC 学习笔记(七)— 控制input控件
.NET MVC 学习笔记(七)— 控制input控件 画面中有时候需要输入数字,这时就需要控制input的输入.以下为保留两位有效数字. /* * 初始化数字输入 */ function initD ...
随机推荐
- iOS:socket通信
ios开发 Socket通信 Socket描述了一个IP.端口对.它简化了程序员的操作,知道对方的IP以及PORT就可以给对方发送消息,再由服务器端来处理发送的这些消息.所以,Socket一定包含了通 ...
- IOS Vsync
vsync count Don't Sync Application.targetFrameRate 设置FPS上限 Every Second VBlank 30 Every VBlank 60 An ...
- 在hadoop作业中自定义分区和归约
当遇到有特殊的业务需求时,需要对hadoop的作业进行分区处理 那么我们可以通过自定义的分区类来实现 还是通过单词计数的例子,JMapper和JReducer的代码不变,只是在JSubmit中改变了设 ...
- Python中lambda使用简易教程
例如: f = lambda x: x+x #lambda后的x为参数 print f(3) >>6 等价于 def func(x): return x+x print func(3) 与 ...
- eclipse 配置maven 项目tomcat 运行
- 转:TensorFlow和Caffe、MXNet、Keras等其他深度学习框架的对比
http://geek.csdn.net/news/detail/138968 Google近日发布了TensorFlow 1.0候选版,这第一个稳定版将是深度学习框架发展中的里程碑的一步.自Tens ...
- JSONObject和JSONArray(json-lib-2.4)的基本用法
json-lib-2.4是一个用于JSON和java对象间转换的第三方包,其jar和依赖包下载地址在:https://files.cnblogs.com/files/xiandedanteng/jso ...
- 倍福TwinCAT(贝福Beckhoff)应用教程13.3 TwinCAT控制松下伺服 NC配合完整上位
这是TwinCAT教程的最后一节,简单讲述了以C#为上位,通过ADS控制TwinCAT下位,实现完整控制两轴模组的功能.可以发现,在上位层已经没有了运动控制的代码,不管是要执行哪种运动,无非是把目标参 ...
- 个人或者企业怎么进行app开发?开发一款APP应用大概须要多少钱?
App开发.是指专注于手机应用软件开发与服务. App是application的缩写,通常专指手机上的应用软件,或称手机client.另外眼下有非常多在线app开发平台.当然移动互联网时代是全民的移动 ...
- 微信小程序 解决 数字粗细不一 的bug
1.bug 2.原因解析 微信小程序本身字体问题 3.解决方案 设置字体 font-family: Microsoft YaHei; .