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 ...
随机推荐
- Thunderbird使用发邮件模板
Thunderbird的强大之处是可以使用多种第三方插件,其中有个插件SmartTemplate4,是用来设置Thunderbird发件模板的. 然后,模板设置内容如下: <p>:< ...
- centos selinux学习记录
SELinux 全称 Security Enhanced Linux (安全强化 Linux),是 MAC (Mandatory Access Control,强制访问控制系统)的一个实现,目的在于明 ...
- cpp面向对象编程
如下图,先建好文件, 这里用的是Visual studio 2010 当然也可以用eclipse for cpp,如下图: AbstractShape.h #ifndef ABSTRACTSHAPE_ ...
- List<实体>与List<String>数据互转
1.List<实体>数据: public List<Device> queryOSDevice(String cpu,String ip,String name){ Strin ...
- Laravel 5系列教程四:数据库和Eloquent
免费视频教程地址https://laravist.com/series/laravel-5-basic 上一篇写了一些Laravel Blade的基本用法和给视图传递变量的几种方式, 这一节我们来说说 ...
- non-compatible bean definition of same name and class
在整合struts2.1.6+spring2.5.6开发中,使用了注解和struts-convention来实现零配置管理.spring也使用注解annotation方式.现在的问题是:我在连个个不同 ...
- Node.js meitulu图片批量下载爬虫1.04版
//====================================================== // https://www.meitulu.com图片批量下载Node.js爬虫1. ...
- Win10 系统变成黑白屏幕了怎么办?
快捷键"windows徽标键+Ctrl+C"可以切换屏幕黑白了 这是win自带的一个"应用颜色筛选器", 桌面右键,选择个性化 点到背景页面,下拉,点击&q ...
- 在Ubuntu 12.04上配置iSCSI Target服务
今天自己按照网上搜来的教程自己在Ubuntu 12.04上配置了iSCSI Target服务,在这里简单地做个纪录.操作系统是全新安装的Ubuntu 12.04,配置一块500 GB的SATA笔记 ...
- 循环List<Object>
List<Object> infoData=ArrayList<>(); for (int i = 0; i < infoData.size(); i++) { Obje ...