因为汽车系统没写出来所以,纠结之中,弄了弄新版本的UI。
做了个2048。
新版本的unity的UI必须以Canvas为基底来呈现,如果没有加画布的话可是显示不出来东西的哦。
而且作为UI上的所有组件都应属于Canvas的子物体,要不也不会显示出来。
如图所示Image并没有在UI界面显示出来。而把Image拖入Canvas中的效果如下图:
ImageUI就显示出来了。
对于其他的组件来说也是必须的。
但是还有一个组件可以不用画布,,但是仅限Text的控制哦。
然后就是2048的程序了,写的很乱&烂,不要吐槽。
要注意的是,因为是调用了UI组件,说以必须导入组件的代码关联包UnityEngine.UI
using UnityEngine;
using System.Collections;
using UnityEngine.UI; public class MouseMove : MonoBehaviour { private Vector3 firstPoint, endPoint;
public Text T1;
public Text T2;
public Text T3;
public Text T4;
public Text T5;
public Text T6;
public Text T7;
public Text T8;
public Text T9;
private int[] T = new int[]; // Use this for initialization
void Start () {
int i = ;
while (i != ) {
int r = Random.Range (, );
if (T[r-] != ) {
i++;
set(r,);
}
}
} // Update is called once per frame
void Update () {//鼠标滑动判读移动方位
if (Input.GetMouseButtonDown ()) {
firstPoint = Input.mousePosition;
}
if (Input.GetMouseButtonUp ()) {
endPoint = Input.mousePosition;
Vector3 v= firstPoint - endPoint;
float angle = Vector3.Angle(v,new Vector3(,,));
if (angle < ) heng ();
if (angle > ) heng ();
if (angle > && angle < )
if (firstPoint.y - endPoint.y > ) shu(); else shu ();
nextrandom();
}
} void nextrandom(){//随机更新两个位置加2
int i = ;
int pp = ;
for (int c=; c<; c++)
if (T [c] == )
pp++;
if (pp < ) {
while (i != ) {
int r = Random.Range (, );
if (T [r - ] != ) {
i++;
set (r, );
}
}
}
} void set(int i,int number) {//修改i位置的数值为number
if (i == )
T1.text = "" + number;
if (i == )
T2.text = "" + number;
if (i == )
T3.text = "" + number;
if (i == )
T4.text = "" + number;
if (i == )
T5.text = "" + number;
if (i == )
T6.text = "" + number;
if (i == )
T7.text = "" + number;
if (i == )
T8.text = "" + number;
if (i == )
T9.text = "" + number;
if (number == )
T [i-] = ; else T[i-] = ;
} int get(int i) {//读取i位置的数值
if (i == )
return int.Parse(T1.text);
if (i == )
return int.Parse(T2.text);
if (i == )
return int.Parse(T3.text);
if (i == )
return int.Parse(T4.text);
if (i == )
return int.Parse(T5.text);
if (i == )
return int.Parse(T6.text);
if (i == )
return int.Parse(T7.text);
if (i == )
return int.Parse(T8.text);
if (i == )
return int.Parse(T9.text);
return ;
} void change(int p, int o) {
if (get (p) == get (p + o)) {
set (p + o, get (p) * );
set (p, );
}
if (get (p + o) == ) {
set (p + o, get (p));
set (p, );
}
} void heng(int p) {
//四个方向的操作
if (p == ) {
for (int i=; i<=; i++) {
if (i == || i == || i == ) {
if (get (i) != )
change (i,-);
}
if (i == || i == || i == ) {
if (get (i) != ) {
change (i,-);
change (i-,-);
}
}
}
}
if (p == ) {
for (int i=; i>=; i--) {
if (i == || i == || i == ) {
if (get (i) != )
change (i,);
}
if (i == || i == || i == ) {
if (get (i) != ) {
change (i,);
change (i+,);
}
}
}
}
} void shu(int p) {
if (p == ) {
for (int i=; i<=; i++) {
if (i == || i == || i == ) {
if (get (i) != )
change (i,-);
}
if (i == || i == || i == ) {
if (get (i) != ) {
change (i,-);
change (i-,-);
}
}
}
}
if (p == ) {
for (int i=; i>=; i--) {
if (i == || i == || i == ) {
if (get (i) != )
change (i,+);
}
if (i == || i == || i == ) {
if (get (i) != ) {
change (i,+);
change (i+,+);
}
}
}
}
} }
Unity3d5.0 新UI之2048的更多相关文章
-
vue2.0 操作数组下标不跟新ui,使用set()或$forceUpdate 也不能跟新视图情况
在vue 2.0 中操作数组不跟新ui图,即使使用set()或 $forceUpdate也不能跟新视图,我在前段时间也遇到了一个问题,当时我使用的时element 的tree 组件 由于需要对tree ...
-
(十)Unity5.0新特性------新UI系统实战
原文 Unity New GUI Tutorial – Part 1 Unity New GUI Tutorial- Part 2 Unity New GUI Tutorial – Part 3 大家 ...
-
背水一战 Windows 10 (1) - C# 6.0 新特性
[源码下载] 背水一战 Windows 10 (1) - C# 6.0 新特性 作者:webabcd 介绍背水一战 Windows 10 之 C# 6.0 新特性 介绍 C# 6.0 的新特性 示例1 ...
-
一个Activity掌握Android5.0新控件 (转)
原文地址:http://blog.csdn.net/lavor_zl/article/details/51279386 谷歌在推出Android5.0的同时推出了一些新控件,Android5.0中最常 ...
-
精进不休 .NET 4.5 (12) - ADO.NET Entity Framework 6.0 新特性, WCF Data Services 5.6 新特性
[索引页][源码下载] 精进不休 .NET 4.5 (12) - ADO.NET Entity Framework 6.0 新特性, WCF Data Services 5.6 新特性 作者:weba ...
-
Android Oreo 8.0 新特性实战 Autosizing TextView --自动缩放TextView
Android Oreo 8.0 新特性实战 Autosizing TextView --自动缩放TextView 8.0出来很久了,这个新特性已经用了很久了,但是一直没有亲自去试试.这几天新的需求来 ...
-
转载 精进不休 .NET 4.0 (5) - C# 4.0 新特性之并行运算(Parallel) https://www.cnblogs.com/webabcd/archive/2010/06/03/1750449.html
精进不休 .NET 4.0 (5) - C# 4.0 新特性之并行运算(Parallel) 介绍C# 4.0 的新特性之并行运算 Parallel.For - for 循环的并行运算 Parall ...
-
Android Studio 3.0 新特性
最新Android Studio版本是Android Studio 3.0,本文提供了所有新功能和更改的摘要. 所有这些功能都可以在最新的金丝雀版本中发布,但beta测试版本可能尚未提供. 核心IDE ...
-
Android 8.0 新特性
Android 8.0 (Android Oreo(奥利奥))新特性介绍 通知渠道 - Notification Channels 通知渠道是由应用自行定义的通知内容类别,借助渠道,开发者可以让用户对 ...
随机推荐
-
linux centos 6.5下安装nodejs
1.将文件下载或拷贝至/usr/local/src目录下,可使用xshell工具上传文件 2.解压缩文件: tar xvf /usr/local/src/node-v6.9.2-linux-x64 3 ...
-
iOS僵尸对象之研究
Zombie Objects对象研究 一.Xcode 关闭ARC project -> Build settings 搜索 Automatic Reference Counting ...
-
关于Depth Bounds Test (DBT)和在CE3的运用
Depth Bounds Test (DBT) Depth Bounds Test(深度范围检测),是Nvdia GeForce 6系列以后显卡的特性(GPU Programming Guide Ge ...
-
T4 模板自动生成带注释的实体类文件
T4 模板自动生成带注释的实体类文件 - 只需要一个 SqlSugar.dll 生成实体就是这么简单,只要建一个T4文件和 文件夹里面放一个DLL. 使用T4模板教程 步骤1 创建T4模板 如果你没有 ...
-
S3C6410嵌入式应用平台构建(二)
[2014-4/11~4/14]经过之前的实验,对Uboot已经有了大体的了解,前我们已经把led灯给点亮,但这不是我们的根本目的,我们是要进入boot启动,经过两天的分析代码和反复的实验,终于可以进 ...
-
在web网页中正确使用图片格式
今天又看了一遍淘宝平四分享的PPT,以前转载网址:http://blog.sina.com.cn/s/blog_995c1f6301017fd2.html
-
flex盒子里面元素linehight对高度的影响
那天,高高兴兴的测试flex属性.大家都知道,当父盒子display:flex的时候,子盒子即使宽高和大于父盒子,也会由于flex的特性进行收缩:然而,在给父盒子加了flex-direction:co ...
-
LeetCode-11. 盛最多水的容器
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0).找出其中的两条线, ...
-
20164305 徐广皓 Exp1+ 逆向进阶
实验内容 Task1 (5-10分) 自己编写一个64位shellcode.参考shellcode指导. 自己编写一个有漏洞的64位C程序,功能类似我们实验1中的样例pwn1.使用自己编写的shell ...
-
Java MultipartFile 使用记录
private void file(String path,MultipartFile file){ String separator = "/"; String originFi ...