Example #1
0
    // Use this for initialization
    void Start()
    {
        completeRenderer.DestryMesh();

        DiscreteInt2Generator.param_AnglePeriod     = param_AnglePeriod;
        DiscreteInt2Generator.param_AngleAmplitude  = param_AngleAmplitude;
        DiscreteInt2Generator.param_AngleAmplitude  = param_AngleAmplitude;
        DiscreteInt2Generator.param_RadiusPeriod    = param_RadiusPeriod;
        DiscreteInt2Generator.param_RadiusAmplitude = param_RadiusAmplitude;
        DiscreteInt2Generator.param_RadiusOffset    = param_RadiusOffset;
        DiscreteInt2Generator.param_SegDecMin       = param_SegDecMin;
        DiscreteInt2Generator.param_SegDecMax       = param_SegDecMax;
        DiscreteInt2Generator.param_SegDecPeriod    = param_SegDecPeriod;
        DiscreteInt2Generator.generationMode        = generationMode;
        //DiscreteInt2Generator.param_Circles = param_Circles;
        //DiscreteInt2Generator.param_Circles_Radius = param_Circles_Radius;
        //DiscreteInt2Generator.param_Circles_Use = param_Circles_UseCustom;

        if (circlesGeneration.CirclesMidpoints.Length == 0)
        {
            circlesGeneration.DoProc(seed, param_goalLength);
        }

        DiscreteInt2Generator.param_Circles           = new Vector2[circlesGeneration.CirclesMidpoints.Length];
        DiscreteInt2Generator.param_Circles_Ins       = new Vector2[circlesGeneration.CirclesMidpoints.Length];
        DiscreteInt2Generator.param_Circles_Outs      = new Vector2[circlesGeneration.CirclesMidpoints.Length];
        DiscreteInt2Generator.param_Circles_Radius    = new float[circlesGeneration.CirclesMidpoints.Length];
        DiscreteInt2Generator.param_Circles_Clockwise = new bool[circlesGeneration.CirclesMidpoints.Length];
        DiscreteInt2Generator.param_BetwLB            = circlesGeneration.BetwLBs;
        DiscreteInt2Generator.param_BetwLT            = circlesGeneration.BetwLTs;
        DiscreteInt2Generator.param_BetwRB            = circlesGeneration.BetwRBs;
        DiscreteInt2Generator.param_BetwRT            = circlesGeneration.BetwRTs;

        DiscreteInt2Generator.param_Circles_Use = circlesGeneration.CirclesMidpoints.Length > 0;

        for (int i = 0; i < circlesGeneration.CirclesMidpoints.Length; i++)
        {
            if (circlesGeneration.CirclesMidpoints[i].x != 0f && circlesGeneration.CirclesMidpoints[i].z != 0f)
            {
                DiscreteInt2Generator.param_Circles_Use = true;
            }

            DiscreteInt2Generator.param_Circles[i]           = new Vector2(circlesGeneration.CirclesMidpoints[i].x, circlesGeneration.CirclesMidpoints[i].z);
            DiscreteInt2Generator.param_Circles_Ins[i]       = new Vector2(circlesGeneration.CirclesIns[i].x, circlesGeneration.CirclesIns[i].z);
            DiscreteInt2Generator.param_Circles_Outs[i]      = new Vector2(circlesGeneration.CirclesOuts[i].x, circlesGeneration.CirclesOuts[i].z);
            DiscreteInt2Generator.param_Circles_Radius[i]    = circlesGeneration.CirclesRadius[i];
            DiscreteInt2Generator.param_Circles_Clockwise[i] = circlesGeneration.CirclesClockwise[i];
        }



        if (terrainModifier == null)
        {
            terrainModifier = new TerrainModifier(terrain);
        }

        meshFilter   = GetComponent <MeshFilter>();
        meshCollider = GetComponent <MeshCollider>();

        if (jobGenerateTrack != null && jobGenerateTrack.IsDone == false)
        {
            jobGenerateTrack.Abort();
            jobGenerateTrack = null;
        }

        if (jobGenerateTrack == null || jobGenerateTrack.IsDone)
        {
            jobGenerateTrack = new JobGenerateTrack();
            if (firstStart)
            {
                firstStart            = false;
                jobGenerateTrack.Seed = 58528152;
            }
            else
            {
                jobGenerateTrack.Seed = seed;
            }
            jobGenerateTrack.Width           = width;
            jobGenerateTrack.Suppliers       = supplyers;
            jobGenerateTrack.Terrain         = terrain;
            jobGenerateTrack.TerrainModifier = terrainModifier;


            //jobGenerateTrack.Track = DiscreteInt2Generator.GenerateTrack(10f, width, Seed);

            jobGenerateTrack.Start();
        }
    }