Unity使用多態(tài)制作計算器功能
更新時間:2021年08月08日 15:22:08 作者:LaoB丶
這篇文章主要為大家詳細介紹了Unity使用多態(tài)制作計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Unity使用多態(tài)制作計算器,供大家參考,具體內容如下
Unity中需要的組件
在Unity中創(chuàng)建兩個InputField,一個Dropdown,一個Button和一個Text


創(chuàng)建腳本文件
計算父類
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Jsq : MonoBehaviour
{
public abstract class Calculate
{
public float Number1
{
get;
set;
}
public float Number2
{
get;
set;
}
public abstract float Compute();
}
}
加法
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Addition : Jsq.Calculate
{
/// <summary>
/// 實現(xiàn)父類計算方法
/// </summary>
/// <returns>加法計算結果</returns>
public override float Compute()
{
return Number1 + Number2;
}
}
減法
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Subtraction : Jsq.Calculate
{
/// <summary>
/// 實現(xiàn)父類計算方法
/// </summary>
/// <returns>減法計算結果</returns>
public override float Compute()
{
return Number1 - Number2;
}
}
乘法
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Multiplication : Jsq.Calculate
{
public override float Compute()
{
return Number1 * Number2;
}
}
除法
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : Jsq.Calculate
{
public override float Compute()
{
return Number1 / Number2;
}
}
等于號按鈕
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
public class EqualBtn : Jsq
{
public Text txt_Number1;
public Text txt_Number2;
public Text cbb_Operator;
public Text lab_Result;
public void btn_click()
{
//獲取兩個參數
float number1 = Convert.ToSingle(txt_Number1.text.Trim());
float number2 = Convert.ToSingle(txt_Number2.text.Trim());
//獲取運算符
string operation = cbb_Operator.text.Trim();
//通過運算符,返回父類類型
Calculate calculate = GetCalculateResult(operation);
calculate.Number1 = number1;
calculate.Number2 = number2;
//利用多態(tài)返回運算結果
string result = calculate.Compute().ToString();
this.lab_Result.text = result;
}
private Calculate GetCalculateResult(string operation)
{
Calculate calculate = null;
switch (operation)
{
case "+":
calculate = new Addition();
break;
case "-":
calculate = new Subtraction();
break;
case "*":
calculate = new Multiplication();
break;
case "/":
calculate = new Division();
break;
}
return calculate;
}
}
將等于號按鈕腳本賦給Canvas組件

再將對應的組件拉進去:順序分別是第一個InputField里的text(注意都是text),第二個InputField里的text,然后是Dropdown里面的Label,最后是顯示結果的Text


最后在給等于號按鈕添加一個執(zhí)行函數

最后在運行unity,加減乘除都可以計算,大功告成!
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關文章
C#使用StopWatch獲取程序毫秒級執(zhí)行時間的方法
這篇文章主要介紹了C#使用StopWatch獲取程序毫秒級執(zhí)行時間的方法,涉及C#操作時間的相關技巧,需要的朋友可以參考下2015-04-04

