Unity使用多态制作计算器功能

作者:LaoB丶 时间:2022-10-15 02:50:06 

本文实例为大家分享了Unity使用多态制作计算器,供大家参考,具体内容如下

Unity中需要的组件

在Unity中创建两个InputField,一个Dropdown,一个Button和一个Text

Unity使用多态制作计算器功能
Unity使用多态制作计算器功能

创建脚本文件

计算父类


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组件

Unity使用多态制作计算器功能

再将对应的组件拉进去:顺序分别是第一个InputField里的text(注意都是text),第二个InputField里的text,然后是Dropdown里面的Label,最后是显示结果的Text

Unity使用多态制作计算器功能
Unity使用多态制作计算器功能

最后在给等于号按钮添加一个执行函数

Unity使用多态制作计算器功能

最后在运行unity,加减乘除都可以计算,大功告成!

来源:https://blog.csdn.net/asd1484507772/article/details/105165080

标签:Unity,计算器
0
投稿

猜你喜欢

  • 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
  • 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
  • JavaFX实现简单日历效果

    2023-05-16 08:43:30
  • C# this关键字的四种用法

    2022-10-06 07:09:22
  • Visual Studio 2022 安装低版本 .Net Framework的图文教程

    2023-06-22 19:18:44
  • java多线程编程学习(线程间通信)

    2023-04-02 05:25:34
  • 深入理解Java中的final关键字_动力节点Java学院整理

    2022-05-05 23:18:24
  • 解决springmvc关于前台日期作为实体类对象参数类型转换错误的问题

    2023-11-28 20:53:42
  • 防止未登录用户操作—基于struts2拦截器的简单实现

    2021-06-11 13:21:00
  • C#中怎么将一个List转换为只读的

    2021-10-04 15:52:51
  • 基于springboot实现redis分布式锁的方法

    2023-06-16 01:36:56
  • Java使用备忘录模式实现过关类游戏功能详解

    2022-11-30 08:52:51
  • java中URLEncoder.encode与URLDecoder.decode处理url特殊参数的方法

    2022-05-22 05:32:00
  • asp之家 软件编程 m.aspxhome.com