找回密码
 立即注册
查看: 4754|回复: 89

[基础] 关于游戏登陆场景和注册场景

  [复制链接]
发表于 2015-1-16 16:47 | 显示全部楼层 |阅读模式
资源信息 Tutorial Information
教程名称: 关于unity3d游戏登陆场景和注册场景(发帖教程)
适用引擎:   (适用引擎,为空默认为Unity)
教程语种: 中文
教程等级: 1
教程格式: 图文(请用IE9以上浏览器访问本版块)
教程作者: 作者 (如有问题请短消息联系作者或发表回复)
下载地址: (兑换积分)
点击查看原图
美丽分割线
刚看完蛮牛教育上卡牌的教程,自己动手做了一下,把做的过程中的一些心得分享给大家,如果有讲不得不够细致的话,欢迎提问。
  首先制作背景图片,在ngui中插入一个texture,把选好的背景图片放入texture中,在texture组件上添加一个uistretch脚本(自适应屏幕大小),把其属性中的style调成both,如图所示  。如果感觉画面失真了,点击你的图片,把其属性中的texture type调成advanced,然后把generate mip map选项后面的勾去了就好了  ,这样我们的背景图片就做好了。
然后用ngui自带的组件,拖上去两个input(输入框)组件,再拖进去两个label组件,最后再拖入两个button组件,可以根据自己的喜欢,再加一个label当做游戏的标题,把所有添加的组件放入panel中,这样比较好操作,效果如图所示 下面把注册时的界面搭建好,原理都是一样了,最后的效果如图

下面要写代码来控制所有要触发的事件了,在我们uiroot中的摄像机上创建一个脚本gameSence,然后我先口述一下大概流程,随后就贴上代码(其实很简单的几句),在登录界面上需要有交互功能的就两个按钮,一个注册一个进入游戏,进入游戏先不管,因为这个涉及到与服务器连接的一些知识,本人小白,还没涉及到,等涉及到的时候一定会跟大家分享一下,言归正传,还一个按钮就是注册,当点击注册的时候,就会弹到注册的界面中,也就是把当前的登录界面隐藏掉,显示出咱们得注册界面,在咱们得注册界面中,涉及到交互的按钮也是两个,一个提交,一个返回,提交按钮涉及到用户填写的账号要提交的数据库中,并且提交成功后要返回登录界面,咱们只做返回登录界面的这个功能,其实跟登录界面跳转到注册界面是一个概念,还有一个返回按钮,也是跳转到登录页面。因为以后肯定要跟服务器有一个交互的过程,所以在用户点击进入游戏按钮也好,还是注册页面中的提交按钮也好,在与服务器通讯的过程中,要防止用户再次操作,所以要另见一个panel,里面放入一个sprite和一个label,把sprite的透明度调成1(!!!注意,一定不要调成0,调成0unity就不会渲染,那咱的层级设定就没有意义了,这也算unity的一个小bug吧),这样就用户就点击不了任何组件了。当通讯完成的时候,再取消这个panel,用户就可以再次操作了。大概思路就是这样,废话不多说,贴上我的代码,供大家参考,也希望大神挑出我的毛病,哦对了,在说一点,在建父物体的时候,我都是用的panel,我觉得应该用gameobject,因为用panel会增大draw call,对优化有一定的帮助。

using UnityEngine;
using System.Collections;

public class gameSence : MonoBehaviour {
   //登录场景
   public GameObject sence1;
   //注册场景
   public GameObject sence2;
   //Loading场景
   public GameObject sence3;
   //注册场景中账号的输入
   public UIInput r_name;
   //注册场景中第一次密码的输入
   public UIInput r_pwd;
   //注册场景中第二次密码的输入
   public UIInput r_pwdok;
         //Use this for initialization
         voidStart () {
       //显示场景1
       sence1.SetActive(true);
       //不显示场景2
       sence2.SetActive(false);
       //不显示Loading场景
       sence3.SetActive(false);
         }
         //Update is called once per frame
         voidUpdate () {
         }
   //登录场景切换到注册场景
   public void change() {
       //不显示场景1
       sence1.SetActive(false);
       //显示场景2
       sence2.SetActive(true);
    }
   //注册场景切换到登录场景
   public void toChange() {
        //显示场景1
       sence1.SetActive(true);
       //不显示场景2
       sence2.SetActive(false);
    }
   //当点击运行(go)按钮的时候触发的事件
   public void sendToServer() {
       //Loading场景,防止用户误操作
       sence3.SetActive(true);
       //向服务器发送数据
    }
   public void r_name_input() {
       //如果账户输入为空
       if (r_name.value == null || r_name.value == "") {
           print("请输入账号");
           return;
       }
       //如果两次密码输入的值不相同
       if (r_pwd.value != r_pwdok.value) {
           print("两次密码输入不相同");
           return;

       }
     }
}


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2015-1-17 18:20 | 显示全部楼层
赞,自己动手的确实容易学,交流方便
发表于 2015-1-19 09:01 | 显示全部楼层
实践出真知,自己动手才是王道
发表于 2015-1-24 16:41 | 显示全部楼层
不错!
赞一个!
发表于 2016-8-6 12:20 | 显示全部楼层

不错 不错 不错
发表于 2016-8-7 15:53 | 显示全部楼层

感谢楼主的无私分享!
发表于 2016-8-7 15:55 | 显示全部楼层
支持支持 谢谢分享~
发表于 2016-8-7 20:27 | 显示全部楼层
很棒的教程
发表于 2016-8-8 10:24 | 显示全部楼层

不错 不错 不错
发表于 2016-8-17 06:49 | 显示全部楼层

不错 不错 不错
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-22 06:32 , Processed in 0.104416 second(s), 32 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表