在 Unity 中, `public static string` 和 `public string` 有以下主要区别:
1. **静态性质**:
- `public static string`: 这是一个静态变量, 它属于类本身, 而不是类的任何特定实例。这意味着可以直接通过类名来访问和修改这个变量, 而不需要创建类的实例。
- `public string`: 这是一个实例变量, 它属于类的特定实例。要访问或修改它, 需要先创建类的实例。
2. **内存分配**:
- `public static string`: 因为它是静态的, 所以只有一个实例, 存储在内存的静态存储区域, 整个应用程序都可以访问和修改它。
- `public string`: 每个类的实例都有自己的 `string` 变量, 它们存储在各自实例的内存空间中。
3. **生命周期**:
- `public static string`: 它的生命周期与整个应用程序的生命周期相同, 直到应用程序结束。
- `public string`: 它的生命周期与创建它的类实例相同, 当实例被销毁时, 它也会被销毁。
4. **使用场景**:
- `public static string`: 通常用于存储全局、常量或共享数据, 比如配置信息、静态文本等。
- `public string`: 通常用于存储与特定实例相关的数据, 比如对象的名称、描述等。
总的来说, `public static string` 更适用于需要在整个应用程序范围内访问和共享的数据, 而 `public string` 更适用于与特定对象实例相关的数据。根据具体需求, 合理选择使用哪种类型的变量可以让代码更加清晰和可维护。
在TCP通讯中客户端脚本文件SAEA.cs中创建变量receivedData用于接收消息
public static string receivedData;//接收的消息
创建track.cs脚本文件,创建变量stMessage用于接收跨脚本的 SAEA.cs中的receivedData消息
string stMessage = SAEA.receivedData;