博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unity3d游戏开发——新手引导
阅读量:4925 次
发布时间:2019-06-11

本文共 2818 字,大约阅读时间需要 9 分钟。

GUI实现,如下:

按“G”键开始新手引导

代码如下:

using UnityEngine;using System.Collections;public class OkButton : GUIBase {    ///     /// 按钮图片    ///     public Texture2D OKBTN_a;    public Texture2D OKBTN_b;    ///     /// 引导图片    ///     public Texture2D HoleTexture;    private GUIStyle OKBTNStyle;    private GUIStyle _defaultStyle;    // Use this for initialization    public override void Start () {        base.Start();        OKBTNStyle = new GUIStyle();        _defaultStyle = new GUIStyle();        _defaultStyle.padding = new RectOffset(0, 0, 0, 0);        _defaultStyle.border = new RectOffset(0, 0, 0, 0);        if (OKBTN_a == null)        {            OKBTN_a = Resources.Load("OKBTN/OK_a") as Texture2D;            OKBTNStyle.normal.background = OKBTN_a;        }        if (OKBTN_b == null)        {            OKBTN_b = Resources.Load("OKBTN/OK_b") as Texture2D;            OKBTNStyle.active.background = OKBTN_b;        }        if (HoleTexture == null)            HoleTexture = Resources.Load("OKBTN/okfight") as Texture2D;    }        // Update is called once per frame    public override    void Update () {        base.Update();    }    private bool _isGuider = false;    void LateUpdate()    {        if (Input.GetKeyDown(KeyCode.G))        {            _isGuider = true;        }    }    public override void OnGUI()    {        base.OnGUI();             if (_isGuider) //引导        {            GUI.DrawTexture(new Rect(0, 0, 800, 480), HoleTexture);            Rect rect = new Rect(674, 355, 128, 128);            OkButton.AddHole(rect, _defaultStyle);            if (Event.current.type == EventType.MouseUp)            {                if (rect.Contains(Event.current.mousePosition))                {                    StartCoroutine(disCatch());                }            }        }        if (GUI.Button(new Rect(674, 355, 128, 128), "", OKBTNStyle))        {            print("Click OKBTN");            _isGuider = false;        }        if (GUI.Button(new Rect(0, 0, 128, 128), "", OKBTNStyle))        {            print("Click Other");        }    }    ///     /// 另外线程处理    ///     /// 
IEnumerator disCatch() { //开一个线程处理要处理的事 yield return 1; } /// /// 在界面上面开孔,只有此处可以点击,其余的地方屏蔽用户点击,即在该按钮四周加其他按钮,先加的按钮会在上层。后加的按钮被屏蔽。 /// /// public static void AddHole(Rect rect, GUIStyle style) { GUI.Button(new Rect(0, 0, GUIBase.DesignStageWidth, rect.y), "", style);//上面的button GUI.Button(new Rect(0, rect.yMax, GUIBase.DesignStageWidth, GUIBase.DesignStageHeight - rect.yMax), "", style); //下边的button GUI.Button(new Rect(0, rect.y, rect.x, rect.height), "", style);//左边 GUI.Button(new Rect(rect.xMax, rect.y, GUIBase.DesignStageWidth - rect.xMax, rect.height), "", style);//右边 }}

 

转载于:https://www.cnblogs.com/martianzone/p/3339127.html

你可能感兴趣的文章
Set和Map数据结构
查看>>
内置对象Cookie和Session有何不同【常见面试题】
查看>>
【转载】Sqlserver数据库备份的几种方式
查看>>
静态链表的创建
查看>>
poll?transport=longpoll&connection...连接的作用
查看>>
fontconfig
查看>>
Toda 2
查看>>
Symfony 1.4 send mail embed image
查看>>
I/O类型
查看>>
PHP程序缓存之文件缓存处理方式
查看>>
PAT 1011-1020 题解
查看>>
201621123034 《Java程序设计》第4周学习总结
查看>>
vue-13-插件
查看>>
vs2015 报的字符串超长错误
查看>>
Flex的学习资源
查看>>
千万别信“创业要胆大”这种鬼话!有些人只是后盾够强
查看>>
PL/SQL 09 包 package
查看>>
Java 8 特性 —— 方法引用
查看>>
CSS3环形动画菜单
查看>>
动态设置 layui select 为选中状态
查看>>