在Unity中使用全局变量的操作

 更新时间:2021年04月13日 15:20:07   作者:阿晚喵  
这篇文章主要介绍了在Unity中使用全局变量的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

创建一个脚本,输入下面的代码。脚本不需要添加到任何物体上,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面板中。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • C#提取PDF中指定文本与图片坐标的示例代码

    C#提取PDF中指定文本与图片坐标的示例代码

    这篇文章主要为大家详细介绍了如何使用国产PDF库通过C# 提取PDF中指定文本或图片的坐标位置(X, Y轴),感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • C#线程间通信的异步机制

    C#线程间通信的异步机制

    这篇文章介绍了C#线程间通信的异步机制,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 浅谈C#中简单的异常引发与处理操作

    浅谈C#中简单的异常引发与处理操作

    这篇文章主要介绍了C#中简单的异常引发与处理操作,讲到了Exception类和try...catch及throw语句的基本使用,需要的朋友可以参考下
    2016-02-02
  • 利用C#9.0新语法如何提升if语句美感

    利用C#9.0新语法如何提升if语句美感

    这篇文章主要给大家介绍了关于利用C# 9.0新语法如何提升if语句美感的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • C#中如何生成安装包

    C#中如何生成安装包

    这篇文章主要介绍了C#中如何生成安装包问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • C#、.Net中把字符串(String)格式转换为DateTime类型的三种方法

    C#、.Net中把字符串(String)格式转换为DateTime类型的三种方法

    这篇文章主要介绍了C#、.Net中把字符串(String)格式转换为DateTime类型的三种方法,本文总结了Convert.ToDateTime(string)、Convert.ToDateTime(string, IFormatProvider)、DateTime.ParseExact()三种方法,需要的朋友可以参考下
    2015-07-07
  • 基于C#实现语音识别功能详解

    基于C#实现语音识别功能详解

    在.NET4.0中,可以借助System.Speech组件让电脑来识别我们的声音。本文将利用该组件实现语音识别功能,文中实现过程讲解详细,需要的可以参考一下
    2022-04-04
  • unity实现手游虚拟摇杆

    unity实现手游虚拟摇杆

    这篇文章主要为大家详细介绍了unity实现手游虚拟摇杆,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • C#绘制实时曲线的方法

    C#绘制实时曲线的方法

    这篇文章主要为大家详细介绍了C#绘制实时曲线的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 详解C#App.config和Web.config加密

    详解C#App.config和Web.config加密

    本篇文章给大家分享了C#App.config和Web.config加密的相关知识点以及具体代码步骤,有兴趣的朋友参考学习下。
    2018-05-05

最新评论