public static void MarkForDestruction(SgtBeltGroup group) { if (group != null) { group.Belt = null; group.gameObject.SetActive(true); } }
public static SgtBeltModel Create(SgtBeltGroup group) { var model = SgtComponentPool<SgtBeltModel>.Pop("Model", group.gameObject.layer, group.transform); model.Group = group; group.Models.Add(model); return model; }
public static void Pool(SgtBeltGroup group) { if (group != null) { group.Belt = null; group.MainTex = null; group.HeightTex = null; group.Material = null; for (var i = group.Models.Count - 1; i >= 0; i--) { SgtBeltModel.Pool(group.Models[i]); } group.Models.Clear(); SgtComponentPool<SgtBeltGroup>.Add(group); } }
protected abstract void CalculateAsteroids(out List <SgtBeltAsteroid> asteroids, out bool pool); // pool == true when they are temporary protected virtual void UpdateGroupMaterial(SgtBeltGroup group) { if (group.Material == null) { group.Material = SgtHelper.CreateTempMaterial(SgtHelper.ShaderNamePrefix + "Belt"); } var scale = transform.lossyScale.x; var color = SgtHelper.Brighten(Color, Brightness); var renderQueue = (int)RenderQueue + RenderQueueOffset; var lightCount = SgtHelper.WriteLights(Lights, 2, transform.position, null, null, group.Material); var shadowCount = SgtHelper.WriteShadows(Shadows, 2, group.Material); SgtHelper.WriteLightKeywords(Lights.Count > 0, lightCount, keywords); SgtHelper.WriteShadowKeywords(shadowCount, keywords); group.Material.renderQueue = renderQueue; group.Material.SetTexture("_MainTex", group.MainTex); group.Material.SetTexture("_HeightTex", group.HeightTex); group.Material.SetColor("_Color", color); group.Material.SetFloat("_Scale", scale); group.Material.SetFloat("_Age", Age); }
protected virtual void UpdateGroupMaterial(SgtBeltGroup group) { if (group.Material == null) group.Material = SgtHelper.CreateTempMaterial(SgtHelper.ShaderNamePrefix + "Belt"); var scale = transform.lossyScale.x; var color = SgtHelper.Brighten(Color, Brightness); var renderQueue = (int)RenderQueue + RenderQueueOffset; var lightCount = SgtHelper.WriteLights(Lights, 2, transform.position, null, null, group.Material); var shadowCount = SgtHelper.WriteShadows(Shadows, 2, group.Material); SgtHelper.WriteLightKeywords(Lights.Count > 0, lightCount, keywords); SgtHelper.WriteShadowKeywords(shadowCount, keywords); group.Material.renderQueue = renderQueue; group.Material.SetTexture("_MainTex", group.MainTex); group.Material.SetTexture("_HeightTex", group.HeightTex); group.Material.SetColor("_Color", color); group.Material.SetFloat("_Scale", scale); group.Material.SetFloat("_Age", Age); }