static internal bool GetSpawnHandler(NetworkHash128 assetId, out SpawnDelegate handler) { if (s_SpawnHandlers.ContainsKey(assetId)) { handler = s_SpawnHandlers[assetId]; return(true); } handler = null; return(false); }
static internal bool InvokeUnSpawnHandler(NetworkHash128 assetId, GameObject obj) { if (s_UnspawnHandlers.ContainsKey(assetId) && s_UnspawnHandlers[assetId] != null) { UnSpawnDelegate handler = s_UnspawnHandlers[assetId]; handler(obj); return(true); } return(false); }
internal void SetDynamicAssetId(NetworkHash128 newAssetId) { if (!m_AssetId.IsValid() || m_AssetId.Equals(newAssetId)) { m_AssetId = newAssetId; } else { if (LogFilter.logWarn) { Debug.LogWarning("SetDynamicAssetId object already has an assetId <" + m_AssetId + ">"); } } }
static internal bool GetPrefab(NetworkHash128 assetId, out GameObject prefab) { if (!assetId.IsValid()) { prefab = null; return(false); } if (s_GuidToPrefab.ContainsKey(assetId) && s_GuidToPrefab[assetId] != null) { prefab = s_GuidToPrefab[assetId]; return(true); } prefab = null; return(false); }
// ------------------------ NetworkScene pass-throughs --------------------- static internal string GetStringForAssetId(NetworkHash128 assetId) { GameObject prefab; if (NetworkScene.GetPrefab(assetId, out prefab)) { return(prefab.name); } SpawnDelegate handler; if (NetworkScene.GetSpawnHandler(assetId, out handler)) { return(handler.GetMethodName()); } return("unknown"); }
static internal void RegisterSpawnHandler(NetworkHash128 assetId, SpawnDelegate spawnHandler, UnSpawnDelegate unspawnHandler) { if (spawnHandler == null || unspawnHandler == null) { if (LogFilter.logError) { Debug.LogError("RegisterSpawnHandler custom spawn function null for " + assetId); } return; } if (LogFilter.logDebug) { Debug.Log("RegisterSpawnHandler asset '" + assetId + "' " + spawnHandler.GetMethodName() + "/" + unspawnHandler.GetMethodName()); } s_SpawnHandlers[assetId] = spawnHandler; s_UnspawnHandlers[assetId] = unspawnHandler; }
public void Write(NetworkHash128 value) { Write(value.i0); Write(value.i1); Write(value.i2); Write(value.i3); Write(value.i4); Write(value.i5); Write(value.i6); Write(value.i7); Write(value.i8); Write(value.i9); Write(value.i10); Write(value.i11); Write(value.i12); Write(value.i13); Write(value.i14); Write(value.i15); }
static internal void RegisterPrefab(GameObject prefab, NetworkHash128 newAssetId) { NetworkIdentity view = prefab.GetComponent <NetworkIdentity>(); if (view) { view.SetDynamicAssetId(newAssetId); if (LogFilter.logDebug) { Debug.Log("Registering prefab '" + prefab.name + "' as asset:" + view.assetId); } s_GuidToPrefab[view.assetId] = prefab; } else { if (LogFilter.logError) { Debug.LogError("Could not register '" + prefab.name + "' since it contains no NetworkIdentity component"); } } }
static public void UnregisterSpawnHandler(NetworkHash128 assetId) { s_SpawnHandlers.Remove(assetId); s_UnspawnHandlers.Remove(assetId); }
static public void UnregisterSpawnHandler(NetworkHash128 assetId) { NetworkScene.UnregisterSpawnHandler(assetId); }
static public void RegisterSpawnHandler(NetworkHash128 assetId, SpawnDelegate spawnHandler, UnSpawnDelegate unspawnHandler) { NetworkScene.RegisterSpawnHandler(assetId, spawnHandler, unspawnHandler); }
// this assigns the newAssetId to the prefab. This is for registering dynamically created game objects for already know assetIds. static public void RegisterPrefab(GameObject prefab, NetworkHash128 newAssetId) { NetworkScene.RegisterPrefab(prefab, newAssetId); }
void AssignAssetID(GameObject prefab) { string path = AssetDatabase.GetAssetPath(prefab); m_AssetId = NetworkHash128.Parse(AssetDatabase.AssetPathToGUID(path)); }