用UGUI制作手游新手指引
2015-04-09 20:51
429 查看
因为这几天工作上的需要,研究了下用UGUI制作新手指引。可以实现这个效果的方法有很多,都用了一遍,最后还是感觉这个方法比较好。我们需要创建一个画布,然后在画布下创建需要新手指引用到的按钮,
然后在需要新手指引的按钮上加2个组件,一个是 Graphic Raycaster 和Canvas ,Graphic Raycaster是用来是否接受可以交互的,Canvas是改变显示的,记得我们这里需要一个遮罩,就用一个Image来做吧
然后我们给这个4个按钮都加上这2个组件,因为这里我是测试所以我需要一运行游戏就有一个按钮是高亮状态,所以我这里用代码控制了下,然后我们这里还需要一个新手指引里面的手势指示,这个是实例化出来的。
绑定脚本UI控制器里面效果图
下面是测试代码:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
public class NewbieGuideTest : MonoBehaviour
{
public bool IsGuider = false;
public Image Instructions;
public List<Button> GuideBtn;
void Start()
{
Image go = GameObject.Instantiate(Instructions) as Image;
go.transform.SetParent(GuideBtn[0].transform);
go.transform.localPosition = Vector3.zero;
go.transform.localScale = Vector3.one;
//GuideBtn[0].GetComponent<Canvas>().overrideSorting = true;
GuideBtn[0].GetComponent<Canvas>().sortingOrder = 4;
}
public void BeginGuide(int value)
{
switch (value)
{
case 0:
Destroy(GameObject.Find("InstructionsImage(Clone)"));
ChangGuideBtn(value);
GenerateInstructions(value);
break;
case 1:
Destroy(GameObject.Find("InstructionsImage(Clone)"));
ChangGuideBtn(value);
GenerateInstructions(value);
break;
case 2:
Destroy(GameObject.Find("InstructionsImage(Clone)"));
ChangGuideBtn(value);
GenerateInstructions(value);
break;
case 3:
break;
}
}
public void GenerateInstructions(int value)
{
Image go = GameObject.Instantiate(Instructions) as Image;
go.transform.SetParent(GuideBtn[value+1].transform);
go.transform.localPosition = Vector3.zero;
go.transform.localScale = Vector3.one;
}
public void ChangGuideBtn(int value)
{
GuideBtn[value].GetComponent<Canvas>().overrideSorting = false;
GuideBtn[value].GetComponent<Canvas>().sortingOrder = -1;
GuideBtn[value + 1].GetComponent<Canvas>().overrideSorting = true;
GuideBtn[value + 1].GetComponent<Canvas>().sortingOrder = 2;
}
}
效果图:
其他做法还有 改变深度,方法是SetSiblingIndex 还有一个组件也可以Canvas Group,具体大家可以去看下API,这些组件的用法 。
然后在需要新手指引的按钮上加2个组件,一个是 Graphic Raycaster 和Canvas ,Graphic Raycaster是用来是否接受可以交互的,Canvas是改变显示的,记得我们这里需要一个遮罩,就用一个Image来做吧
然后我们给这个4个按钮都加上这2个组件,因为这里我是测试所以我需要一运行游戏就有一个按钮是高亮状态,所以我这里用代码控制了下,然后我们这里还需要一个新手指引里面的手势指示,这个是实例化出来的。
绑定脚本UI控制器里面效果图
下面是测试代码:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
public class NewbieGuideTest : MonoBehaviour
{
public bool IsGuider = false;
public Image Instructions;
public List<Button> GuideBtn;
void Start()
{
Image go = GameObject.Instantiate(Instructions) as Image;
go.transform.SetParent(GuideBtn[0].transform);
go.transform.localPosition = Vector3.zero;
go.transform.localScale = Vector3.one;
//GuideBtn[0].GetComponent<Canvas>().overrideSorting = true;
GuideBtn[0].GetComponent<Canvas>().sortingOrder = 4;
}
public void BeginGuide(int value)
{
switch (value)
{
case 0:
Destroy(GameObject.Find("InstructionsImage(Clone)"));
ChangGuideBtn(value);
GenerateInstructions(value);
break;
case 1:
Destroy(GameObject.Find("InstructionsImage(Clone)"));
ChangGuideBtn(value);
GenerateInstructions(value);
break;
case 2:
Destroy(GameObject.Find("InstructionsImage(Clone)"));
ChangGuideBtn(value);
GenerateInstructions(value);
break;
case 3:
break;
}
}
public void GenerateInstructions(int value)
{
Image go = GameObject.Instantiate(Instructions) as Image;
go.transform.SetParent(GuideBtn[value+1].transform);
go.transform.localPosition = Vector3.zero;
go.transform.localScale = Vector3.one;
}
public void ChangGuideBtn(int value)
{
GuideBtn[value].GetComponent<Canvas>().overrideSorting = false;
GuideBtn[value].GetComponent<Canvas>().sortingOrder = -1;
GuideBtn[value + 1].GetComponent<Canvas>().overrideSorting = true;
GuideBtn[value + 1].GetComponent<Canvas>().sortingOrder = 2;
}
}
效果图:
其他做法还有 改变深度,方法是SetSiblingIndex 还有一个组件也可以Canvas Group,具体大家可以去看下API,这些组件的用法 。
相关文章推荐
- UGUI强制新手引导制作方案
- UGUI 新手指引
- UGUI 制作血条,3d物体跟随移动
- UGUI 之 制作角色受伤屏幕变红的动画提示(三)
- 上树建站教程:新手单页网站制作教程上集
- 基于cocos2dx的2D手游美术资源制作技术选型(1)(2)
- 仿《雷霆战机》飞行射击手游开发--新手引导
- Unity3D学习日记(二)使用UGUI制作虚拟摇杆控制摄像机
- mysql数据库绿色软件制作过程(跟大家分享一下,希望对新手有所帮助)
- MC新手入门(四十)------ 愤怒小狗制作一
- 制作优品新手指南页面
- MC新手入门(四十)------ 愤怒小狗制作一
- UGUI新手引导
- Cocos2d-x教程(12)-利用遮罩(蒙版)CCLayerColor制作新手引导界面(中)
- cocos2dx LUA使用ClippingNode来制作新手引导
- Android高手进阶教程(二十七)之---基于ViewFlipper实现的自定义新手指引控件.
- UGUI 之 制作敌人不在摄像机视口的UI方向提示(或检测物体在不在摄像机渲染范围内)(四)
- 开源整理:Android App新手指引开源控件
- 独立开发者:新手做2D手游该用哪些工具?
- UGUI中CustomFont字体使用与制作