Unity NGUI 网络斗地主 -界面制作
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 网络斗地主 -界面制作的更多相关文章
- Unity NGUI 网络斗地主 -制作图集 Atlas
Unity NGUI 网络斗地主 -制作图集 Atlas by @杨海龙 开发环境 Win7+Unity4.2.1f4+NGUI 3.0.4版本 这一节告诉大家如何制作(图集)Atlas! 1.首 ...
- Unity NGUI 网络斗地主 -发牌 脚本交互
Unity NGUI 网络斗地主 -发牌 脚本交互 @By 灰太龙 Unity4.2.1f4 NGUI 3.0.4 本篇说的问题是脚本与控件的交互! 现在对界面进行了改进,先看副图! 1.制作发牌效果 ...
- Unity NGUI 3.0.4版本 制作网络版斗地主
Unity NGUI 3.0.4版本 @by 灰太龙 开发环境 Win7旗舰版 Unity 4.2.1f4 本文就写个开门篇,告诉大家怎么用NGUI,第一步导入NGUI 3.0.4版本! 1.启动U ...
- Unity网络斗地主 服务端
Unity网络斗地主 服务端 @by梦想之家2工作室 阿龙 已经做好了服务器框架,并且能实现服务器给客户端分牌的问题!
- Unity 网络斗地主 判断牌的类型
Unity 网络斗地主 牌的类型 web版本演示地址: http://www.dreamhome666.com/Desktop.html 在上个版本中,下面的角色在牌的后面,可以将角色做为一个P ...
- Unity 网络斗地主 牌的一些算法
Unity 网络斗地主 牌的一些算法 在这儿说一下,我的项目是用svn的方式,上传在https://v2.svnspot.com/18666451713.doudizhu这个svn上,大家可以下载T ...
- BMFont中文字体图集制作的方法~(for unity ngui)
BMFont中文字体图集制作的方法~(for unity ngui) 好吧~似乎这个问题困扰了很多人,游戏开始中文化是个不错的事儿啊,这里我就做下说明,如何制作中文字体图集~ 这里的字库图集的制作更多 ...
- 自制Unity小游戏TankHero-2D(1)制作主角坦克
自制Unity小游戏TankHero-2D(1)制作主角坦克 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的. ...
- Unity iOS混合开发界面切换思路
Unity iOS混合开发界面切换思路 最近有很多博友QQ 私信 或则 留言联系我,请教iOS和Unity界面之前相互切换的问题,源代码就不私下发你们了,界面跳转功能的代码我直接贴到下面好了,顺带说i ...
随机推荐
- android十六进制颜色代码转换为int类型数值
android开发中将十六进制颜色代码转换为int类型数值方法:Color.parseColor("#00CCFF")返回int数值;
- InstallShield 12 制作安装包
目 录 一. 二. 三. (一) 打开project... 2 (二) project助手页面... 3 1.Application Information:程序信息... 4 2.Installa ...
- android 16 带返回值的activity
main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" andro ...
- Compiling JSPs Using the Command-Line Compiler---官方
Web Server provides the following ways of compiling JSP 2.1-compliant source files into servlets: JS ...
- windows10UWP:Segoe MDL2 图标指南
windows10 UWP 开发中,图标的使用非常广泛.为此,微软建议大家使用 Segoe MDL2 Assets 字体来获取图标.Segoe MDL2 Assets 包括了哪里图标,微软在 http ...
- Eclipse / Android : “Errors running builder 'Android Pre Compiler' on project…”
Errors occurred during the build. Errors running builder 'Android Resource Manager' on project 'hell ...
- maven发布的资源文件到tomcat项目下
问题:项目中有hibernate的资源文件,src/main/java和src/main/resources都有这些文件,当启动项目时发现出错.但是src/main/java已经修改好了, 经查tom ...
- SQL Server Management Studio的对象资源管理器的使用
1.查看 2.对象资源管理器 3.点到某个表的身上 4.出现以下图片,因为有时动态创建的触发器,刷新表下面的触发器可能不出来,所以来这里面找
- hibernate4.3.8整合struts2过程中遇到的问题
1.遇到的异常: Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to ...
- IOS-textField
//初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, ...