【游戏开发】unity教程1 做一个简单的井字棋

本文是一篇面向初学者的Unity教程,详细介绍了如何创建一个简单的井字棋游戏。首先,讲解了GameObject和Assets的区别与联系,接着通过下载游戏案例分析资源和对象的组织结构。接着,通过代码示例展示了MonoBehaviour的基本行为和事件触发。还介绍了GameObject、Transform和Component对象的特性。此外,探讨了Prefab和对象克隆的概念,并提供了实例化Prefab的代码。最后,教程中实现了井字棋的GUI界面和游戏逻辑,包括重置、胜利检查、自动下棋等功能,并鼓励读者思考Unity的设计模式和组合模式的应用。
摘要由CSDN通过智能技术生成

游戏效果视频地址:https://www.bilibili.com/video/av67545218

在开始打码之前

首先我们通过回答几个问题,以此来加深对unity的理解。

游戏对象(GameObjects) 和 资源(Assets)的区别与联系

GameObject在unity官方文档中是有描述的:Base class for all entities in Unity Scenes. 即GameObject是在编写代码时会用到的一个概念,会直接出现在游戏场景中;我们可以通过层次结构来组织不同的游戏对象,同时也可以通过对象池来管理存储。而Assets是素材,包含常用的图像视频甚至脚本,可以被加载到一个或多个对象上来使用,通常是以文件夹的形式来组织的。

 

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

我随便下载了一个学习中的项目。这里我们可以看出,Assets是以文件夹的形式组织的,而且命名简单直接,这里我们选中Audio,就可以看到文件夹内的就都是游戏用到的音频文件。

 

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

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

代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour {
    void Awake() {
        Debug.Log ("Awake");
    }
    void Start () {
        Debug.Log ("Start");
    }
    void Update () {
        Debug.Log ("Update");
    }
    void FixedUpdate() {
        Debug.Log ("FixedUpdate");
    }
    void LateUpdate() {
        Debug.Log ("LateUpdate");
    }
    void OnGUI() {
        Debug.Log ("GUI");
    }
    void OnDisable() {
        Debug.Log ("Disable");
    }
    void OnEnable() {
        Debug.Log ("Enable");
    }
}

从console的输出中可以看出,程序会在一开始调用Awake,Enable和Start各一次。

然后在执行的过程中,每一帧依次调用FixedUpdate,Update以及LateUpdate,并调用两次OnGui。

最终在结束程序的时候调用一次OnDisable。

 

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

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

GameObject:

Base class for all entities in Unity Scenes.

Unity场景中所有实例的基类。

Transform:

Position, rotation and scale of an object.

一个对象的位置、旋转角度和缩放。

Component:

Base class for everything attached to GameObjects.

附着在一个GameObject的所有事物的基类。

描述下图中 table 对象(实体)的属性、table 的 Transform 的属性、 table 的部件

table对象的属性

  • activeInHierarchy:GameObject是否在场景中处于active状态
  • activeSelf:GameObject的本地活动状态
  • isStatic:Gam
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值