内容简介:前面学习了怎么样创建文本显示,这样就可以把程序内部一些状态告诉玩家,比如角色的生命值,经验值,金钱等等,这样做还是不够的,因为游戏是交互的,还需要获取玩家的输入,常常使用按钮来获取玩家的输入,这样就可以得到用户的输入反馈,从而达到互动的目标。比如游戏刚开始时,需要用户点击菜单开始游戏,或者退出游戏等等。又或者让用户输入自己的名称,以便这个游戏适用不同用户在同一台电脑上进行。这些按钮的实现都可以在脚本中编写OnGUI()函数来实现。上面已经说了可以通过OnGUI()函数来写界面,那么把这个函数放到哪一个脚本
前面学习了怎么样创建文本显示,这样就可以把程序内部一些状态告诉玩家,比如角色的生命值,经验值,金钱等等,这样做还是不够的,因为游戏是交互的,还需要获取玩家的输入,常常使用按钮来获取玩家的输入,这样就可以得到用户的输入反馈,从而达到互动的目标。比如游戏刚开始时,需要用户点击菜单开始游戏,或者退出游戏等等。又或者让用户输入自己的名称,以便这个游戏适用不同用户在同一台电脑上进行。这些按钮的实现都可以在脚本中编写OnGUI()函数来实现。
上面已经说了可以通过OnGUI()函数来写界面,那么把这个函数放到哪一个脚本里呢?其实Unity3D没有规定放到那一个脚本,即是所有继承MonoBehaviour类脚本里都可以放入这个函数,都可以绘制界面。但是,如果一个游戏里有几千个脚本,每个脚本都显示按钮,就会比较难控制,比如那些按钮显示在什么位置,或者有重复的。为了避免有太多的OnGUI()同时作用,使得图形界面的构成难以控制,一般情况之下,应该只用一个脚本里有OnGUI()函数,然后把这个脚本绑定到场景中唯一的对象上,如果没有唯一的对象,就可以自己创建一个空对象。往往是绑定在主摄像机上面,这样就可唯一化,但不要绑定到在游戏过程中可以删除的对象上面啊!这点一定要记住,否则删除之后就没有界面了。
下面就来在OnGUI()函数里实现按钮的功能,当用户按下之后,就来让计数增加一次。先给主摄像机添加脚本文件:
通过上面选中A,然后再从B里添加新脚本C。这样之后,就可以在脚本里添加下面的代码:
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SampleButton : MonoBehaviour { private int count; private Rect btnRect; // Use this for initialization void Start () { count = 0; btnRect = new Rect(); } // Update is called once per frame void Update () { } //界面显示 private void OnGUI() { btnRect.x = Screen.width / 3; btnRect.y = Screen.height * 2 / 5; btnRect.width = Screen.width / 3; btnRect.height = Screen.height / 5; if (GUI.Button(btnRect, "深圳改革开放")) { print(count); count++; } } }
把代码输入到脚本里SampleButton.cs里,然后再点击运行,就看到下面的界面显示:
中间可以看到按钮在显示,当你点击之后,就会在左下面看到计数在增加。
到这里就学会了怎么样创建一个按钮显示。
更多学习在这里: https://blog.csdn.net/caimouse/article/details/51749579
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
解放战争(上)(1945年8月—1948年9月)
王树增 / 人民文学出版社 / 2009-8 / 60.00
《解放战争》为王树增非虚构文学著述中规模最大的作品。武器简陋、兵力不足的军队对抗拥有现代武器装备的兵力庞大的军队,数量不多、面积有限的解放区最终扩展成为九百六十万平方公里的共和国,解放战争在短短四年时间里演绎的是人类历史上的战争传奇。国际风云,政治智慧,时事洞察,军事谋略,军队意志,作战才能,作品具有宏阔的视角和入微的体察,包含着惊心动魄的人生沉浮和变幻莫测的战场胜负,尽展中国历史上规模最大的一场......一起来看看 《解放战争(上)(1945年8月—1948年9月)》 这本书的介绍吧!