Unity 2048数字控件Num的代码实现
2017-06-14 22:09
881 查看
Num控件的设置
- 图片的Testure Type要设置为Sprite(2D or UI)。
Num类的基本属性
public int NumIndex=2记录Num对象显示数字的值,默认为2
public int InitX,InitY
记录初始位置,背景棋盘为一个4X4的方格,左上角为(0,0),右下角为(3,3).
public Sprite[] ImageSouce
创建一个Sprite数组,用来储存显示不同数字时对应的Sprite属性,创建Sprite数组需要类实现using UnityEngine.UI。
private Image NumImage
用来储存和设置当前对象的image属性
private Transform Mark
设置了一个标志,该标志在(0,0)点位置,用来帮助Num对象确定自身位置
Num类中的方法
根据NumIndex改变NumImage#region 根据NumIndex改变NumImage-UpdateImage private void UpdateImage() { NumImage.sprite = ImageSouce[CorrespondImageAndIndex(NumIndex)]; } #endregion
其中CorrespondImageAndIndex(int x)方法作用是将NumIndex与ImageSouce数组中的图片一一对应
将NumIndex与ImageSouce一一对应
#region 将NumIndex与ImageSouce一一对应-CorrespondImageAndIndex(int NumIndex ) private int CorrespondImageAndIndex(int NumIndex ){ switch (NumIndex) { case 2: return 0; case 4: return 1; case 8: return 2; case 16: return 3; case 32: return 4; case 64: return 5; case 128: return 6; case 256: return 7; case 512: return 8; case 1024: return 9; case 2048: return 10; default: return 0; } } #endregion
初始化位置
#region 初始化位置-InitPos private void InitPos() { this.transform.localPosition = new Vector3(Mark.localPosition.x + 84 * InitX, Mark.localPosition.y - 84 * InitY, Mark.localPosition.z); //localPosition是在父物体下相对位置 } # endregion
生成动画
#region 生成动画-CreateNum private void CreateNum() { iTween.ScaleTo(this.gameObject, new Vector3(1, 1, 1), 0.2f); } #endregion
iTween.ScaleTo() :这里使用了iTween插件,插件中的ScaleTo方法的作用是将目标控件大小在一定时间内变化到指定大小。
this.gameObject代表控件指定,new Vector3(1, 1, 1)是目标大小,0.2f是变化时间。
Awake、Start、Update方法
void Awake() { NumImage = this.GetComponent<Image>(); //获取当前对象的Image属性 } void Start() { Mark = this.transform.parent.Find("Mark").transform; //取到标志控件 CreateNum(); //创建该控件后,自动调用创建函数 InitPos(); //设置初始位置 } void Update() { UpdateImage(); //随时监控控件image的变化,并及时作出改变 }
相关文章推荐
- JavaScript实现的可变动态数字键盘控件方式实例代码
- javascript实现WEB打印(用window.open()实现).不用安装任何控件.(含代码)分享
- 实现移动和改变控件大小的代码
- 一个控件几行代码实现换肤(可支持菜单)
- Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)(示例代码下载)
- Asp.net 2.0 自定义控件开发[实现自动计算功能(AutoComputeControl)][示例代码下载续][重点推荐控件]
- C#实现的【阿拉伯数字转换成中文大写金额】代码(原创)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- Delphi控件TEdit只接受数字键和退格键的实现方法
- 转载:Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)(示例代码下载)
- asp下实现 重新排序数字数组的代码
- 一个控件几行代码实现换肤(可支持菜单)
- Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)(示例代码下载)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- C#中代码Dialog控件实现(打开,保存,改变字体,颜色,打印功能)
- (服务器端的代码的实现)当页面上的某个控件回发时,保持滚动条位置的。
- ASP.NET2.0中GRIDVIEW控件完全代码实现模版列排序!(代码调试已通过)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- ASP.NET2.0中GRIDVIEW控件完整代码实现模版列排序!
- 代码实现DataList控件的分页显示