/// <summary> /// Returns the mesh managers suitable for a shadow. /// </summary> /// <param name="shadow"> /// The shadow to get mesh manager for. /// </param> /// <returns> /// The <see cref="SS_ShadowMeshManager"/>. /// </returns> private SS_ShadowMeshManager GetMeshManager(SwiftShadow shadow) { SS_ShadowMeshManager meshManager; bool isExists = _meshManagers.TryGetValue(shadow.GetMeshManagerHashCode(), out meshManager); if (isExists) { return(meshManager); } if (shadow.Material == null) { throw new ArgumentNullException("shadow.Material"); } meshManager = new SS_ShadowMeshManager(shadow.Material, shadow.Layer, shadow.IsStatic); _meshManagers.Add(meshManager.GetInstanceHashCode(), meshManager); if (_isRecalculatingMesh) { _meshManagersNew.Add(meshManager); } return(meshManager); }
/// <summary> /// Returns the mesh managers suitable for a shadow. /// </summary> /// <param name="shadow"> /// The shadow to get mesh manager for. /// </param> /// <returns> /// The <see cref="SS_ShadowMeshManager"/>. /// </returns> private SS_ShadowMeshManager GetMeshManager(SwiftShadow shadow) { SS_ShadowMeshManager meshManager; bool isExists = _meshManagers.TryGetValue(shadow.GetMeshManagerHashCode(), out meshManager); if (isExists) { return meshManager; } if (shadow.Material == null) throw new ArgumentNullException("shadow.Material"); meshManager = new SS_ShadowMeshManager(shadow.Material, shadow.Layer, shadow.IsStatic); _meshManagers.Add(meshManager.GetInstanceHashCode(), meshManager); if (_isRecalculatingMesh) { _meshManagersNew.Add(meshManager); } return meshManager; }
public int GetMeshManagerHashCode() { int layer = _useForceLayer ? _forceLayer : gameObject.layer; return(SS_ShadowMeshManager.GetMeshManagerHashCode(_isStatic, _material, layer)); }