626号试验品

  • 主页
  • 归档
所有文章 关于我

626号试验品

  • 主页
  • 归档

Homework and Exercise one

2018-03-24 阅读量 13

1.解释游戏对象(GameObjects)和资源(Assets)的区别与联系。


  • 游戏对象:出现在游戏的所有实体都可以叫做游戏对象,它像一个容器,不同的游戏对象是不同资源的一个集合。游戏对象一般有玩家、敌人、环境等几大类。我们在游戏中所见到的具体化了的游戏对象,一般都包含在一个虚拟的父类之中。
  • 资源:资源可以看作是有些对象的属性和特征,包括模型文件,图像文件,音频文件和脚本文件等。有些资源作为模板,可实例化成游戏中具体的对象。

2.下载几个游戏案例,分别总结资源、对象组织的结构(指资源的目录组织结构与游戏对象树的层次结构)


  • 资源的目录组织结构: 文件基本包括预设文件,场景文件,贴图文件,动态资源加载文件,音效文件,脚本代码文件等,并且还可以继续往下划分。
  • 游戏对象树的层次结构: 类似继承关系,一个虚拟的父类包含多个实例化之后的子类对象



3.编写一个代码,使用debug语句来验证MonoBehaviour基本行为或事件触发的条件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

public class IMGUI : MonoBehaviour {
void Awake() {
Debug.Log ("onAwake!");
}

void Start () {
Debug.Log ("onStart!");
}

void Update () {
Debug.Log ("onUpdate!");
}

void FixedUpdate() {
Debug.Log ("onFixedUpdate!");
}

void LateUpdate() {
Debug.Log ("onLateUpdate!");
}

void OnGUI() {
Debug.Log ("onGUI!");
}

void OnDisable() {
Debug.Log ("onDisable!");
}

void Enable() {
Debug.Log ("Enable!");
}
}





4.查找脚本手册,了解GameObject,Transform,Component对象

Table-Object


  • 分别翻译官方对三个对象的描述(Description)


    • GameObject:游戏对象是Unity中表示游戏角色,游戏道具和游戏场景的基本对象。他们自身无法完成许多功能,但是他们构成了那些给予他们实体功能的组件的容器。
    • Transform:转换组件决定了游戏场景中每个游戏对象的位置,旋转和缩放比例。每个游戏对象都有转换组件。
    • Component:组件是游戏中对象和行为的细节。它是每个游戏对象的功能部分。

  • 描述上图中 table对象(实体)的属性、table 的Transform的属性、 table的部件
  • <ul>
      <li>table对象的属性:table的对象是GameObject,第一个选择框是activeSelf属性,第二个选择框是Transform属性,第三个选择框是Mesh Filter筛网过滤器属性,第四个选择框是Box Collider属性,第五个选择框是Mesh Renderer筛网渲染器属性,第六个选择框是Default-Material属性。
      <li>Transform的属性:包括控制位置变化的Position属性、控制旋转变化的Rotation属性、控制实体大小的Scale属性
      <li>table的部件:Transform、Mesh Filter、Box Collider、Mesh Renderer等
    </ul>
    

  • 用UML图描述三者的关系
  • UML

5.整理相关学习资料,编写简单代码验证以下技术的实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//查找子对象
//通过对象名称查找
public static GameObject Find(string name)

//通过Tag查找单个对象
public static GameObject FindWithTag(string tag)

//通过Tag查找多个对象
public static GameObject[] FindGameObjectsWithTag(string tag)


//添加子对象
public static GameObect CreatePrimitive(PrimitiveTypetype)


//遍历对象树
foreach (Transform child in transform) {
Debug.Log(child.position);
}


//清除所有子对象
foreach (Transform child in transform) {
Destroy(child.gameObject);
}


6.资源预设(Prefabs)与对象克隆(clone)

  • 预设(Prefabs)有什么好处?

    • 预设类似于一个模板,通过预设可以创建相同属性的对象,这些对象和预设关联。对预设作出的任何更改都会应用在由它所生成的所有对象上
  • 预设与对象克隆(clone or copy or Instantiate of Unity Object)关系?

    • 对象克隆,就是复制了一个原本对象的实例,这两个实例之间相互独立,之间没有影响。
  • 制作 table 预制,写一段代码将 table 预制资源实例化成游戏对象

1
2
3
4
5
6
public class IMGUI : MonoBehaviour {

void Start () {
GameObject instance = (GameObject)Instantiate(MyTable, transform.position, transform.rotation);
}
}


7.尝试解释组合模式(Composite Pattern / 一种设计模式)。使用BroadcastMessage()方法

  • 解释:组合模式是将对象组合成树形结构,以表示“部分整体”的层次结构,并使得用户对单个对象和组合对象的使用具有一致性。

  • 父类对象

1
2
3
4
5
6
public class ParentBehaviourScript : MonoBehaviour {
// Use this for initialization
void Start () {
this.BroadcastMessage("Test");
}
}
  • 子类对象
1
2
3
4
5
public class ChildBehaviourScript : MonoBehaviour {
void Test() {
Debug.Log("Child Received");
}
}
赏

谢谢你请我吃糖果

本文总阅读量次
  • Unity3D
  • 游戏对象
  • 预制体
  • 资源
  • 组合模式

扫一扫,分享到微信

微信分享二维码
Like Issue Page
Error: Comments Not Initialized
Login with GitHub
Styling with Markdown is supported
Powered by Gitment
Contact Way
目录,不存在的…
© 2019 626号试验品
本站总访问量11025次 本站访客数9129人次
  • 所有文章
  • 关于我

tag:

  • 服务计算
  • Go语言
  • VScode
  • Centos
  • 虚拟机
  • 云服务
  • Swapi
  • docker
  • 个人报稿
  • CLI
  • selpg
  • web service
  • Unity3D
  • 广告牌
  • UI
  • ScollView
  • 编程实践
  • 动作分离
  • 订阅发布模式
  • 工厂模式
  • Agenda
  • 运动的实现
  • 天空盒
  • 地形
  • MVC结构
  • 游戏对象
  • 预制体
  • 资源
  • 组合模式
  • 井字棋

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • wepy框架使用过程问题记录

    2019-06-21

  • 16340314-多鱼 Final Report

    2019-06-20

  • Homework6

    2019-06-14

  • 软件开发中的软件架构(二)

    2019-05-31

  • 软件开发中的软件架构(一)

    2019-05-29

  • Homework5

    2019-05-22

  • Homework4

    2019-05-20

  • 《硝烟中的 Scrum 和 XP》的读书记录

    2019-05-20

  • Homework3

    2019-04-13

  • Homework2

    2019-03-26

  • Homework1

    2019-03-01

  • Swapi容器化

    2018-12-22

    #服务计算#Go语言#Swapi#docker

  • 简单 web 服务与客户端开发实战

    2018-12-16

    #服务计算#Swapi

  • 复刻Swapi项目小结

    2018-12-16

    #服务计算#Swapi#个人报稿

  • GO语言处理web程序的输入输出

    2018-11-12

    #服务计算#Go语言#web service

  • 基于Go的Agenda开发

    2018-10-31

    #服务计算#Go语言#CLI#Agenda

  • 利用GO语言实现简单的CLI

    2018-10-11

    #服务计算#Go语言#CLI#selpg

  • 大三下作业通知

    2018-09-29

  • Go语言开发环境的安装

    2018-09-27

    #服务计算#Go语言#VScode#Centos

  • 利用VirtualBox与Centos让PC提供云桌面服务

    2018-09-19

    #服务计算#Centos#虚拟机#云服务

  • 巡逻兵总结

    2018-06-19

    #Unity3D#编程实践#动作分离#订阅发布模式#工厂模式

  • UI——关于ScollView部件的一些简单看法

    2018-05-29

    #Unity3D#广告牌#UI#ScollView

  • 牧师与魔鬼优化——动作分离版

    2018-04-17

    #Unity3D#编程实践#动作分离

  • Homework and Exercise three

    2018-04-17

    #Unity3D#天空盒#地形

  • 编程实践——Priests and Devils

    2018-04-03

    #Unity3D#编程实践#MVC结构

  • Homework and Exercise two

    2018-04-03

    #Unity3D#运动的实现

  • 编程实践——井子棋1.0

    2018-03-27

    #Unity3D#编程实践#井字棋

  • Contact Way

    2018-03-24

  • Homework and Exercise one

    2018-03-24

    #Unity3D#游戏对象#预制体#资源#组合模式

  • 这里是一个代码功底很差
  • 但希望变强的小菜鸡
  • 也许这里刚开始会很简陋
  • 但一定会渐渐变好^-^