zoukankan      html  css  js  c++  java
  • Siki_Unity_1-1_Unity零基础入门_打砖块

    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(0))
    {
        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, 0, 0) * Time.deltaTime * speed);

    任务19:课程结束

    控制相机的上下移动

    在Movement.cs脚本中

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

    游戏运行画面

     

     

     

     

  • 相关阅读:
    firstResponder
    形而上学
    du -h
    数据本地存贮与数据结构(对象)
    RFC
    oc语言源代码
    HTTP1.1协议中文版-RFC2616
    如何提高团队协作的效率
    iOS应用架构谈 开篇
    nginx版本如何选择?
  • 原文地址:https://www.cnblogs.com/FudgeBear/p/8006781.html
Copyright © 2011-2022 走看看