【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上

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自己写的关于猜数字的aspx文件,using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class number : System.Web.UI.Page { private static readonly Random random = new Random(); private static readonly object syncLock = new object(); public static int RandomNumber(int min, int max) { lock (syncLock) { // synchronize return random.Next(min, max); } } public static int i = RandomNumber(1, 100); protected void Page_Load(object sender, EventArgs e) { // Label4.Visible = false; Label3.Visible = false; if (!IsPostBack) { ViewState["timeout"] = 60; } Label4.Text = i.ToString(); } protected void Button1_Click(object sender, EventArgs e) { int j = int.Parse(TextBox1.Text); Label3.Visible = true; if (j >= 1 & j <= 100) { if (j > i) { Label3.Text = "你的输入偏大,请重新输入! "; } else if (j < i) { Label3.Text = "你的输入偏小,请重新输入! "; } else { Label3.Text = "恭喜你,你猜对了!"; } } else { Label3.Text = "输入有误,请重新输入!"; } } protected void Button2_Click(object sender, EventArgs e) { Label4.Visible = true; } protected void Button3_Click(object sender, EventArgs e) { Label4.Text = i.ToString(); TextBox1.Text = ""; Label4.Visible = false; } protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e) { } protected void TextBox1_TextChanged(object sender, EventArgs e) { } protected void Timer1_Tick(object sender, EventArgs e) { var timeout = int.Parse(ViewState["timeout"].ToString()); if(timeout > 0) { Label5 .Text = + timeout + "秒"; ViewState["timeout"] = --timeout; } else { Response.Redirect("任务结束"); } } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值