在Unity中使用全局变量的操作
作者:阿晚喵 时间:2022-12-30 13:18:47
创建一个脚本,输入下面的代码。脚本不需要添加到任何物体上,globle变量可以跨场景全局调用。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Globle {
public static int globle= 1;
}
和以前的许多语言不同,C#没有全局变量或全局函数。C#的所有字段和方法都在类的上下文中。
在C#中,与全局字段或函数等价的是静态字段或方法。
“全局变量/函数”和“C#静态字段/方法”在功能上没有差异,只是静态字段/方法可包含访问修饰符(比如private),从而限制访问并提供更好的封装。——《c# 7.0本质论》
补充:Unity中全局变量的赋值过程
使用Unity开发的朋友可能会遇到这样一个问题,那就是我在脚本中定义了一个公共全局变量并且赋值,但是运行后发现这个变量并不是这个值,这里就给大家解释一下原因。
代码如下:
public class Test : MonoBehaviour {
public int a = 10;
void Awake()
{
a = 20;
}
void Start () {
a = 30;
}
}
由于是public类型,所以变量a会在Unity面板中显示出来,如下图:
那么这个变量a的赋值顺序是怎样的呢?
1.首先a的值是定义时赋的值10。
2.然后a的值被Unity面板中的15替换。
3.然后a的值被Awake中的20替换。
4.然后a的值被Start中的30替换。
看到这个结果相信大家都知道原因了,要初始化的公共变量最好放到start中,而不要相信定义时的效果。当然你也可以使用[HideInInspector]让变量不显示在Unity面板中。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
标签:Unity,全局变量
0
投稿
猜你喜欢
Shiro 控制并发登录人数限制及登录踢出的实现代码
2023-09-18 02:03:56
解决try-catch捕获异常信息后Spring事务失效的问题
2022-11-15 03:17:33
解决EditText不显示光标的三种方法(总结)
2023-09-19 08:05:10
Java二维数组与稀疏数组相互转换实现详解
2022-10-28 07:27:33
Android程序美化之自定义ListView背景的方法
2023-12-13 17:52:57
Java编程中的4种代码块详解
2022-01-04 03:10:20
Unity 使用tiledmap解析地图的详细过程
2023-06-02 18:40:57
java常量字符串过长报错的解决办法以及原因分析
2023-10-18 10:15:25
SpringBoot中如何对actuator进行关闭
2022-11-30 01:56:37
JAVA实现LRU算法的参考示例
2022-01-26 21:56:49
C#实现简单串口通讯实例
2022-06-18 11:29:42
java dump文件怎么生成和分析-JMAP用法详解
2021-06-03 23:59:43
使用c#+IMap实现收取163邮件
2023-07-21 22:44:31
Android实现Activity、Service与Broadcaster三大组件之间互相调用的方法详解
2023-04-09 08:51:30
Android 开发之dataBinding与ListView及事件
2023-10-13 21:14:28
Android实现九格智能拼图算法
2021-11-07 22:40:11
C# DataSet的内容写成XML时如何格式化字段数据
2023-04-14 09:01:28
Mybatis返回插入的主键问题解决方案
2023-05-06 02:58:03
Spring Boot使用profile如何配置不同环境的配置文件
2023-11-25 12:52:36
Springboot+Mybatis-plus不使用SQL语句进行多表添加操作及问题小结
2021-09-30 10:31:10