protected virtual void Start() { if (qdtccc == null) { qdtccc = new QuadDistanceToClosestCornerComparer(); } }
protected override void Start() { base.Start(); if (qdtccc == null) { qdtccc = new QuadDistanceToClosestCornerComparer(); } if (tccps == null) { if (gameObject.GetComponentInChildren <TCCommonParametersSetter>() != null) { tccps = gameObject.GetComponentInChildren <TCCommonParametersSetter>(); } } if (NPS != null) { NPS.LoadAndInit(); } ReSetupQuads(); //NOTE : Force resetup on start. Reanimate(); //NOTE : Force uniforms setup on start. }
public Quad SetupSubQuad(QuadPosition quadPosition) { var go = new GameObject(string.Format("Quad_{0}", quadPosition)); var mesh = GodManager.Instance.PrototypeMesh; mesh.bounds = new Bounds(Vector3.zero, new Vector3(PlanetRadius * 2, PlanetRadius * 2, PlanetRadius * 2)); var quadComponent = go.AddComponent <Quad>(); quadComponent.Planetoid = this; quadComponent.QuadMesh = mesh; quadComponent.SetupCorners(quadPosition); var gc = QuadGenerationConstants.Init(TerrainMaxHeight); gc.planetRadius = PlanetRadius; quadComponent.Position = quadPosition; quadComponent.generationConstants = gc; quadComponent.ShouldDraw = false; if (qdtccc == null) { qdtccc = new QuadDistanceToClosestCornerComparer(); } Quads.Add(quadComponent); Quads.Sort(qdtccc); return(quadComponent); }
public Quad SetupSubQuad(QuadPosition quadPosition) { GameObject go = new GameObject(string.Format("Quad_{0}", quadPosition)); Mesh mesh = GetMesh(quadPosition); mesh.bounds = new Bounds(Vector3.zero, new Vector3(PlanetRadius * 2, PlanetRadius * 2, PlanetRadius * 2)); Material material = MaterialHelper.CreateTemp(ColorShader, "Quad"); Quad quadComponent = go.AddComponent <Quad>(); quadComponent.Planetoid = this; quadComponent.QuadMesh = mesh; quadComponent.QuadMaterial = material; quadComponent.SetupCorners(quadPosition); if (Atmosphere != null) { Atmosphere.InitUniforms(null, quadComponent.QuadMaterial, false); } QuadGenerationConstants gc = QuadGenerationConstants.Init(TerrainMaxHeight); gc.planetRadius = PlanetRadius; quadComponent.Position = quadPosition; quadComponent.generationConstants = gc; quadComponent.ShouldDraw = false; if (qdtccc == null) { qdtccc = new QuadDistanceToClosestCornerComparer(); } Quads.Add(quadComponent); Quads.Sort(qdtccc); return(quadComponent); }