1-1 Unity零基础入门 打砖块

任务1:素材源码

www.sikiedu.com/course/77

任务2:Unity介绍

王者荣耀,球球大作战等游戏都是用unity开发的

跨平台的游戏引擎

就业方向:游戏开发,VR/AR开发

任务3:Unity的安装

推荐在官网最下方下载补丁版本

任务4:Unity破解

学习时可以使用破解版:http://www.ceeger.com/forum/read.php?tid=23396&page=1

pan.baidu.com/s/1eStOgAe,ccfq 下载破解补丁

设置好路径和Version后点击Create License;点击Patch替换即可。

任务5:创建Unity工程

BreakTheBricks

Unity工程目录简介:

Assets:模型/图片/声音/脚本资源

Library:库/shader/内置脚本等

ProjectSettings:工程相关的设置

Temp:临时文件存储,关闭unity后临时文件会被删除

任务6:Unity面板

Project下文件与文件夹Assets中的文件是一一对应的

Hierarchy:显示当前场景下的所有GameObject

任务7:什么是场景Scene

新建场景:File->New Scene / Ctrl+n

保存场景:在Assets目录下创建Scenes文件夹并放入;Ctrl+s

命名规则:NameScene.unity

任务8:怎么操作视野

鼠标右键拖拽:围绕自身进行旋转

alt+鼠标左键拖拽:围绕某一点/聚焦的GameObject进行旋转

鼠标滚轮:缩放

按住鼠标滚轮拖拽:水平平移

鼠标在Hierarchy中双击某GameObject / 选中某GameObject后按F:聚焦

视图的选择:Perspective/ Orthographic

任务9:游戏物体的基本操作

Camera:相机图标的缩小:Gizmos中调节Icons的大小

左上角五个小工具:

第一个可以按住鼠标滚轮代替

第五个是用于UI设计的

分别对应快捷方式QWERT

左边是Pivot/Center的切换:

每个GameObject都有一个在世界中表达位置的点

Center为视觉上计算出来的中心点

Pivot为美工在设计的时候制定的中心点

左边是Local/Global的切换:

Local为局部坐标系

Global为世界坐标系

任务10:游戏物体和组件的关系

每个GameObject由若干个组件Component定义

任务11:打砖块案例的场景

发射子弹打一堵墙

1. Ctrl+n 新建Main.unity的Scene

2. 需要一个地面 Plane,rename为Ground->Position(0,0,0),scale变大一些

Position以米为单位;Rotation以度°为单位

3. 把背景的天空去掉,Camera->Clear Flags->Solid Color并调成灰色 

4. 修改地面颜色,修改material贴图

新建文件夹Materials

Create->Material->rename Ground

Albedo:修改颜色或指定贴图

Metailic:金属感(0-1金属)

Smoothness:光滑度(0不反光-1)

5. 将该material赋值给ground

直接将material拖到Scene中的ground上

或在Ground的Inspector->Mesh Renderer->Materials->element中赋值

任务12:创建砖块和砖块的Prefab

创建一个砖块:Cube->reset Transform->y:0.5

添加Rigidbody组件->勾选Use Gravity

将该brick创建成一个Prefab:

创建文件夹Prefabs->将Hierarchy中的brick拖动到Project中的文件夹下即可创建Prefabs

任务13:创建墙和子弹的Prefab

1. 创建多个砖块砌成的墙:

Ctrl+d->按住Ctrl进行移动(以一米为单位进行移动)

创建一个empty的GameObject,用来作为所有砖块的parent,named as Wall

2. 创建子弹:从camera的位置开始发射

创建子弹:Sphere->scale (0.5,0.5,0.5)

制作成Prefeb(因为之后要通过代码实例化)

任务14:创建第一个C#脚本

1. 创建文件夹Scripts

2. 在Main Camera上add component script Shoot,创建名为Shoot的c#脚本

使用VS 2017打开c#脚本:Edit->Preference->External Tools->External Script Editor

任务15:脚本的基本结构

void Start() {}  // 初始化时执行 Used for initialization

void Update() {}  // called once per frame

任务16:控制子弹的生成

在Update中实例化Prefab:

if(Input.GetMouseButtonDown(0))
{
GameObject.Instantiate(bullet, transform.position, transform.rotation);
}

0表示为鼠标左键

在Update()中一直检测是否有鼠标左键的操作

任务17:给子弹施加初速度

在bullet的prefab上添加Rigidbody

if(Input.GetMouseButtonDown())
{
GameObject bulletClone = GameObject.Instantiate(bullet,
transform.position, transform.rotation);
Rigidbody rgd = bulletClone.GetComponent<Rigidbody>();
rgd.velocity = transform.forward * speed; // direction * speed
}

得到bullet的Rigidbody组件,设置其velocity

speed在最开始的时候设置为 public int speed; 并设置为20

运行游戏发现环境偏白,在Directional Light中将Light组件的Intensity改为0.7(环境光)

任务18:控制相机的左右移动

现在已经实现了子弹的发射和打砖块的功能,但是如果想要移动视角的位置在不同地方发射子弹呢?

1. 不同脚本负责不同功能,Movement.cs用于控制相机的移动,attached to Main Camera

2. speed当前设置为3

// 检测水平方向键,如果按下会返回对应的数值
float h = Input.GetAxis("Horizontal");
// 根据h的值来移动物体: h的正负决定着Translate的方向
// 没有乘以Time.deltaTime的时候表示每帧移动一米, 一秒大概有60帧(fps)
// 乘以Time.deltaTime表示每一帧的时间间隔,如一秒50帧,则deltaTime为1/50秒
// 变为一米每秒的速度
transform.Translate(new Vector3(h, , ) * Time.deltaTime * speed);

任务19:课程结束

控制相机的上下移动

在Movement.cs脚本中

float v = Input.GetAxis("Vertical");
transform.Translate(new Vector3(, v, ) * Time.deltaTime * speed);

游戏运行画面

Siki_Unity_1-1_Unity零基础入门_打砖块的更多相关文章

  1. Siki_Unity_1-3_Unity零基础入门_古迹探险

    1-3 Unity零基础入门 古迹探险 任务1/2:资料下载 链接:https://pan.baidu.com/s/1jHVymNk 密码:rbob 任务3:工程的创建和打开 Project:古迹探险 ...

  2. [转]小D课堂 - 零基础入门SpringBoot2.X到实战_汇总

    原文地址:https://www.cnblogs.com/wangjunwei/p/11392825.html 第1节零基础快速入门SpringBoot2.0 小D课堂 - 零基础入门SpringBo ...

  3. 小D课堂 - 零基础入门SpringBoot2.X到实战_汇总

    第1节零基础快速入门SpringBoot2.0 小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_1.SpringBoot2.x课程介绍和高手系 ...

  4. 从零基础入门JavaScript(1)

    从零基础入门JavaScript(1) 1.1  Javascript的简史 1995年的时候   由网景公司开发的,当时的名字叫livescript    为了推广自己的livescript,搭了j ...

  5. 【JAVA零基础入门系列】Day4 变量与常量

    这一篇主要讲解Java中的变量,什么是变量,变量的作用以及如何声明,使用变量. 那么什么是变量?对于初学者而言,可以将变量理解为盒子,这些盒子可以用来存放数据,不同类型的数据需要放在对应类型的盒子里. ...

  6. 零基础入门Python实战:四周实现爬虫网站 Django项目视频教程

    点击了解更多Python课程>>> 零基础入门Python实战:四周实现爬虫网站 Django项目视频教程 适用人群: 即将毕业的大学生,工资低工作重的白领,渴望崭露头角的职场新人, ...

  7. Python3零基础入门学习视频+源码+课件+习题-小甲鱼

    目录 1. 介绍 2. 目录 3. 下载地址 1. 介绍 适用人群 完全零基础入门,不需要任何前置知识. 课程概述 本系列教程面向零基础的同学,是一个深入浅出,通俗易懂的Python3视频教程. 前半 ...

  8. 函数:我的地盘听我的 - 零基础入门学习Python019

    函数:我的地盘听我的 让编程改变世界 Change the world by program 函数与过程 在小甲鱼另一个实践性超强的编程视频教学<零基础入门学习Delphi>中,我们谈到了 ...

  9. Cloudera Manager、CDH零基础入门、线路指导 http://www.aboutyun.com/thread-9219-1-1.html (出处: about云开发)

    Cloudera Manager.CDH零基础入门.线路指导http://www.aboutyun.com/thread-9219-1-1.html(出处: about云开发) 问题导读:1.什么是c ...

随机推荐

  1. 关于iOS 3D touch 指纹验证的随笔

    file:///Users/OWen/Desktop/3DTouch.png 随着iOS系统不断的更新迭代,苹果总会推出一些新的功能,今天就研究了一下iOS8之后推出的指纹验证的功能,然后写了一个小d ...

  2. java根据数据库自动生成代码

    出现这个已经创建成功 出现这个情况,没有使用DBUtil,引入即可 已经创建完成 代码下载:https://github.com/weibanggang/tool 项目实例下载:https://pan ...

  3. CodeForces - 616C(很有意思的bfs,set,map的使用)

    传送门: http://codeforces.com/problemset/problem/616/C C. The Labyrinth time limit per test 1 second me ...

  4. 打印iframe某区域

    <a href="#" onClick="parent.iframe名字.focus();window.print();">打印</a>

  5. 『ACM C++』 PTA 天梯赛练习集L1 | 050-51

    加油加油,努力刷题 ------------------------------------------------L1-050------------------------------------ ...

  6. 同步请求和异步请求的区别(理解ajax用)

    同步请求:发送方发送数据包后,等待接收方发回响应之后,才能发送下一个数据包的通信方式. 异步请求:发送方发送数据包后,不用等待接收方发回响应,就可以发送下一个数据包的通信方式. 同步通信:要求通信双方 ...

  7. thinkphp中的大字母的意思

    ThinkPHP 单字母函数 A() 内部实例化控制器 D() 实例化自定义模型类 M() 实例化一个基础模型类 R() 调用某个控制器的操作方法 L() 启用多语言的情况下,设置和获取当前的语言定义 ...

  8. linux操作之软件安装(一)

    rpm 包安装 RedHat Package Manager的缩写 , linux 的软件包可能存在依赖关系,比如某某依赖某某才能使用. 挂载一个光盘 mount -t auto /dev/cdrom ...

  9. VMWARE虚拟机中CentOs7网络连接

    1.选择网络连接模式 这里选择NAT模式 2.查看虚拟机逻辑地址段 编辑---->虚拟网络编辑器 这里显示的是192.168.40.0 我们本机占用了192.168.40.1,网关是192.16 ...

  10. 一、linux基本操作

    1.linux界面的切换 DOS界面终端打开:Ctrl+Alt+F1  /F2/F3   退出:Ctrl+Alt+F7 终端的打开与退出 打开:Ctrl+Alt+t   退出:Ctrl+d 2.第一次 ...