unity中怎样调用其他脚本变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity中怎样调用其他脚本变量相关的知识,希望对你有一定的参考价值。
(1)你这样写的前提是,A 和 B 必须同时实例化到同一个gameObject上(这两个脚本得同时应用到一个物体上),否则你的a = GetComponent()肯定为null ,因为B调用这个Get,而他本身所处的gameObject本没有A这个脚本组件,A的实例在另一个物体上。 估计这是你报错的一个原因。(2)用static声明全局变量似乎没必要,static的作用应该是让变量在类被实例之前就得到实例化。用static的话,那么应该是要达到这样的 参考技术A 1.新建两个脚本,在脚本2中实例化脚本1。
2.在脚本2中用脚本1实例化对象调用脚本1中的公有变量,赋初值。
3.创建两个物体,将两个脚本绑定不同物体。
4.将物体1拖拽到脚本2的变量上进行赋值。
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");
}
这是我在初学的时候所作的笔记,曾经这个问题困扰我两天,可能资质比较愚钝,上网搜索也没有搜索到解决方式;
希望学代码的人或者前辈高手,保持初心;
祝事业有成
以上是关于unity中怎样调用其他脚本变量的主要内容,如果未能解决你的问题,请参考以下文章
在unity3D: c# 怎样调用另外一个c#脚本里面东西?