Unity NGUI 网络斗地主 -界面制作

源文件在群(63438968群共享!)

@灰太龙

这一节说一下NGUI的界面摆放,并且教会大家使用NGUI的自适应功能!

在这里感谢@Gamer,是他给我的一些指教和资料!

1.首先在菜单栏中选择NGUI->Open->UI Wizard,这个时候会弹出一个窗体

其中,默认的层是Default,如果是这个层的话,就会有问题!

自己试一试就知道了,在这里不阐述了!

(注解:新建Layer,在Inspector中,最后一个命令Add Layer...添加一个层,即可,名字可以任意取!)

那么会在Hierarchy视图中自动生成几个物体,截图:

UI Root(2D)为根物体,Camer为UI摄像机,

在这儿删除两个物体,

1.UI Root(2D)身上的脚本,并且将这个物体的缩放值(x,y,z)都改成1

2.删除Anchor物体!

在Camera上添加一个脚本,截图:

这个脚本随后上传,其中Screen Width和Screen Height为在Game视图中的窗口大小,(点击Game视图中的Stats按钮,可以看到当前游戏窗口的大小的),经过以上步骤的操作,控件都会是自适应的!

贴上MyCamera.cs脚本

   using UnityEngine;
using System.Collections;
using System.Collections.Generic;
// <summary>
/// This is used to decide how the camera rendering result to draw to screen.
/// </summary>
public enum Camera2DStretchMode
{
None,
StretchFit,
AspectStretchFit,
} /// <summary>
/// A Camera2D is a camera through which the player views the world.
/// </summary>
[ExecuteInEditMode]
[RequireComponent(typeof(Camera))]
public class MyCamera : MonoBehaviour
{
public static Rect cameraRect;
/// <summary>
/// The width of the target screen window in pixels.
/// </summary>
public float screenWidth = ; /// <summary>
/// The height of the target screen window in pixels.
/// </summary>
public float screenHeight = ; /// <summary>
/// Camera's half-size in orthographic mode
/// </summary>
public float orthographicSize
{
get
{
return _orthographicSize;
} set
{
_orthographicSize = value; float aspect = (float)screenWidth / (float)screenHeight; screenHeight = 2f * _orthographicSize;
screenWidth = screenHeight * aspect;
}
} [SerializeField]
private float _orthographicSize = ; /// <summary>
/// This is used to decide how the camera rendering result to draw to screen.
/// </summary>
public Camera2DStretchMode stretchMode = Camera2DStretchMode.StretchFit; void Reset()
{ } void OnDestroy()
{ } private bool isOpenGL = false;
void Awake()
{
} void resetCamera()
{
orthographicSize = screenHeight * 0.5f; camera.orthographic = true;
camera.orthographicSize = screenHeight * 0.5f;
camera.aspect = (float)screenWidth / (float)screenHeight; int mask = ;
int i = ; float hw = screenWidth * 0.5f;
float hh = screenHeight * 0.5f; if (isOpenGL)
camera.projectionMatrix = Matrix4x4.Ortho(-hw, hw, -hh, hh, 0.0f, 1024f);
else
{
camera.projectionMatrix = Matrix4x4.Ortho(-hw + 0.5f, hw + 0.5f, -hh - 0.5f, hh - 0.5f, -0.01f, 1024f);
} if (Screen.width <= 0f || Screen.height <= 0f)
return; if (stretchMode == Camera2DStretchMode.None)
{
camera.pixelRect = new Rect((Screen.width - screenWidth) * 0.5f, (Screen.height - screenHeight) * 0.5f, screenWidth, screenHeight);
} if (stretchMode == Camera2DStretchMode.StretchFit)
{
camera.pixelRect = new Rect(0f, 0f, Screen.width, Screen.height);
} if (stretchMode == Camera2DStretchMode.AspectStretchFit)
{
float cameraAspect = (float)screenWidth / (float)screenHeight;
float screenAspect = (float)Screen.width / (float)Screen.height; if (screenAspect >= cameraAspect)
{
float h = Screen.height;
float w = Screen.height * cameraAspect;
camera.pixelRect = new Rect((Screen.width - w) * 0.5f, 0f, w, h);
}
else
{
float w = Screen.width;
float h = w * ((float)screenHeight / (float)screenWidth);
camera.pixelRect = new Rect(, (Screen.height - h) * 0.5f, w, h);
} } cameraRect = camera.pixelRect;
} void OnPreRender()
{
resetCamera(); } void OnEnable()
{
isOpenGL = SystemInfo.graphicsDeviceName.ToUpper().IndexOf("OPENGL") >= ;
resetCamera();
}
}

现在可以添加控件了,点击NGUI->Open->Widget Tool来添加控件了,添加控件比较简单!

下一篇 NGUI的图集 Altas

Unity NGUI 网络斗地主 -界面制作的更多相关文章

  1. Unity NGUI 网络斗地主 -制作图集 Atlas

    Unity NGUI 网络斗地主 -制作图集 Atlas by @杨海龙 开发环境   Win7+Unity4.2.1f4+NGUI 3.0.4版本 这一节告诉大家如何制作(图集)Atlas! 1.首 ...

  2. Unity NGUI 网络斗地主 -发牌 脚本交互

    Unity NGUI 网络斗地主 -发牌 脚本交互 @By 灰太龙 Unity4.2.1f4 NGUI 3.0.4 本篇说的问题是脚本与控件的交互! 现在对界面进行了改进,先看副图! 1.制作发牌效果 ...

  3. Unity NGUI 3.0.4版本 制作网络版斗地主

    Unity NGUI 3.0.4版本 @by 灰太龙  开发环境 Win7旗舰版 Unity 4.2.1f4 本文就写个开门篇,告诉大家怎么用NGUI,第一步导入NGUI 3.0.4版本! 1.启动U ...

  4. Unity网络斗地主 服务端

    Unity网络斗地主  服务端 @by梦想之家2工作室 阿龙 已经做好了服务器框架,并且能实现服务器给客户端分牌的问题!

  5. Unity 网络斗地主 判断牌的类型

    Unity 网络斗地主  牌的类型 web版本演示地址:   http://www.dreamhome666.com/Desktop.html 在上个版本中,下面的角色在牌的后面,可以将角色做为一个P ...

  6. Unity 网络斗地主 牌的一些算法

    Unity 网络斗地主  牌的一些算法 在这儿说一下,我的项目是用svn的方式,上传在https://v2.svnspot.com/18666451713.doudizhu这个svn上,大家可以下载T ...

  7. BMFont中文字体图集制作的方法~(for unity ngui)

    BMFont中文字体图集制作的方法~(for unity ngui) 好吧~似乎这个问题困扰了很多人,游戏开始中文化是个不错的事儿啊,这里我就做下说明,如何制作中文字体图集~ 这里的字库图集的制作更多 ...

  8. 自制Unity小游戏TankHero-2D(1)制作主角坦克

    自制Unity小游戏TankHero-2D(1)制作主角坦克 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的. ...

  9. Unity iOS混合开发界面切换思路

    Unity iOS混合开发界面切换思路 最近有很多博友QQ 私信 或则 留言联系我,请教iOS和Unity界面之前相互切换的问题,源代码就不私下发你们了,界面跳转功能的代码我直接贴到下面好了,顺带说i ...

随机推荐

  1. Android 官方命令深入分析

    原文:www.libgdx.cn Android SDK包括了多种工具来帮助你创建基于Android平台的移动应用.这些工具一般分成两类:SDK 工具和 platform 工具. SDK 工具是独立的 ...

  2. innodb结构解析工具---innodb_ruby

    1.下载ruby并安装ruby: ftp://ftp.ruby-lang.org/pub/ruby/ ftp://ftp.ruby-lang.org/pub/ruby/ruby-2.3-stable. ...

  3. iOS--NSAttributedString使用介绍

    iOS–NSAttributedString使用介绍 原文见: http://www.itnose.net/detail/6177538.html http://***/html/topnews201 ...

  4. 使用JExcel导出excel文件

    package org.aaa.portal.tools; import java.io.File; import java.io.IOException; import java.util.List ...

  5. Java基础知识强化之集合框架笔记32:集合之可变参数的概述和使用

    1. 可变参数的概述和使用: (1)可变参数:定义方法的时候不知道该定义多少个参数(2)格式:     修饰符  返回值类型  方法名(数据类型… 变量名){   }  注意: 这里的变量其实是一个数 ...

  6. AndroidStudio工程文件导入Jar包和So第三方库

    AndroidStudio 导入Jar包和第三方So库 在android开发中,需要导入许多第三方的jar包和so库来支持,包括像许多第三方的支持平台--友盟,环信.融云.极光推送.微博.腾讯等第三方 ...

  7. CSS3伪类nth-child结合transiton动画实现文字若影若现

    css3伪类nth-child结合transiton动画实现文字若影若现收先创建一个div盒子,然后包裹在div中的有10个span标签每个span标签填上内容一次为A,B,C,D,E,F,G,H,I ...

  8. vs2013下的WCFRest 模板开发WCF

    在vs2013下使用wcfRestservice40 是安装不成功的,尝试多遍,都是这样.查看以前vs2012做的wcfrest,经过调教,终于在vs2013下也可以了! 1.新建wcf服务应用程序 ...

  9. TCP与UDP区别

    原文链接:http://blog.sina.com.cn/s/blog_493309600100clrw.html TCP与UDP区别 TCP---传输控制协议,提供的是面向连接.可靠的字节流服务.当 ...

  10. [转帖]MATLAB曲线绘制及颜色类型

    信号源产生的方法 来源:http://www.2cto.com/kf/201401/270494.html  matlab的checkerboard说明,GOOD! 来源:http://www.chi ...