离散引擎仿真基础

本文介绍了Unity引擎中游戏对象和资源的区别与联系,资源作为模板可以实例化为游戏对象,资源目录和游戏对象树的组织结构,以及如何使用C#脚本来验证基本行为和事件触发条件。还探讨了Transform组件、GameObject的属性以及预设和对象克隆的概念,通过编程题介绍了使用Unity构建井字棋游戏的过程,强调了模板方法模式和装饰模式在游戏设计中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 简答题

  • [Q] 解释 游戏对象(GameObjects)和 资源(Assets)的区别与联系
    • 区别:
      • 游戏对象 是Unity中的基本对象(游戏中的每个对象都是游戏对象),可以表现为人物、道具、场景等等。它们本身并不能完成很多工作,但它们的主要作用就是充当组件(Components)的容器,并以它们的功能性来搭建自己本身物体的属性(Properties)。
      • 资源 表示你在项目中可能用到的任何东西,常见的资源是以可见文件形式存在的,比如建模文件、音频文件、图像文件等等。
    • 联系:
      • 资源可以作为模板,实例化成具体的游戏对象,也可以作为游戏对象中的某种属性,同时也可以被多个游戏对象同时使用。

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

    • 下载的官方学习案例主要有Creater Kit: FPSCreater Kit: PuzzleKarting Microgame(但不知道什么原因只有一两个能够打开),其中结构比较鲜明的例子是这个初学者学习案例Karting Microgame
    • 资源的目录组织结构:
      • 总结:资源组织结构一般包括Animation(动画)Prefab(预制)Scene(场景)Scripts(脚本)等等,根据资源本身的类别构建了许多不同的文件夹来存放,从而使得项目的资源能够很方便管理并且完善与拓展。
    • 游戏对象树的层次结构:
      • 总结:游戏组织结构一般包含Camera(摄像头)Background(背景)Light(灯光)和一些自定义对象等等;除此之外,特定游戏也会有专门定制的时间线、事件机制等等管理游戏组织。

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

    • 基本行为包括 Awake() Start() Update() FixedUpdate() LateUpdate()
    • 常用事件包括 OnGUI() OnDisable() OnEnable()

    创建脚本文件LifeCycle.cs并填写完代码后拖动到MainCamera对象上并Play

    // LifeCycle.cs
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class LifeCycle : MonoBehaviour
    {
         
          
      // 以下的布尔值均是为了对应方法能够只调用一次
      private bool isUpdate = false;
      private bool isFixedUpdate = false;
      private bool isLateUpdate = false;
      private bool isOnGUI = false;
    
    
      // Start is called before the first frame update
      void Start()
      {
         
         
        Debug.Log("Start");
      }
    
      // Update is called once per frame
      void Update()
      {
         
         
        if (!isUpdate)
        {
         
         
          Debug.Log("Update");
          isUpdate = true;
        }
    
      }
    
      void Awake()
      {
         
         
        Debug.Log("Awake");
      }
    
      void FixedUpdate()
      {
         
         
        if (!isFixedUpdate)
        {
         
         
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CharlesKai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值