Unity.3D中,两个界面各自脚本中的变量如何调用

初学

如何把一个对象文本里面的值传递到另外一个对象文本上:

1、在需要被调用的文本中声明静态变量,在文本中给静态变量赋值,然后在调用的文本中用类名调用,程序关闭后,程序自动删除静态变量所赋的值;

  例如最简单的注册和登录界面:

    //在注册界面绑定脚本Register:

using UnityEngine;

using System.Collections;

using UnityEngine.UI;

public class RegisterGame : MonoBehaviour

{

  public static string userName;//存储名字

  public static string password;//存储密码

  public InputField nameInput;//名字输入框

  public InputField pswInput;//密码输入框

      //声明一个绑定确认按钮的方法,给静态变量赋值

  public void RegisterButton()

  {

  userName =nameInput.text;

  password = pswInput.text;

  //界面转换省略

  }

}

//在登录界面绑定脚本Game:

using UnityEngine;

using System.Collections;

using UnityEngine.UI;

public class Game : MonoBehaviour

{

  public GameObject registerPannel;//两个界面关联

  public InputField nameInput;//输入姓名框

  public InputField pswInput;//输入密码框

  public void LandingButton()

  {

     if (nameInput.text!=Register.userName) //直接用类名调取静态变量

    {

    aletText.text = "用户名不存在";

    }

    else if (pswInput.text!=Register.password)

    {

    aletText.text = "密码错误";

    }

    else {

    //去主界面

    print("去主界面");

    }  

  }

}

2、在程序的缓存集里面存数据PlayerPrefs,程序结束后保存本地;

在被调用脚本中获取值PlayerPrefs.SetString(String Key,String Input)

在调用脚本中利用String key 获取值 PlayerPrefs.GetString(String Key)

代码如上稍作更改:

在注册界面:

  public void RegisterButton()

  {

  PlayerPrefs.SetString("123",nameInput.text);//获取输入的名称

  }

  在登陆界面:

  public void LandingButton()

  {

  //获取变量

  PlayerPrefs.GetString("123");

  }  

3、GetComponent<>()获取组件

Register game = registerJimian. GetComponent<Register>() ;
Ltext.text = game.Rtext.text;

这是我在初学的时候所作的笔记,曾经这个问题困扰我两天,可能资质比较愚钝,上网搜索也没有搜索到解决方式;

希望学代码的人或者前辈高手,保持初心;

祝事业有成

温故知新,方便自己回顾使用
原文地址:https://www.cnblogs.com/zjka/p/10494490.html