ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

unity的NGUI(2)

2021-12-15 20:04:05  阅读:179  来源: 互联网

标签:Sprite parent transform surface unity 添加 NGUI public


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;
            }
          } 
}

标签:Sprite,parent,transform,surface,unity,添加,NGUI,public
来源: https://blog.csdn.net/weixin_46875794/article/details/121960276

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有