private void AddFace(QuadFaceType type, float size, GameObject player, int startingSubdivisions, float[] subdivisionDistances, QuadTriangleCache cache) { string faceName = type.ToString(); var empty = new GameObject(faceName); empty.transform.parent = gameObject.transform; empty.layer = gameObject.layer; empty.transform.position = transform.position; empty.transform.rotation = transform.rotation; switch (type) { case QuadFaceType.YPosTop: empty.transform.Rotate(Vector3.left, 90); empty.transform.Rotate(Vector3.up, 180); break; case QuadFaceType.YNegBottom: empty.transform.Rotate(Vector3.right, 90); empty.transform.Rotate(Vector3.up, 180); break; case QuadFaceType.XNegLeft: empty.transform.Rotate(Vector3.up, 90); break; case QuadFaceType.XPosRight: empty.transform.Rotate(Vector3.down, 90); break; case QuadFaceType.ZPosFront: empty.transform.Rotate(Vector3.up, 180); break; } empty.transform.Translate(Vector3.back * (size / 2)); QuadFace face = empty.AddComponent <QuadFace>(); face.Root = this; face.FaceType = type; face.Size = size; face.Player = player; face.Subdivisions = startingSubdivisions; face.SubdivisionDistances = subdivisionDistances; face.TriangleCache = cache; face.StartingNoiseFrequency = StartingNoiseFrequency; face.StartingNoiseAmplitude = StartingNoiseAmplitude; face.SmoothNegativeElevations = SmoothNegativeElevations; face.Active = true; face.Initialise(); _faces[(int)type] = face; }
public QuadFace GetQuadFace(QuadFaceType type) { return(_faces[(int)type]); }