Unity官方实例教程 Roll-a-Ball
与unity的transform组件相处的挺久了,最近项目不太忙,决定好好打下unity的基础。那么从Roll-a-Ball这个简单游戏开始吧!
1.先创建一个球体游戏对象,改名为Player,transform值y=0.5,加上刚体组件,具体如下图:

其中脚本PlayerController.cs代码如下:
using UnityEngine;
using UnityEngine.UI; public class PlayerController : MonoBehaviour
{ public float speed;
public Text countText;
private float count; // Use this for initialization
void Start ()
{
count = 0;
setCountText();
} // Update is called once per frame
void FixedUpdate ()
{ float moveH = Input.GetAxis("Horizontal");
float moveV = Input.GetAxis("Vertical");
Vector3 move = new Vector3(moveH,0.0f,moveV);
GetComponent<Rigidbody>().AddForce(move * speed * Time.deltaTime); } void OnTriggerEnter(Collider other)
{
Debug.Log("碰撞");
if (other.gameObject.tag == "PickUp")
{
other.gameObject.SetActive(false);
count++;
setCountText();
}
} private void setCountText()
{
countText.text = "Count:" + count;
}
}
2.创建一个平面,改名为Ground,具体如下图:

3.摄像机,让相机简单跟随游戏对象,为Main Camera挂一个脚本CameraController,代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class CameraController : MonoBehaviour
{ public GameObject player; private Vector3 offset; // Use this for initialization
void Start ()
{
offset = transform.position;
} // Update is called once per frame
void LateUpdate ()
{
transform.position = offset + player.transform.position;
}
}
4.创建被抓取的立方体,通过预制体来做,先创建一个立方体,transform中rotation三个值都设为45,挂上脚本Rotator,代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class Rotator : MonoBehaviour { // Use this for initialization
void Start () { } // Update is called once per frame
void Update () {
transform.Rotate(new Vector3(15,30,45) * Time.deltaTime);
}
}
然后将这个cube拖到Assets下面预制体文件夹中,再通过这个预制体来创建多个。
6.再简单的添加一个计分板,create-UI-Text,并拖拽到Player的countText参数下,调整合适位置
Ground加墙什么的可以自由发挥,都比较简单。。。 比较重要的是理解Rigidbody,Collider,Is Trigger这三个东西,具体看这个总结:http://blog.csdn.net/monzart7an/article/details/22739421
Unity官方实例教程 Roll-a-Ball的更多相关文章
- 对《[Unity官方实例教程 秘密行动] Unity官方教程《秘密行动》(十二) 角色移动》的一些笔记和个人补充,解决角色在地形上移动时穿透问题。
这里素材全是网上找的. 教程看这里: [Unity官方实例教程 秘密行动] Unity官方教程<秘密行动>(九) 角色初始设定 一.模型设置: 1.首先设置模型的动作无限循环. 不设置的话 ...
- 源于《Unity官方实例教程 “Space Shooter”》思路分析及相应扩展
教程来源于:Unity官方实例教程 Space Shooter(一)-(五) http://www.jianshu.com/p/8cc3a2109d3b 一.经验总结 教程中步骤清晰,并且 ...
- Unity-2017.3官方实例教程Space-Shooter(二)
由于初学Unity,写下此文作为笔记,文中难免会有疏漏,不当之处还望指正. Unity-2017.3官方实例教程Space-Shooter(一) 章节列表: 一.创建小行星Prefab 二.创建敌机和 ...
- Unity-2017.3官方实例教程Space-Shooter(一)
由于初学Unity,写下此文作为笔记,文中难免会有疏漏,不当之处还望指正. Unity-2017.3官方实例教程Space-Shooter(二) 章节列表: 一.从Asset Store中下载资源并导 ...
- Unity-2017.2官方实例教程Roll-a-ball(二)
声明: 本文系转载,由于Unity版本不同,文中有一些小的改动,原文地址:http://www.jianshu.com/p/97b630a23234 上一节Unity-2017.2官方实例教程Roll ...
- Unity-2017.2官方实例教程Roll-a-ball(一)
声明: 本文系转载,由于Unity版本不同,文中有一些小的改动,原文地址:http://www.jianshu.com/p/6e4b0435e30e Unity-2017.2官方实例教程Roll-a- ...
- Web 开发中应用 HTML5 技术的10个实例教程
HTML5 作为下一代网站开发技术,无论你是一个 Web 开发人员或者想探索新的平台的游戏开发者,都值得去研究.借助尖端功能,技术和 API,HTML5 允许你创建响应性.创新性.互动性以及令人惊叹的 ...
- jQuery官方基础教程笔记(转载)
本文转载于阮一峰的博文,内容基础,结构清晰,是jquery入门不可多得的资料,非常好,赞一个. 阮一峰:jQuery官方基础教程笔记 jQuery是目前使用最广泛的javascript函数库. 据统计 ...
- Unity5.3官方VR教程-系列1
如果你不是VR游戏或应用的开发者,可以选择无视下面的内容,这不是给普通用户看的~ 如果你之前曾经为Oculus Rift DK2或者Gear VR开发过,那么心里面一定曾经有千万个草泥马来回奔跑过.虽 ...
随机推荐
- BeanUtils解决日期问题
ConvertUtils.register(new DateLocaleConverter(), Date.class); BeanUtils.populate(user, request.getPa ...
- struts2封装请求参数
利用struts2框架进行将页面请求的参数封装有三种方法 第一种(不推荐) 就是动作类和bean中结合在一起,这样方法比较简单,但是很混乱. 代码: package com.example.actio ...
- 利用python进行简单的图像处理:包括打开,显示以及保存图像
利用python进行简单的图像处理:包括打开,显示以及保存图像 利用PIL处理 PIL(python image library) 是python用于图片处理的package.但目前这个package ...
- Java Lock & Condition
/* jdk1.5以后将同步和锁封装成了对象. 并将操作锁的隐式方式定义到了该对象中, 将隐式动作变成了显示动作. Lock接口: 出现替代了同步代码块或者同步函数.将同步的隐式锁操作变成现实锁操作. ...
- MongoDB安装笔记
2017年11月17日,在Windows Service 2008R2上成功安装MongoDB. 版本:mongodb-win32-x86_64-2008plus-ssl-3.4.6-signed.m ...
- 用css 实现凹陷的线条
box-shadow: 0 1px 0 rgba(255,255,255,0.2) inset,0 -1px 0 rgba(0,0,0,.2) inset; 因为颜色为透明颜色,所以颜色是什么样的,不 ...
- Beta阶段团队项目开发篇章2
例会时间: 2016.12.4 例会照片 个人工作 上阶段任务验收: 组员任务都已完成. 任务分配 组员 任务内容 韩慧敏 对调查问卷的结果进行分析和总结,确定Beta阶段各任务的优先级,撰写相关博客 ...
- php 的stdClass类的简单实用
<?php $person = new stdClass(); $person->name = "yu"; $person->sex = "man&qu ...
- mysql 简单sql语句
1.修改数据库的编码 alter database test character set utf8 2.创建新表 : create table text4(id int( ...
- how to get iframe dom in js
how to get iframe dom in js https://stackoverflow.com/questions/3999101/get-iframes-document-from-ja ...