此类用于从服务器同步到客户端的结构列表。
要使用 SyncListStruct,请将结构用作泛型参数派生一个新类。
using UnityEngine; using UnityEngine.Networking;
public class MyScript : NetworkBehaviour { public struct POW { public int pow; public float f; }
public class SyncListPOW : SyncListStruct<POW> { }
public SyncListPOW m_pows = new SyncListPOW(); }
确保您的结构成员为非静态公共成员。\
我们允许在您的结构中使用以下类型:
• 基本类型(byte、int、float、string 和 UInt64 等)\
• 内置 Unity 数学类型(Vector3、四元数等)\
• 基本类型数组\
• 包含允许类型的其他结构\
• NetworkIdentity \
• NetworkInstanceId\
• NetworkHash128\
• 附加 NetworkIdentity 组件的游戏对象。
系统将为此新类自动生成序列化方法。
Callback | 用于 SyncListChanged 的委托类型。 |
Count | 返回此 SyncList<T> 中的元素数量。 |
IsReadOnly | 报告 SyncList<T> 是否为只读。 |
Add | 与 List:Add() 相同,但该项已添加到客户端。 |
Clear | 与 List:Clear() 相同,但客户端上已清除该列表。 |
Contains | 确定列表是否包含 item 项。 |
CopyTo | 从特定的数组索引开始,将 SyncList<T> 的元素复制到数组中。 |
Dirty | 将列表中的一个项标记为“脏”,这样它将会在客户端上更新。 |
GetEnumerator | 返回遍历 SyncList<T> 的枚举器。 |
HandleMsg | 用于远程列表操作的内部函数。 |
IndexOf | 确定 SyncList<T> 中特定项的索引。 |
InitializeBehaviour | 内部函数。 |
Insert | 与 List::Insert() 相同,但还会插入到客户端上的列表中。 |
Remove | 与 List:Remove 相同,只是还会在客户端上删除。 |
RemoveAt | 与 List:Remove 相同,只是它还会在客户端上删除索引。 |
DeserializeItem | 从流中反序列化 SyncList 项时使用此方法。 |
SerializeItem | 此方法用于将值对象从 SyncList 写入流。 |
SyncListChanged | 一种可以填充的委托,以便在列表发生更改时接收回调。 |