unity 通过字符串引用全局变量
时间: 2024-09-20 07:12:40 浏览: 46
在Unity中,如果你想通过字符串引用全局变量,通常的做法是使用` PlayerPrefs` 或者 `ScriptableObjects`。这两个都是Unity内置的数据存储机制:
1. `PlayerPrefs`: 这是一个用于持久化数据的简单API,你可以通过字符串键(key)来读取或设置全局整数、浮点数、字符串等值。例如,创建一个全局字符串变量:
```csharp
public static string GlobalVariableKey = "MyGlobalString";
void SaveGlobalValue(string value) {
PlayerPrefs.SetString(GlobalVariableKey, value);
}
string GetGlobalValue() {
return PlayerPrefs.GetString(GlobalVariableKey);
}
```
2. `ScriptableObject`: 如果你需要更复杂的数据结构,可以创建一个脚本组件(ScriptableObject),并将其字段设为公共属性,然后通过字符串名称访问其实例的属性。
```csharp
[CreateAssetMenu(fileName = "NewGlobalVariable", menuName = "Global Variables")]
public class GlobalVariable : ScriptableObject
{
public string MyGlobalString;
}
// 使用时
GlobalVariable myVariable = Resources.Load<GlobalVariable>("MyGlobalVariable");
string globalValue = myVariable.MyGlobalString;
```
阅读全文