本次实验主要使用IMGUI提供的API进行编程,使用MVC的编程思想进行代码组织
视频链接
IMGUI介绍
IMGUI一般有以下作用:
- 创建游戏内调试显示和工具
- 为脚本组件创建自定义检视面板
- 创建新的编辑器窗口和工具以扩展 Unity 本身
MVC模式介绍
代码实现
using UnityEngine;
public class SimpleCalculator : MonoBehaviour
{
private string input1 = "";
private string input2 = "";
private string operation = "";
private string result = "";
void OnGUI()
{
// 放置基本的UI界面
GUI.Label(new Rect(10, 10, 100, 20), "Number 1:");
input1 = GUI.TextField(new Rect(120, 10, 100, 20), input1);
GUI.Label(new Rect(10, 40, 100, 20), "Operator (+, -, *, /):");
operation = GUI.TextField(new Rect(160, 40, 40, 20), operation);
GUI.Label(new Rect(10, 70, 100, 20), "Number 2:");
input2 = GUI.TextField(new Rect(120, 70, 100, 20), input2);
// 放置计算按钮
if (GUI.Button(new Rect(10, 100, 100, 30), "Calculate"))
{
Calculate();
}
// 结果显示
GUI.Label(new Rect(10, 140, 200, 20), "Result: " + result);
}
//计算过程
private void Calculate()
{
float num1, num2;
if (float.TryParse(input1, out num1) && float.TryParse(input2, out num2))
{
switch (operation)
{
case "+":
result = (num1 + num2).ToString();
break;
case "-":
result = (num1 - num2).ToString();
break;
case "*":
result = (num1 * num2).ToString();
break;
case "/":
if (num2 != 0)
result = (num1 / num2).ToString();
else
result = "Cannot divide by zero!";
break;
default:
result = "Invalid operator!";
break;
}
}
else
{
result = "Invalid input!";
}
}
}
效果演示
- 将上述C#代码拖入到
Main Camera
中,点击运行,出现以下界面
- 在画面左上角即是通过
IMGUI
搭建出来的简易计算器,输入1+2
、1*2
、1-2
进行测试,可见都能正确计算