(二十九)unity4.6学习Ugui中文文档-------运行时创建Scroll-lists

??

孙广东 2015.5.10

首先要滚动和list形式存储内容。  使用Scroll Rect组件。就可以滚动了,但是有时候我们不希望,item超过区域还显示:就要使用Mask组件,说明一下,Mask组件组好配合Image一起使用。

下面的图:显示了的情况【头像是子对象Image】。1、父对象只有Mask组件;2、有Mask和Image组件【图片为none】;3、有Mask和Image组件【图片有Alpha透明区域】

   

在list容器中的item 我们怎么管理呢?VerticalLayout Group组件来实现自动的布局【其中可以设置每个item间的间距等】。还没完呢,每个item都要添加:Layout Element组件【可以设置每个item的最想要的宽度和高度等设置。】

还没完,我们要做的是在运行会list容器中动态的添加内容,所以我们希望的是:每次添加从尾部添加,如果item很少的,也要上对其【list容器设置为】。

这样我们就在为list容器添加ContextSizeFitter 组件,有什么用?

从下面的对应关系应该就明白了!

 

强调一下:  使用ALT和Shift 键是不同的呦!    这个选择很重要,会节省很多人为的设置!

涉及到的代码:

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections;
using System.Collections.Generic;

[System.Serializable]
public class Item {
	public string name;
	public Sprite icon;
	public string type;
	public string rarity;
	public bool isChampion;
	public Button.ButtonClickedEvent thingToDo;
}

public class CreateScrollList : MonoBehaviour {

	public GameObject sampleButton;
	public List<Item> itemList;

	public Transform contentPanel;

	void Start () {
		PopulateList ();
	}

	void PopulateList () {
		foreach (var item in itemList) {
			GameObject newButton = Instantiate (sampleButton) as GameObject;
			SampleButton button = newButton.GetComponent <SampleButton> ();
			button.nameLabel.text = item.name;
			button.icon.sprite = item.icon;
			button.typeLabel.text = item.type;
			button.rarityLabel.text = item.rarity;
			button.championIcon.SetActive (item.isChampion);
			//          button.button.onClick = item.thingToDo;
			newButton.transform.SetParent (contentPanel);
		}
	}

	/// <summary>
	/// 这两个函数 通过Inspector面板 赋值给 thingToDo变量就OK
	/// </summary>
	public void SomethingToDo () {
		Debug.Log ("I done did something!");
	}

	public void SomethingElseToDo (GameObject item) {
		Debug.Log (item.name);
	}
}
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class SampleButton : MonoBehaviour {

	public Button button;
	public Text nameLabel;
	public Image icon;
	public Text typeLabel;
	public Text rarityLabel;
	public GameObject championIcon;
}
using UnityEngine;
using System.Collections;

public class StandaloneScriptExample : MonoBehaviour {
	// 这两个函数 通过Inspector面板 赋值给 thingToDo变量就OK
	public void DoANewThing () {
		Debug.Log ("Stand alone script example!");
	}
}
时间: 2024-10-10 13:26:08

(二十九)unity4.6学习Ugui中文文档-------运行时创建Scroll-lists的相关文章

(三十)unity4.6学习Ugui中文文档-------制作一个泛型的MODAL窗口

孙广东 2015.5.11 在此文章中我们将制作一个泛型的MODAL窗口 (Yes, No, Maybeso, Cancel) 在那里我们可以把内容和动作push到窗口中,这个窗口可以在我们的游戏的任何地方使用,按钮被按下时事件工作. 涉及到的代码: using UnityEngine; using System.Collections; public class BringToFront : MonoBehaviour { void OnEnable () { transform.SetAsL

(二十七)unity4.6学习Ugui中文文档-------Unity3D UI (uGUI)窗口扩展

出处:http://blog.csdn.net/u010019717 下面是提供的例子: Unity3D UI (uGUI)窗口扩展 它是如何工作的? 也有官方的api文档: ?? ??

(二十六)unity4.6学习Ugui中文文档-------UGUI的开源Tween工具轻量而强大

出处:http://blog.csdn.net/u010019717 很多Unity开发者对NGUI很了解,而且发展的真的很完善,从以前的SendMassage 升级到更高效的 事件系统,包括很好的Tween相关,还有很多周边工具. 但是随着Unity4.6.5.0的推出,unity更原生专业高效的UGUI问世, 虽然从完善上没有NGUI完善,但是必将是以后的发展方向. 而且现在NGUI在U5中无法运行. UGUI还没有自带Tween相关,官方的案例都是使用Animation这个确实不推荐.  

(十三)unity4.6学习Ugui中文文档-------参考-UGUI Interaction Components(下)

 大家好,我是孙广东.   转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:http://www.unitymanual.com/forum.php?mod=guide&view=my 4.5 Slider 滑块控件允许用户通过拖动鼠标从一个预先确定的范围选择一个数字值.熟悉的例子包括在游戏中困难设置和在图像编辑器中亮度设置. Properties Property: Property: Interac

(二十五)unity4.6学习Ugui中文文档-------UGUI-Extensions

?? 出处:http://blog.csdn.net/u010019717 这个库是什么? 在此存储库中是扩展脚本来增强您的Unity UI experience的集合.这些脚本从许多来源收集和合并,随着时间的推移改善Unity UI experience.(脚本绝大多数来自脚本线程上unity UI 论坛在这里)你可以下载/项目访问脚本,或您可以下载此预编译的 Unity Asset资产. Unity UI Extensions Unity Asset Controls and extensi

(二十八)unity4.6学习Ugui中文文档-------uGui Effect Tool

浏览一下 GitHub ,找了找UGUI开源的东西 https://github.com/WestHillApps/uGUI-Effect-Tool 发现了 uGuiEffectTool (包括Blend[意义不大] 和 渐变) 这个是原始图片 Blend的效果: Blend的代码: using UnityEngine; using System.Collections.Generic; using UnityEngine.UI; namespace UiEffect { [AddCompone

(二十二)unity4.6学习Ugui中文文档-------交互-Eventsystem &amp;amp; Binding

大家好,我是孙广东.   转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:http://www.unitymanual.com/forum.php?mod=guide&view=my 完整的教程下载地址:http://www.unitymanual.com/thread-26665-1-1.html 5.4 Eventsystem& Binding 这两个东西其有用处不同也没有什么可比較的,可是也要区

(二)unity4.6学习Ugui中文文档-------概要-UGUI Canvas

大家好,我是孙广东.   转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:http://www.unitymanual.com/forum.php?mod=guide&view=my UI系统允许您快速.直观地创建用户界面(Ui).这是Unity的新 UI 系统的主要功能介绍. 一.UI Overview概要 在这篇概述中,我们就去通过 UI系统的基础知识.我们将开始介绍Canvas(画布)并将所有 U

(十八)unity4.6学习Ugui中文文档-------技巧-Creating UI elements from scripting

大家好,我是孙广东.   转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:http://www.unitymanual.com/forum.php?mod=guide&view=my 4.CreatingUI elements from scripting 如果您正在创建动态UI, 在游戏中UI元素在哪里出现.消失,或更改基于用户操作或其他操作,你可能需要做一个脚本,实例化新ui元素基于自定义的逻辑. Cr