コード例 #1
0
    // Use this for initialization
    void Start()
    {
        mapSize = MyGameScript.getInstance().sizeTerrain;

        myTerrain       = new GameObject[mapSize, mapSize];
        myTerrainScript = new MyTerrainScript[mapSize, mapSize];

        // myMaterial.SetColor("_Color1",new Color(0,1,1,0.5f));

        float[,] map = PreMapGenerator.generateMap(width, height, mySeed, totalRoads);
        MyGameScript.getInstance().myMap  = map;
        MyGameScript.getInstance().width  = width;
        MyGameScript.getInstance().height = height;
        myMaterial.SetInt("_init", 1);
    }
コード例 #2
0
    private int expectMyLOD()
    {
        Vector3 pos = MyGameScript.getInstance().myCurPos;

        pos = pos - position;
        float dist = pos.sqrMagnitude;

        for (int i = 0; i < myLODs.Length; i++)
        {
            if (dist < myLODs[i] * myLODs[i])
            {
                return(i);
            }
        }

        return(myLODs.Length);
    }
コード例 #3
0
    // Update is called once per frame
    void Update()
    {
        MyGameScript.getInstance().myCurPos = cam.transform.position;
        int temp = expectMyLOD();

        if (currentLod != temp || temp == myLODs.Length)
        {
            currentLod = temp;
            Debug.Log("My Current LOD : " + position + " : " + currentLod);
            if (currentLod == myLODs.Length)
            {
                setActiveState(false);
            }
            else
            {
                generateMesh(currentLod);
            }
        }
    }
コード例 #4
0
    // Use this for initialization
    void Start()
    {
        meshFilter   = GetComponent <MeshFilter>();
        meshRenderer = GetComponent <MeshRenderer>();
        maxHieght    = 10f;

        currentLod = -1;

        MyGameScript.getInstance().myLODs = myLODs;
        rand = new System.Random();

        position = transform.position;
        //transform.position=Vector3.zero;

        cam = Camera.main;

        //TODO Do the changes here
        //generateObjects();
    }
コード例 #5
0
    private void generateMesh(int lod)
    {
        lod = myLODs.Length - lod;
        Debug.Log("Generate at : " + transform.position);
        //meshFilter.mesh = MeshGenerator.generateMesh(NormalMapsScript.GenerateNoiseMap(31, 31, 10.3f, true), 0, 0, maxHieght, lod).createMesh();
        float[,] map = new float[101, 101];
        int xt = (int)transform.position.x + MyGameScript.getInstance().width / 2;
        int yt = (int)transform.position.z + MyGameScript.getInstance().height / 2;

        for (int y = -50; y <= 50; y++)
        {
            for (int x = -50; x <= 50; x++)
            {
                map[x + 50, y + 50] = MyGameScript.getInstance().myMap[xt + x, yt + y];
            }
        }
        meshFilter.mesh = MeshGenerator.generateMesh(map, 0, 0, 1, lod).createMesh();
        if (!objectGenerated)
        {
            generateObjects(map);
            objectGenerated = false;
        }
    }