예제 #1
0
    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;
    }
예제 #2
0
 public QuadFace GetQuadFace(QuadFaceType type)
 {
     return(_faces[(int)type]);
 }