コード例 #1
0
    public void CreateObject(EnvironmentType envtype, Vector3 startPos)
    {
        EnvironmentObject e         = Factory.Instance.InitializeObject(envtype, startPos);
        Vector3           tempCoord = e.transform.position - terr.gameObject.transform.position;
        Vector3           terrainCoord;

        terrainCoord.x = tempCoord.x / terr.terrainData.size.x;
        terrainCoord.y = tempCoord.y / terr.terrainData.size.y;
        terrainCoord.z = tempCoord.z / terr.terrainData.size.z;
        e.Initialize();
        enemyList.Add(e);

        int X = (int)(terrainCoord.x * terr.terrainData.heightmapWidth);
        int Y = (int)(terrainCoord.z * terr.terrainData.heightmapHeight);

        if (X < 0 || Y < 0 || X > terr.terrainData.heightmapWidth - 2 || Y > terr.terrainData.heightmapHeight - 2)
        {
            BugFinished(e);
        }
        else
        {
            float   height       = terr.terrainData.GetHeights(X, Y, 1, 1)[0, 0];
            Vector3 newHeightPos = e.transform.position;
            newHeightPos.y       = height * terr.terrainData.size.y;
            e.transform.position = newHeightPos;
        }
    }