因为汽车系统没写出来所以,纠结之中,弄了弄新版本的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. 海王星给你好看!FineUI v4.0公测版发布暨《你找BUG我送书》活动开始(活动已结束!)

    <FineUI v4.0 你找BUG我送书>活动已结束,恭喜如下三位网友获得由 FineUI 作者亲自翻译的图书<jQuery实战 第二版>! 奋斗~ 吉吉﹑ purplebo ...

  2. visual studio 2012 的制作ActiveX、打包和发布

    开发环境是Vs 2012  Framework 4.0 源码和制作工具在文章最下边 一. ActiveX控件Demo 新建一个Window窗体控件库项目 在自动生成的UserControl1页面上添加 ...

  3. Vue学习笔记-2

    前言 本文非vue教程,仅为学习vue过程中的个人理解与笔记,有说的不正确的地方欢迎指正讨论 1.computed计算属性函数中不能使用vm变量 在计算属性的函数中,不能使用Vue构造函数返回的vm变 ...

  4. 基于nodejs的终端天气查询

    国际惯例,先上效果图 前天,突然想到,怎么直接在命令行查询天气呢?好的,那就写一个吧.然后就开始找城市.天气的api接口,最终做出来这么一个东西. 安装方法:$ npm install tianqi ...

  5. Excel导入导出,通过datatable转存(篇一)

    //导入数据 public ActionResult ExpressInfoImport() { var ptcp = new BaseResponse() { DoFlag = true, DoRe ...

  6. TF2ZP函数

    TF2ZP 中TF是什么意思?   Transfer function   tf 就是传递函数的意思,简称传函 tf2zp是将传递函数转换为零极点形式的一个转换函数   [Z,P,K] = TF2ZP ...

  7. MATLAB中plot()画图的颜色线型和希腊字母参数设置

    y         黄色           ·             点线      m         粉红           ○             圈线      c          ...

  8. 清空KindEditor富文本编辑器里面的内容方法

    //清空KindEditorKindEditor.instances[0].html(""); 0表示第一个KindEditor编辑器对象 详情见链接:http://www.new ...

  9. tornado和django的结合使用 tornado Server for django WSGI APP

    #!/usr/bin/env python # Run this with # Serves by default at # http://localhost:8080/hello-tornado a ...

  10. 【jQuery EasyUI系列】创建CRUD数据网格

    在上一篇中我们使用对话框组件创建了CRUD应用创建和编辑用户信息.本篇我们来创建一个CRUD数据网格DataGrid 步骤1,在HTML标签中定义数据网格(DataGrid) <table id ...