void Start() { TextureToMap(); GetGroundFromMap(); GetWallsFromMap(); groundMeshObject = new MeshObject((grounds.Count * 4), grounds.Count * 2 * 3); wallMeshObject = new MeshObject(walls.Count * 4, walls.Count * 2 * 3); DrawGround(); DrawWalls(); DrawCeil(); CombineInstance[] combineMesh = new CombineInstance[3]; combineMesh[0].mesh = groundMeshObject.GenerateMesh(); combineMesh[1].mesh = wallMeshObject.GenerateMesh(); combineMesh[2].mesh = ceilMeshObject.GenerateMesh(); Mesh generatedMesh = new Mesh(); generatedMesh.CombineMeshes(combineMesh, false, false); GetComponent <MeshFilter>().sharedMesh = generatedMesh; GetComponent <MeshCollider>().sharedMesh = generatedMesh; player.transform.position = new Vector3(((origin.x * 2) + 1) * scale, height * scale / 2, ((origin.y * 2) + 1) * scale); float angle = Mathf.Atan2(originDirection.x, originDirection.y) * Mathf.Rad2Deg; player.transform.eulerAngles = new Vector3(0, angle, 0); goal.transform.position = new Vector3(((end.x * 2) + 1) * scale, 0, ((end.y * 2) + 1) * scale); //endDirection = new Vector2(1,1); angle = Mathf.Atan2(endDirection.x, endDirection.y) * Mathf.Rad2Deg; goal.transform.eulerAngles = new Vector3(0, angle, 0); if (Game.enemies) { GameObject enemy = Instantiate(enemyType); enemy.transform.position = GridF.TransformGridToPoint(end * 2 + Vector2.one + endDirection / 2); enemy.transform.eulerAngles = new Vector3(0, angle, 0); } }