IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> unity的NGUI(2) -> 正文阅读

[游戏开发]unity的NGUI(2)

1、Popup List(下拉列表)

创建一个Sprite–>添加Box Collider–>添加Popup List Script–>Options(大学、研究生、博士)–>设置Default、Positon、Alignment、Background–>为Sprite创建一个子Label–>把子Label拖拉到Sprite属性On Value Change下面的Notify里面–>Method选中setCurrentSelection

用系统自带的Popup List,要把Simple Popup List和Label的字体都设置为Unity和Dynamice(动态的),才可以显示中文

2、Toggle(多选框)

创建一个Sprite–>添加Box Collider–>添加Toggle Script–>为Sprite创建一个子Sprite(对钩图片)–>把子Sprite拖拉到Sprite属性"Sprite"里面–>设置Transitoin、Starting State

3、拖拽和调节组件大小

新建一个Sprite–>添加Box Collider–>添加Drag Object–>把Sprite拖拉到属性UIDrag Object的Target里面(Drag Effect:拖拽效果)

添加一个子Sprite–>添加Box Collider–>添加Drag Resize Script–>把Sprite拖拉到属性UIDrag Resize的Target里面–>Anchors设置(Type:Unified 四个方向都为自身)

UIDrag Resize里面的属性Pivot设置拖拽效果

4、Scroll Bar (滚动条)

新建一个Sprite–>添加Box Collider–>添加Drag Object–>把Sprite拖拉到属性UIDrag Object的Target里面(Drag Effect:拖拽效果)

添加一个子Sprite–>添加Box Collider–>添加Drag Resize Script–>把Sprite拖拉到属性UIDrag Resize的Target里面–>Anchors设置(Type:Unified 四个方向都为自身)

UIDrag Resize里面的属性Pivot设置拖拽效果

5、TextList

新建一个Label–>添加Box Collider–添加Text List–>添加脚本
private UITextList testList;
int i=0;
void Start () {
testList = this.GetComponent ();
}
void Update () {
if (Input.GetMouseButtonDown (0)) {
i++;
testList.Add (“gopedu”+i);
}
}

6、背包系统

新建一个Sprite(鞋子)?添加Box Collider?添加Drag Drop Item?添加3个Sprite(格子)?设置鞋子的属性(Widget里面的Depth点击Forward并设置值为2(拖拉鞋子可以放到格子上面),把shoe拖拉到Sprite上面)

使用Json解析完成背包功能

删除UIDrag Drop Item,为格子添加Box Collider,创建一个脚本放到鞋子上,当把鞋子放到格子上时就可以看到控制台打印信息。

public class KnapsackItem : UIDragDropItem{

	protected override void OnDragDropRelease (GameObject surface)
	{
		base.OnDragDropRelease (surface);

		print (surface);
	}
}
修改脚本KnapsackItem ,当拖拉鞋子到各个格子里面时默认都居中

public class KnapsackItem : UIDragDropItem {

	protected override void OnDragDropRelease (GameObject surface)
	{
		base.OnDragDropRelease (surface);

		this.transform.parent = surface.transform;
		this.transform.localPosition = Vector3.zero;
	}
}
把shoe放入prefabs文件夹中,然后删掉shoe-->给每一个knapsack都添加Box Collider-->编写一个脚本然后拖拉到bg(背景)上面-->把bg属性Cells的Size大小设置为9-->把每个knapsack分别拖拉到对应的Element里面

public class MyKnapsack : MonoBehaviour {

	public GameObject[] cells;
}
交换鞋子
把两只鞋子(shoe)分别放到两个背包(knaspack)里面-->添加两个标签(格子的标签是Cell ,背包的标签是Knaspack)
public class KnapsackItem : UIDragDropItem {
	protected override void OnDragDropRelease (GameObject surface)
	{
		base.OnDragDropRelease (surface);
		if (surface.tag == "Cell") {
			this.transform.parent = surface.transform;
			this.transform.localPosition = Vector3.zero;
		}else if(surface.tag =="Knaspack"){
			Transform parent=surface.transform.parent;
			surface.transform.parent=this.transform.parent;
			surface.transform.localPosition=Vector3.zero;

			this.transform.parent=parent;
			this.transform.localPosition=Vector3.zero;
		}
	}
}
为objectName添加三个游戏物体,把预设shoe放入item
public class MyKnapsack : MonoBehaviour {
	public GameObject[] cells;
	public string[] objectName;
        public GameObject item;    
}
public class KnapsackItem : UIDragDropItem {

	public UISprite sprite;
	public UILabel label;
	private int count = 1;

	public void AddCount(int number){
		count += number;
		label.text = count + "";
	}

	protected override void OnDragDropRelease (GameObject surface)
	{
		base.OnDragDropRelease (surface);

		if (surface.tag == "Cell") {
			this.transform.parent = surface.transform;
			this.transform.localPosition = Vector3.zero;
		}else if(surface.tag =="Knapsack"){
			Transform parent=surface.transform.parent;
			surface.transform.parent=this.transform.parent;
			surface.transform.localPosition=Vector3.zero;

			this.transform.parent=parent;
			this.transform.localPosition=Vector3.zero;
		}
	}
}
public class MyKnapsack : MonoBehaviour {

	public GameObject[] cells;
	public string[] objectName;
	public GameObject item;

	void Update(){
		if (Input.GetKeyDown (KeyCode.X)) {
			Pickup();		
		}
	}
	public void Pickup(){
		int index = Random.Range (0,objectName.Length);
		string name = objectName [index];
      for (int i=0; i<cells.Length; i++) {
        if (cells [i].transform.childCount == 0) 
        {
	//如果当前位置没有物品,添加我们捡起来的物品
	GameObject go = NGUITools.AddChild (cells [i], item);
	go.GetComponent<UISprite> ().spriteName = name;
	go.transform.localPosition = Vector3.zero;
	break;			
          }else {
                KnapsackItem ki = cells[i].GetComponentInChildren<KnapsackItem>();
                if (ki.sprite.spriteName.Equals(name)) 
               {
                    ki.AddCount(1);
                    break;
            }
          } 
}

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-12-18 16:18:24  更:2021-12-18 16:18:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 20:24:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码