《Unity2018入门与实战》笔记(9 / 9):个人总结

个人总结

脚本语言学习的窍门

尽可能多读、多写、多说脚本语言!

Link

游戏制作步骤

设计游戏时一般会遵循5个步骤:

  1. 罗列出画面上所有的对象。
  2. 确定游戏对象运行需要哪些控制器脚本
  3. 确定自动生成游戏对象需要哪些生成器脚本
  4. 准备好用于更新UI的调度器脚本
  5. 思考脚本的编写流程(规划前三步脚本编写顺序,通常按原序即可)。

Link

移动对象的制作步骤

  1. 在场景视图中配置对象。
  2. 编写控制对象移动的脚本(控制器脚本)。
  3. 将创建好的脚本挂载到对象上。

Link

UI的制作方法

  1. 把UI组件配置到场景视图中。
  2. 编写用于切换UI的调度器脚本。
  3. 创建调度器(空)对象,
  4. 为调度器挂载编写好的脚本。

Link

访问非自身所在对象的组件

  1. 用Find方法找到该对象。
  2. 用GetComponent方法获取该对象挂载的组件。
  3. 访问该组件持有的数据。

例程:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;  // --->使用UI组件必须引入它<---

public class GameDirector : MonoBehaviour {

    GameObject car;
    GameObject flag;
    GameObject distance;

    void Start() {//1.
        //类似js的document.getElementById()
        this.car = GameObject.Find("car");
        this.flag = GameObject.Find("flag");
        this.distance = GameObject.Find("Distance");
    }

    void Update() {
        float length = this.flag.transform.position.x - this.car.transform.position.x;
        //2. & 3.
        this.distance.GetComponent<Text>().text = "距离目标" + length.ToString("F2") + "m";
    }
}

Link

添加音效的方法

  1. 将AudioSource组件挂载到需要播放音效的对象上。
  2. 给AudioSource组件设置音效。
  3. 找准播放音效的时机,并在脚本中调用Play方法。

Link

对象工厂的创建方法

  1. 通过已经存在的对象来生成Prefab。
  2. 创建生成器脚本。
  3. 在空对象上挂载生成器脚本。
  4. 将Prefab传给生成器脚本。

Link

outlet连接:将Prefab传给生成器脚本

  1. 要在脚本中创建“插口”,就必须在变量钱添加public关键字。
  2. 添加了public关键字的变量都会显示在检视器窗口中。
  3. 通过检视器窗口中的“插口”将希望带入的对象“插入”(拖曳操作)。

Link

关于Physics的心得

  • Physics是非常有用的工具,但不使用它也能开发游戏。

  • 建议在需要模拟物理规律运动的游戏或者需要进行碰撞检测的游戏中使用。

  • 要将玩家的操作反映到游戏中,需要编写脚本来实现。

  • 通过Physics使对象运动时,不能直接改变坐标,而应施加“力”。

Link

使用Physics完成碰撞检测的条件

  1. 参与碰撞检测的所有对象都必须挂载Collider组件。
  2. 在参与碰撞检测的对象中,至少有一方挂载了RigidBody组件。

Link

 一: 什么是ECS?       ECS是一种新的架构模式(当然是针对Unity本身来说),这是一个取代GameObject / Component 的模式。 其模式遵循组合优于继承原则,游戏内的每一个基本单元都是一个实体,每个实体又由一个或多个组件构成,每个组件仅仅包含代表其特性的数据(即在组件中没有任何方法)。系统便是来处理拥有一个或多个相同组件的实体集合的工具,其只拥有行为(即在系统中没有任何数据)。       ECS旨在比GameObject / MonoBehaviour更容易处理大量物体。ECS由于是面向数据的设计,所以很容易并行高速处理,以及与Unity开发的C#JobSystem/Burst Compiler一起工作,从而获取更高的项目运行性能。二:ECS总体发展历史       目前Unity公司由Mike Acton 大佬主持DOD(Data Oriented Design 面向数据设计)的全面改革与推进工作,目的是旨在进一步推进Unity系统本身与Unity项目的执行效率。    ECS总体发展:    A: 在Unity2018引入Entities之前,其实ECS框架早已经出现,但是ECS还是因为守望先锋采用了这个框架才被我们所熟知,后来Git上面出现了一个Entitas的插件可以直接用在Unity上面。Entitas-Unity(有多个语言的port版本,Entitas-Unity下统一称为Entitas) 是 Unity的一个ECS(Entity/Component/System)框架,是在github上面的一个开源项目。    B: 经过Unity公司的认可与改造,目前Unity2018.x 版本已经通过 Package Manager 提供了Unity版本的ECS插件,名称为:“Entities”。    C: Unity2019.x 版本,对“Entities”插件的API进行了进一步改造与完善,以更规范的API实现更加高效的与规范的编程模式。 三:ECS(一)轻松入门篇       本“ECS入门篇”旨在全面讲解ecs 的相关理论与简单Hello World 的编程模式,且通过Unity2018.x与Unity2019.x 两个不同API的编程模式,初步讲解ECS的编程规范与模式规范。        需要进一步学习ECS的小伙伴们,可以关注后续“ECS(二)小试牛刀”篇的进一步讲解。   《Unity ECS(二) 小试牛刀》https://edu.csdn.net/course/detail/27096 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值