您的位置:首页 > 移动开发 > Unity3D

(3)unity入门,登陆页面NGUI,下

2015-07-17 14:13 567 查看
如果你运行了上篇文章的代码,你会发现界面很粗糙,操作起来也很费事,所以,这一节介绍NGUI的使用

下载链接:http://download.csdn.net/detail/mybbs2200/8908979

下载后关闭unity,然后放置到安装目录下的 如图的目录当中



放好后重新打开unity,然后右键点击assets->import package->NGUI2.3.4 导入

导入成功后会在unity的软件菜单中出现NGUI的选项。



...开始使用: 1.建立一个新场景,删除主摄像机,点击上图的NGUI,create a new UI出现下面的界面,创建一个Panel



然后选中Panel的情况下,点击NGUI->Create new widget,如图,在出现的窗口中添加对应的资源,最后点击7,成功显示到视图中

类似于添加上图中的sprite(精灵),模仿上篇添加输入条和按钮,布局如下。 具体参数自己改改,属性一栏很全的

暂时没有导入中文字体,所以只能英文输入。到此NGUI的方便性就体现了出来,灵活方便了点。

布局完界面如下:


其余NGUI内容:

Atlas maker ***一个图集,用于ImageButton的***,例如鼠标移动其上时大图片,点击后变另一种图片。这些细节需要美工***

使用中文字体:选中一个label后,右侧属性栏出现



点击1处选项,选择unity,此时的字体已经切换为unity的动态字体,而不再是NGUI的静态字体,font选择arial。 然后在2处输入要修改的内容,就可以显示中文。

要实现登陆,那么就要有客户端和服务端。这里用到了网络知识,详细见这篇译文,翻译国外教程文章

http://www.unitymanual.com/thread-41436-1-1.html

当你创建了服务器后,登陆才有意义。给主摄像机添加脚本 NetWorkScript.cs

using UnityEngine;
using System.Collections;
using System.Net.Sockets;

public class NetWorkScript  {//取消对MonoBehaviour的继承
    private static NetWorkScript instance;//全局单例对象
    private static Socket socket;
    private static string ip = "127.0.0.1";
    private static int port = 8899;
    public static NetWorkScript getInstance()
    {
        if (instance == null)
            instance = new NetWorkScript();
        return instance;
    }
    public static void init()
    {
        try
        {
            socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            socket.Connect(ip, port);
            Debug.Log("服务器连接成功!");
        }
        catch
        {
            Debug.Log("服务器连接失败!");
        }
    }

}
给登陆按钮添加脚本connServer.cs

附件:NGUI可以监听的一些方法


2.当需要访问UI下的子目录,且目录有多层时使用/





3.需设计拖动UI时,可以继承UIDragDropItem 类,增加collider。然后属性内点选Clone On Drag就可以在拖走后原地保留个克隆体。拖拽后在其他UI不显示时,可以重写

<pre name="code" class="csharp">protected override void OnDragDropStart(){//抓起
base.OnDragDropStart();
transform.parent = transform.root;
this.GetComponent<UISprite>().depth = 40;//设置深度
}
protected override void OnDragDropRelease(GameObject surface){//释放
base.OnDragDropRelease();
if(surface != null && surface.tag == Tags.yourTag){
surface.GetComponent<UI***>().Set**(id);
}
}



4.怪物的掉血text或者是misstext的显示,使用NGUI的HUDtext实现,在怪物的头上加一个empty ,然后代码里使用UITools.Add去生成HUDtext。HUDtext可使用UIFollowtarget来实现跟随。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: