unity unity 用ugui做计算器怎么做

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)我用unity制作了一个计算器,现在老师让我用代码控制计算器的界面
我用unity制作了一个计算器,现在老师让我用代码控制计算器的界面,求教高手们
要评论请先&或者&
用Ugui来制作、不可以吗?
控制界面?要多复杂?是需要切换版本把?
我做的程序,但是没法实行计算;using UnityEusing System.Cusing UnityEngine.UI;public class TestScript : MonoBehaviour { //public string strPutkeyC public Text strR//结果显示 public static string str1; //第一个操作数
public static string str2;//第二个操作数 public static string strO & & &//标记加减乘除符号 public Transform P public GameObject ButtonP // Use this for initialization int sum =0; & &//计算结果 void Start () {
& & & &for (int i = 0; i & 17; i++) {
GameObject newButton = Instantiate (ButtonPrefab);
if (i &= 0 && i &= 3) {
newButton.transform.position = new Vector3 (i * 200 + 200, 200, 0);
if (i &= 4 && i &= 7) {
newButton.transform.position = new Vector3 ((i - 4) *200+200, 300, 0);
if (i &= 8 && i &= 11) {
newButton.transform.position = new Vector3 ((i - 8) * 200+200,400,0);
if (i &= 12 && i &= 16) {
newButton.transform.position = new Vector3 ((i - 12) * 200 + 200, 500, 0);
newButton.transform.SetParent (Parent);
newButton.GetComponent&Button& ().onClick.AddListener (delegate() {
ClickFunction(newButton.transform.FindChild (&Text&).GetComponent&Text& ().text);
Text buttonText = newButton.transform.FindChild (&Text&).GetComponent&Text& ();
buttonText.text = i.ToString ();
if (i == 0) {
buttonText.text = &0&;
if (i == 1) {
buttonText.text = &.&;
if (i == 2) {
buttonText.text = &=&;
if (i == 3) {
buttonText.text = &/&;
if (i == 4) {
buttonText.text = &1&;
if (i == 5) {
buttonText.text = &2&;
if (i == 6) {
buttonText.text = &3&;
if (i == 7) {
buttonText.text = &*&;
if (i == 8) {
buttonText.text = &4&;
if (i == 9) {
buttonText.text = &5&;
if (i == 10) {
buttonText.text = &6&;
if (i == 11) {
buttonText.text = &-&;
if (i == 12) {
buttonText.text = &7&;
if (i == 13) {
buttonText.text = &8&;
if (i == 14) {
buttonText.text = &9&;
if (i == 15) {
buttonText.text = &+&;
if (i == 16) {
buttonText.text = &CE&;
} } public void ClickFunction (string strPutkeyCode) {
if (strPutkeyCode == &=&) {//按下=时开始计算
if (strOpt == &/&) {
sum = int.Parse (str1) / int.Parse (str2);
} else if (strOpt == &*&) {
sum = int.Parse (str1) * int.Parse (str2);
} else if (strOpt == &+&) {
sum = int.Parse (str1) + int.Parse (str2);
} else if (strOpt == &-&) {
sum = int.Parse (str1) - int.Parse (str2);
str1 = &&;
str2 = sum.ToString ();
Debug.Log (sum);
strResult.text = sum.ToString ();
if (strPutkeyCode == &CE&) {//清零
Debug.Log (&CE&);
strResult.text = &0&;
str1 = &&;
str2 = &&;
if (strPutkeyCode == &/& || strPutkeyCode == &*& || strPutkeyCode == &-& || strPutkeyCode == &+&) {
strOpt = strPutkeyC //记录按下的操作符,并把原先得到的操作数一str1赋给操作数二str2
if (str1 != &&) {
str2 = str1;
strResult.text = str2;
Debug.Log (&code---&);
str1 = &&;
if (strPutkeyCode == &1& || strPutkeyCode == &2& || strPutkeyCode == &3& || strPutkeyCode == &4& ||
& &strPutkeyCode == &5& || strPutkeyCode == &6& || strPutkeyCode == &7& || strPutkeyCode == &8& ||
& &strPutkeyCode == &9& || strPutkeyCode == &0&) {
str1 += strPutkeyC //拼接按下的数字
strResult.text = str1;
Debug.Log (str1);如何:使用 Visual Basic 编写基于 Unity3D 的计算器
如何:使用 Visual Basic 编写基于 Unity3D 的计算器
预先条件:
读者需要知道怎样用 C# 编写基于 Unity3D 的计算器,并且知道如何用 Visual Basic 编写 .NET Framework 3.5 类库。
1. 配置开发环境
安装 Unity3D 5.5, Visual Studio 2017 RC 和 Unity3D Tools for Visual Studio。
如果你看到这个博客的时候有新版的开发环境,并且 Unity3D 官方没有提供方便使用 VB 代码的功能,仍然需要装最新版的工具。
2. 用 Unity3D设计用户界面
像用 C# 写一样,你需要新建一个 2D 项目,然后在自动创建的场景里面拖按钮和标签控件组成计算器的视图。
3. 用 Visual Basic 编写逻辑代码
在项目根目录(Assets 之外那一层)附件链接中的项目模板新建一个 VB 类库项目。
我写的项目模板有如下特点:
* 默认程序集名称是 Assembly-VisualBasic,默认命名空间是空的
* 是 .NET Framework 3.5 的 VB 类库。
* 假设 Unity3D 装在 D盘,引用了相关的程序集。
* 手动编辑了 .vbproj 文件,开启了 VBRuntime Embed 编译模式。这样编译出来的类库可以正常地在 Mono 环境下执行。
* 输出目录改成了 Assets\Plugins ,方便 Unity3D 识别。
* 编译条件抄了 Assembly-CSharp 项目,只不过把 “;” 改成了 “,” 。
我给出的模板已经包含了一个不完整的计算器的 MonoBehavior 类, 还有计算器相关逻辑的两个类。
如果你打算自己编写一个 MonoBehavior,请用附件链接中的项模板新建一个 VB 的 MonoBehavior 类。
注意:MonoBehavior 的事件处理方法的签名最好用下拉框自动生成(如图所示)。这样尽管 Unity3D Tools for Visual Studio 不支持 Visual Basic,也不会导致声明错误的事件处理程序。
这个下拉框自动生成事件处理程序的实现原理是在 .Designer.vb 里面预先定义可能要写的事件处理程序的 Partial Private Sub 声明。这些过程如果不给出有实际内容的实现,编译的时候就不会被生成。这正好与 Unity3D Tools for Visual Studio 为 C# 所做的输入辅助的实际行为一样。
在计算器的 MonoBehavior 中,你需要声明表示计算器显示器的公有字段(在示例中是 TblValue 字段),和需要让按钮关联的无参公有的方法。每个按钮都需要一个方法对应它们的 Click 事件处理。
至于计算器本身怎么实现计算功能,看附件链接。
写完了别忘记生成。
4. 修改 C# 脚本
这一步超级简单。只要很短的时间就可以完成。
1. 用 Visual Studio 打开 C# 脚本项目中的 Assembly-CSharp
2. 添加 Assets\Plugins\Assembly-VisualBasic.dll 的引用
3. 对于每一个用 VB 写的 MonoBehavior ,新建一个 公有的 c# 类,并且继承它。
比如说,你用 VB 写的是
VB Public Class MainSceneBehaviorBase
Inherits MonoBehaviour
' ...End Class
对应的 C# 类是:
C# public class MainSceneBehavior : MainSceneBehaviorBase {}
没错,C#只要写一个空的类就可以。写完生成一下。
5. 关联脚本与前台代码
像用 C# 开发一样,把继承了 VB 的 MonoBehavior 那个类挂载到一个游戏对象上面(我把它挂到了 Canvas 上面,因为写计算器不需要针对 Canvas 编程),绑定脚本(VB 代码)中定义的 Public 字段(计算器的显示器),关联每一个按钮的 OnClick 事件到用 VB 写的事件处理程序。
关联脚本和事件的操作与用 C# 写的时候没有任何区别。
设计器可以借助 C# 脚本的继承正确地识别用 VB 写的 MonoBehavior 的成员。
6. 生成并运行
我用 Windows 10 的电脑和 Android 4.2 的手机进行了测试,计算器可以计算合理的表达式。
1. 项目源代码
2. VB 项目模板
执行 install.bat 会将模板文件复制到 Visual Studio 2017 的默认模板目录。如果你更改过模板目录,请手动导入。}

我要回帖

更多关于 unity3d关于inputfiled 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信