unity 手机重力迷宫(二)
二、创建代码
1、创建play代码
play代码用于游戏的底层逻辑和判断游戏是否满足胜利和失败条件,并
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class paly : MonoBehaviour
{public float speed = 10;public static bool isExit = false;public static bool isover = false;void Update(){电脑测试期间使用(手机测试期间抛弃)由于测试应用随时打包费时费力所以暂且使用unity进行测试,大致无误后再进行打包测试float x = Input.GetAxis("Horizontal");//使用unity内置环境float y = Input.GetAxis("Vertical");transform.Translate(new Vector3(x,0,y)*Time.deltaTime*speed);//用来控制小球移动}private void OnCollisionExit(Collision collision)//两物体离开时触发{if (collision.collider.tag == "poin")//获取tag属性,通过标签来判断物体是否离开{isExit = true;//用于GameManager内代码进行判断}}private void OnCollisionEnter(Collision collision)//两物体接触时触发{if (collision.collider.tag=="overPoint")//获取tag属性,通过标签来判断物体是否接触{isover = true;//用于GameManager内代码进行判断}}
}
2、创建gravity代码
gravity代码用于获取手机的重力感应,并显示游戏胜利和游戏失败的UI界面
public class gravity : MonoBehaviour
{public static bool isExit = false;public static bool isover = false;public float speed = 12f;void FixedUpdate(){Vector3 dir = Vector3.zero;//让dir在世界位置归0dir.x = Input.acceleration.x;//给dir赋值dir.z = Input.acceleration.y;//同上if (dir.sqrMagnitude > 1)//向量规范化{dir.Normalize(); //把一个向量归一化向量,归一化就是 把原来某个向量变成 x,y,z平方之和的平方根为1,也就是新向量长度为1}dir *= Time.deltaTime;//让dir每帧运行的距离this.transform.GetComponent<Rigidbody>().AddForce(dir * speed, ForceMode.Impulse);//物体旋转}private void OnCollisionExit(Collision collision)//同play代码{if (collision.collider.tag == "startPoint"){isExit = true;}}private void OnCollisionEnter(Collision collision){if (collision.collider.tag == "overPoint"){isover = true;}}
}
3、创建GameManager代码
GameManager代码用于整个程序的计时功能和按钮功能的实现也是整个游戏最重要的部分
public class GameManager : MonoBehaviour
{public Button quit;//退出按钮public Button restart;//重新开始按钮public Text wintext;//胜利时出现的文本public Text losetext;//失败时出现的文本public bool a = true;//计时器的开关public object startobject;//控制重新开始按钮public object overobject;//控制退出按钮private float CountDownTime = 59f;//计时器的时长private float GameTime;//计时器输出时的变量private float timer = 0;//用于判断计时器可否运行public Text GameCountTimeText;public static float timeScale { get; set; }//世界的流逝的尺度,利用这个可以达到慢动作的效果void Start(){GameTime = CountDownTime;//时间的数字赋值给变量,用被赋值变量来进行判断}// Update is called once per framevoid Update(){int M = (int)(GameTime / 60);float S = GameTime % 60;if (paly.isExit == true)//做下开始游戏的判断{timer += Time.deltaTime;//timer加上世界时间if (timer >= 1f)//计时器运行条件{timer = 0;//为timer重新赋值GameTime--;GameCountTimeText.text = M + ":" + string.Format("{0:00}", S);if (S <= 0)//结束游戏失败条件{Time.timeScale = 0;//世界时间变为0以此来停止游戏(暂停游戏同样代码也可以)losetext.gameObject.SetActive(true);//游戏失败结束显示文本框内容}}}if (paly.isover == true)//用两个布尔值来判断代码是否成立{Time.timeScale = 0;//结束游戏胜利wintext.gameObject.SetActive(true);//游戏胜利则显示控件文字}}public void objquit() {Application.Quit();//退出整个程序}public void Chonxin() {SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);//游戏场景重启,重新加载场景losetext.gameObject.SetActive(false);//让游戏失败的控件隐藏wintext.gameObject.SetActive(false);//让游戏胜利的控件隐藏paly.isover = false;//让paly的值恢复初始值Time.timeScale = 1;//世界时间继续执行}
}
若按照我发布的步骤进行操作则可以实现本游戏
代码写的可能不是很好,如果大神有更好的代码欢迎提出
unity 手机重力迷宫(二)相关推荐
- unity 手机重力迷宫(一)
一.创建场景 1.创建地面 首先创建一个地面在unity的Hierarchy中单机右键选择3D Object选项卡下的plan并将其命名为plan 由于相机的默认照射方式为透视(perspective ...
- unity 手机重力迷宫(三)
三.创建UI 1.创建Text文本框 在unity的Hierarchy中单机右键选择UI选项卡中的Text,并将Text的Text属性更改为"时间". 注:在UI中创建一个Text ...
- unity 手机重力迷宫(四)
四.挂载代码及创建主角 1.创建主角(球体) 选择3D Object选项卡并选择Sphere,将其命名为play.将其放在场景的起点位置, 并为其添加Rigibody(碰撞体)属性和Sphere Co ...
- Unity之手机重力感应
做重力感应的朋友兴许能用上,我这里写上来用于有时候自己忘了还能看一下,因为我不认为学东西就能一辈子都记得很牢,所以有时候还是为自己行一下方便,给自己写博客,哈哈. 做Unity的重力感应游戏的时候,我 ...
- Unity游戏项目_3D迷宫(游戏源码免费)
目录 一.效果图 二.讲解 三.资源分享 总结 一.效果图 游戏开始界面: 游戏画面: 游戏结束界面: 二.讲解 主要代码如下: 1.链接代码 using System.Collections; us ...
- android手机重力感应例子
手机重力感应实现简单介绍 现在有很多游戏是通过摇晃手机实现的,比如赛车游戏 摇骰子游戏 迷宫游戏 等等 . 今天我用简单的代码为大家介绍一下android 下重力感应的实现方式 下面是一个模拟器的屏幕 ...
- Android 手机重力感应实现简单介绍
手机重力感应实现简单介绍 现在有很多游戏是通过摇晃手机实现的,比如赛车游戏 摇骰子游戏 迷宫游戏 等等 . 今天我用简单的代码为大家介绍一下android 下重力感应的实现方式 ...
- [Unity 3D] 重力感应与罗盘
原址:http://blog.csdn.net/lijing_hi/article/details/7252954 [Unity 3D] 重力感应与罗盘(一) iPad 的玩家大概都用过 StarWa ...
- Unity手机游戏开发:从搭建到发布上线全流程实战
前言: 技术书籍是学习技术知识的重要资源之一.读技术书可以帮助我们学习新技能和知识,技术书籍提供了可靠的.全面的信息,帮助我们快速学习新技能和知识.同时技术书籍有助于保持你的竞争力,因为它们提供了最新 ...
最新文章
- Oracle+Python适合 Oracle DBA 使用的 Python
- yii2.0验签组件(jwt)
- 学完可以解决90%以上的数据分析问题-利用python进行数据分析第二版(代码和中文笔记)...
- 华大 MCU 之七 DMA 导致 SPI 异常停止的原因分析、DMA 配置的那些坑
- 可被三整除的最大和—leetcode1262
- 【报名中】数据库大咖们与你聊聊云上实践的那些事儿
- linux驱动开发音频设备驱动,linux驱动开发—基于Device tree机制的驱动编写
- ConcurrentHashMapK, V的实现
- RabbitMQ服务的安装与使用
- 奥维互动地图如何删除标签_奥维互动地图浏览器标签附件添加设置方法
- 方差分析软件_重复测量方差分析的操作教程及结果解读
- Eclipse下载安装配置测试(超详细)
- 【Spring练习】Spring+SpringMVC+JdbcTemplate简单练习用户管理
- dwz jui 修改html元素,js框架 dwz jui 的日历组件 添加自定义事件
- 算法设计 L型组件填图问题
- 怎么给手机照片添加文字?没想到方法这么容易,1分钟就能学会
- 广州布料批发市场_广州布料批发市场介绍_广州布料批发市场分析
- Vue前端开发——微信扫码支付
- Java读写json
- 14、系统架构师指南 - 软件项目角色指南系列文章