Unity使用多态制作计算器功能
作者:LaoB丶 时间:2022-10-15 02:50:06
本文实例为大家分享了Unity使用多态制作计算器,供大家参考,具体内容如下
Unity中需要的组件
在Unity中创建两个InputField,一个Dropdown,一个Button和一个Text
创建脚本文件
计算父类
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>
/// 实现父类计算方法
/// </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>
/// 实现父类计算方法
/// </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;
//利用多态返回运算结果
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
最后在给等于号按钮添加一个执行函数
最后在运行unity,加减乘除都可以计算,大功告成!
来源:https://blog.csdn.net/asd1484507772/article/details/105165080
标签:Unity,计算器
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java NIO框架Netty简单使用的示例
2022-09-08 02:51:27
java实现哈弗曼编码与反编码实例分享(哈弗曼算法)
2023-11-25 04:54:05
springboot bootcdn使用示例详解
2022-01-14 21:56:46
Java自定义注解用法实例小结
2023-03-26 09:13:51
C#利用FileSystemWatcher实时监控文件的增加,修改,重命名和删除
2021-08-21 05:46:28
![](https://img.aspxhome.com/file/2023/7/68097_0s.png)
C#使用Object类实现栈的方法详解
2021-08-03 17:36:16
java日期操作工具类(获取指定日期、日期转换、相隔天数)
2023-11-28 06:42:53
java线程之join方法的使用介绍
2023-01-15 12:18:40
C++ Cmake的构建静态库和动态库详解
2023-06-28 08:28:15
![](https://img.aspxhome.com/file/2023/7/68777_0s.png)
JavaFX实现简单日历效果
2023-05-16 08:43:30
![](https://img.aspxhome.com/file/2023/5/61325_0s.jpg)
C# this关键字的四种用法
2022-10-06 07:09:22
![](https://img.aspxhome.com/file/2023/5/75595_0s.jpg)
Visual Studio 2022 安装低版本 .Net Framework的图文教程
2023-06-22 19:18:44
![](https://img.aspxhome.com/file/2023/0/78990_0s.png)
java多线程编程学习(线程间通信)
2023-04-02 05:25:34
![](https://img.aspxhome.com/file/2023/3/81973_0s.png)
深入理解Java中的final关键字_动力节点Java学院整理
2022-05-05 23:18:24
解决springmvc关于前台日期作为实体类对象参数类型转换错误的问题
2023-11-28 20:53:42
![](https://img.aspxhome.com/file/2023/3/60813_0s.png)
防止未登录用户操作—基于struts2拦截器的简单实现
2021-06-11 13:21:00
C#中怎么将一个List转换为只读的
2021-10-04 15:52:51
基于springboot实现redis分布式锁的方法
2023-06-16 01:36:56
![](https://img.aspxhome.com/file/2023/5/82365_0s.png)
Java使用备忘录模式实现过关类游戏功能详解
2022-11-30 08:52:51
![](https://img.aspxhome.com/file/2023/2/60782_0s.png)
java中URLEncoder.encode与URLDecoder.decode处理url特殊参数的方法
2022-05-22 05:32:00