【Unity2D入门】制作一款简单的猜数字游戏之编写逻辑脚本

学习目标:

今天教大伙怎么编写Unity脚本,缺少脚本的加持再强大的组件也都是假的

简单介绍一下Untiy的C#的脚本是怎么样的

首先它是继承MonoBehavior类的,只有继承了这个类才能使用Unity的组件如Tranform,Rigibody

其次是有引用命名空间用using,固定有using System.Collections;
using System.Collections.Generic;
using UnityEngine;

其实前两个一般用不到

然后就是类class,它继承了MonoBehavior类,而且不用main()函数和构造函数,取而代之的是回调函数,有很多回调函数如Awake(),Start()初始化用和Update()每帧调用,其它的就不介绍了。

成员变量只有public和用特性[SerializeField]才能在Inspetor面板显示出来序列化。


学习内容:

猜字代码的逻辑在于,玩家想一个1到1000的数,让计算机来猜,刚开始给1和1000的随机数,然后玩家来点击Higher或是Lower,随后更新中间值直至猜到数。

代码NumberWizard.cs如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class NumberWizard : MonoBehaviour
{
    [SerializeField] int min;
    [SerializeField] int max;
    [SerializeField] TextMeshProUGUI guessText;

    int guess;
    void Start()
    {
        guess = Random.Range(min,max+1);
        guessText.text = guess.ToString();
        max += 1;
    }

    public void OnPressedHigher()
    {
        max = guess - 1;
        NextGuess();
        
    }
    public void OnPressedLower()
    {
        min = guess+1;
        NextGuess();
    }
    void NextGuess()
    {
        guess = Random.Range(min, max + 1);
        guessText.text = guess.ToString();
    }
}

其中Start()中是游戏一开始运行时就要执行的,

而后面的函数用public是添加事件给Button按键,相当于JAVA中的委托


 我们先创建一个空对象叫GamePlay,然后给它刚刚写的脚本(直接拽进来)拖到Project面板中作为预设体Prefab,这样可以在不同场景直接拖预设体进来避免重复创建的麻烦。 在Higher和Lower的OnClick()找到我们写的public的方法OnPressedLower()和OnPressedHigher();

当我们点击按钮时他们会执行写的方法

学习产出:

由此我们成功制作出一款通过按钮点击来触发函数的代码。

并且将其挂载到Button上

猜你喜欢

转载自blog.csdn.net/dangoxiba/article/details/124002828
今日推荐