【3D游戏】第二次作业第一部分

简答题

  • 解释 游戏对象(GameObjects) 和 资源(Assets)的区别与联系。
    • 游戏对象是Unity中表示人物、道具和场景的基础对象。它们本身并没有完成多少工作,但是它们充当真正实现功能的组件的容器。
    • 资源代表所有你能用在你的游戏或工程中的项目。资源可能来自创建于Unity之外的文件,例如3D模型,音频文件,图片或者任何Unity支持的其他类型的文件。也有许多资源类型是创建于Unity中的,例如ProBuilder Mesh,Animator COntroller,Audio Mixer,或Render Texture。
  • 下载几个游戏案例,分别总结资源、对象组织的结构(指资源的目录组织结构与游戏对象树的层次结构)
    • 资源的目录组织结构
      • 动画
      • 音频
      • 资源包
      • 字体
      • 材质
      • 模型
      • 预设
      • 场景
      • 脚本化渲染管道
      • 纹理
      • 阴影
      • 特效
      • 插件
      • 图标
    • 游戏对象树的层次结构
      • 摄像机
      • 对象实体
      • 背景
      • 光线
  • 编写一个代码,使用 debug 语句来验证 MonoBehaviour 基本行为或事件触发的条件
    • 基本行为包括 Awake() Start() Update() FixedUpdate() LateUpdate()
    • 常用事件包括 OnGUI() OnDisable() OnEnable()
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestifyBeh : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Debug.Log("This Start!");
    }
    // Update is called once per frame
    void Update()
    {
        //Debug.Log("This Update!");
    }
    
    void Awake() 
    {
    	Debug.Log("This Awake!");
    }
    
    void FixedUpdate() 
    {
    	Debug.Log("This FixUpdate!");
    }
    
    void LateUpdate() 
    {
    	Debug.Log("This LateUpdate!");
    }
    
    void OnGUI() 
    {
    	Debug.Log("This OnGUI!");
    }
    
    void OnDisable() 
    {
    	Debug.Log("This Disabled!");
    }
    
    void OnEnable() 
    {
    	Debug.Log("This Enabled!");
    }
    
}
  • 查找脚本手册,了解 GameObject,Transform,Component 对象
    • 分别翻译官方对三个对象的描述(Description)
      • GameObject:Unity场景中所有实体的基类。
      • Transform:对象的位置,旋转和缩放 。
      • Component:一切附加到游戏对象的基类。
    • 描述下图中 table 对象(实体)的属性、table 的 Transform 的属性、 table 的部件
      • table的对象是GameObject,第一个选择框是activeSelf 属性,第二个文本框是对象名称,第三个选择框为static属性。第二行有Tag属性和Layer属性,第三行为prefabs(预设)属性。Transform属性包括position(位置),Rotation(旋转),Scale(比例)。Component对象有Transform,Mesh Filter,Box Collider,Mesh Renderer。
    • 用 UML 图描述 三者的关系
      在这里插入图片描述
  • 资源预设(Prefabs)与 对象克隆 (clone)
    • 预设(Prefabs)有什么好处?
      • 预设 (Prefabs) 可放入到多个场景中,且每个场景可使用多次。向场景添加一个预设 (Prefab) 时,就会创建它的一个实例。所有预设 (Prefab) 实例都链接到原始预设 (Prefab),实质上是原始预设的克隆。不管您的工程中有多少个实例,您对预设 (Prefab) 作薄出任何更改时,您会看到这些更改应用于所有实例。
    • 预设与对象克隆 (clone or copy or Instantiate of Unity Object) 关系?
      • 克隆游戏对象需要场景中有被克隆对象,而创建预制只需事先创建预制即可,允许场景中一开始并不存在该游戏对象。
      • 克隆出来的游戏对象并不会随着被克隆体的变化而发生变化,但是使用预制创建出来的对象会随着预制的改变而发生改变。
    • 制作 table 预制,写一段代码将 table 预制资源实例化成游戏对象
    using UnityEngine;
    public class InstantiationExample : MonoBehaviour {
    	// Reference to the Prefab. Drag the table into this field in the Inspector.
        public GameObject myPrefab;
        void Start()
        {
            Instantiate(myPrefab);
        }
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值