unity3D 一个脚本里的值,在另一个脚本里改变,怎么在原脚本重新调用?

我在TaktTime脚本里设置里一个共有的float类型的变量intervalTime,并且在协程里调用了,然后我在另一个脚本里调用TaktTime脚本里的interva... 我在TaktTime脚本里设置里一个共有的float类型的变量intervalTime,并且在协程里调用了,然后我在另一个脚本里调用TaktTime脚本里的intervalTime,并且改变了他的值,如何在原脚本里的协程重新调用,我这个在其他脚本里改变了的intervalTime变量的值 展开
 我来答
若以下回答无法解决问题,邀请你更新回答
云南新华电脑学校
2020-11-18 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
展开全部

您好,你的问题,我之前好像也遇到过,以下是我原来的解决思路和方法,希望能帮助到你,若有错误,还望见谅!展开全部

C# 中没有全局变量,你是不是指成员变量(用 UnityScript 语言只是省略的类名,那里看上去的全局变量其实也是成员变量)。

有好几种方法都可以

  1. 把另一个类中的成员做成 static 的,用 MyClass.member 的方法调用

2. 把另一个类(继承于 MonoBehaviour)做出单件模式,用类似下面的方法:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15


private static MyClass instance;

public static MyClass Instance {

get {

// This should NEVER happen, so we want to know about it if it does

if (instance == null) {

Debug.LogError("MyClass instance does not exist");

}

return instance;

}

}


void Awake()

{

instance = this;

}


3. 因为 MonoBehaviour 的本身就是 Component,所以一个继承于 MonoBehaviour 的行为脚本本质上和 Transform、Collider 等一样是游戏对象组件。首先拿到这个脚本挂载的 gameObject(如果两个脚本挂载在一个 gameObject 下就不用得到,因为默认就是当前 gameObject),用 gameObject.GetComponent<MyClass>() 得到另一个类的运行实例。非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式