因为汽车系统没写出来所以,纠结之中,弄了弄新版本的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的更多相关文章

  1. vue2.0 操作数组下标不跟新ui,使用set()或$forceUpdate 也不能跟新视图情况

    在vue 2.0 中操作数组不跟新ui图,即使使用set()或 $forceUpdate也不能跟新视图,我在前段时间也遇到了一个问题,当时我使用的时element 的tree 组件 由于需要对tree ...

  2. (十)Unity5.0新特性------新UI系统实战

    原文 Unity New GUI Tutorial – Part 1 Unity New GUI Tutorial- Part 2 Unity New GUI Tutorial – Part 3 大家 ...

  3. 背水一战 Windows 10 (1) - C# 6.0 新特性

    [源码下载] 背水一战 Windows 10 (1) - C# 6.0 新特性 作者:webabcd 介绍背水一战 Windows 10 之 C# 6.0 新特性 介绍 C# 6.0 的新特性 示例1 ...

  4. 一个Activity掌握Android5.0新控件 (转)

    原文地址:http://blog.csdn.net/lavor_zl/article/details/51279386 谷歌在推出Android5.0的同时推出了一些新控件,Android5.0中最常 ...

  5. 精进不休 .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 ...

  6. Android Oreo 8.0 新特性实战 Autosizing TextView --自动缩放TextView

    Android Oreo 8.0 新特性实战 Autosizing TextView --自动缩放TextView 8.0出来很久了,这个新特性已经用了很久了,但是一直没有亲自去试试.这几天新的需求来 ...

  7. 转载 精进不休 .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 ...

  8. Android Studio 3.0 新特性

    最新Android Studio版本是Android Studio 3.0,本文提供了所有新功能和更改的摘要. 所有这些功能都可以在最新的金丝雀版本中发布,但beta测试版本可能尚未提供. 核心IDE ...

  9. Android 8.0 新特性

    Android 8.0 (Android Oreo(奥利奥))新特性介绍 通知渠道 - Notification Channels 通知渠道是由应用自行定义的通知内容类别,借助渠道,开发者可以让用户对 ...

随机推荐

  1. java:多线程基础之Runnable、Callable与Thread

    java.lang包下有二个非常有用的东西:Runnable接口与Thread类,Thread实现了Runnable接口(可以认为Thread是Runnable的子类),利用它们可以实现最基本的多线程 ...

  2. web 前端常用组件【02】Select 下拉框

    <select id="hello"></select>   关于 select 支持的属性和响应事件,可以参照:http://www.runoob.com ...

  3. 如何设置div高度为100%

    div高度通常都是固定值,直接将div高度设为100%是无效的,那么如何设置才能有效呢? 直接给div设置height:100%即可,无效的原因一定是父元素的高度为0,最常见的就是给body的直接元素 ...

  4. HIbernate的脏数据检测和延缓加载

    脏数据监测: 在一个事务中,加载的数据,除了返回给用户之外,会复制一份在session中,在事务提交时,会用session中的备份和用户的数据进行比对,如果用户的数据状态改变, 则用户的数据即为:脏数 ...

  5. oracle从游标批量提取数据

    来源于:http://blog.csdn.net/ceclar123/article/details/7974973 传统的fetch into一次只能取得一条数据,使用fetch bulk coll ...

  6. 文本溢出省略解决笔记css

    text-overflow:ellipsis; overflow:hidden; white-space:nowrap; *white-space:nowrap;

  7. Elasticsearch 权威指南

    Elasticsearch 权威指南 http://fuxiaopang.gitbooks.io/learnelasticsearch/content/index.html

  8. jsp内置对象作业3-application用户注册

    1,注册页面 zhuCe.jsp <%@ page language="java" contentType="text/html; charset=UTF-8&qu ...

  9. Java 测试代码模板

    package com.robert.service; import org.apache.commons.logging.Log; import org.apache.commons.logging ...

  10. 日期处理-将String 转为Date

    package com.test; import java.text.DateFormat; import java.text.ParseException; import java.text.Sim ...