- Home /
I screwed up bad I dont know how to fix
I switched the word main and camera around I think.. and now i switched it back its giving me a bogus error. please tell me how to fix if I don't know IM SCREWED because theres no way to undo it because I saved and exited by accident..
using System.Threading;
[AddComponentMenu("VoxelEngine/WorldGenerator")] public class WorldGenerator : MonoBehaviour {
private Map map;
private ColumnMap columnMap = new ColumnMap();
private TerrainGenerator terrainGenerator;
private TreeGenerator[] treeGenerator;
private bool building = false;
void Awake() {
map = GetComponent<Map>();
terrainGenerator = new TerrainGenerator(map);
Block[] woodBlocks = map.GetBlockSet().GetBlocks("Wood");
Block[] leavesBlocks = map.GetBlockSet().GetBlocks("Leaves");
treeGenerator = new TreeGenerator[ Math.Max(woodBlocks.Length, leavesBlocks.Length) ];
for(int i=0; i<treeGenerator.Length; i++) {
Block wood = woodBlocks[ i%woodBlocks.Length ];
Block leaves = leavesBlocks[ i%leavesBlocks.Length ];
treeGenerator[i] = new TreeGenerator(map, wood, leaves);
}
}
void Update() {
if(!building) StartCoroutine( Building() );
}
private IEnumerator Building() {
building = true;
Vector3 pos = Camera.CameraMain.transform.position;
Vector3i current = Chunk.ToChunkPosition( (int)pos.x, (int)pos.y, (int)pos.z );
Vector3i? column = columnMap.GetClosestEmptyColumn(current.x, current.z, 7);
if(column.HasValue) {
int cx = column.Value.x;
int cz = column.Value.z;
columnMap.SetBuilt(cx, cz);
yield return StartCoroutine( GenerateColumn(cx, cz) );
yield return null;
ChunkSunLightComputer.ComputeRays(map, cx, cz);
ChunkSunLightComputer.Scatter(map, columnMap, cx, cz);
terrainGenerator.GeneratePlants(cx, cz);
yield return StartCoroutine( BuildColumn(cx, cz) );
}
building = false;
}
private IEnumerator GenerateColumn(int cx, int cz) {
yield return StartCoroutine( terrainGenerator.Generate(cx, cz) );
yield return null;
if(treeGenerator.Length > 0) {
int x = cx * Chunk.SIZE_X + Chunk.SIZE_X/2;
int z = cz * Chunk.SIZE_Z + Chunk.SIZE_Z/2;
int y = map.GetMaxY(x, z)+1;
int index = UnityEngine.Random.Range( 0, treeGenerator.Length );
treeGenerator[index].Generate(x, y, z);
}
}
public IEnumerator BuildColumn(int cx, int cz) {
List3D<Chunk> chunks = map.GetChunks();
for(int cy=chunks.GetMinY(); cy<chunks.GetMaxY(); cy++) {
Chunk chunk = map.GetChunk( new Vector3i(cx, cy, cz) );
if(chunk != null) chunk.GetChunkRendererInstance().SetDirty();
if(chunk != null) yield return null;
}
}
}
In future please add the error message in your post. At a quick glance, line 29 is :
Vector3 pos = Camera.Camera$$anonymous$$ain.transform.position;
and should be :
Vector3 pos = Camera.main.transform.position;
@zarxto If someone has solved your problem with their answer, please select the answer as the Correct Answer. Or, if no one has yet answered your question, you can edit your post with more details so that we can better help you, or you can comment on your own post to request more help.
Answer by Clonkex · Apr 21, 2014 at 01:13 AM
I immediately noticed an error in the code:
Vector3 pos = Camera.CameraMain.transform.position;
Should be:
Vector3 pos = Camera.main.transform.position;
That's likely your problem.
In future, please post the error you're seeing. Also, use a specific title. "I screwed up bad I dont know how to fix" is a really bad title, since it does not describe any part of the problem, only that you have a problem.
Your answer
Follow this Question
Related Questions
Why does my GUI health bar move sideways when it I lose health? 1 Answer
Vert/Frag, Fixed function, Surface shaders, unitycg.inc etc? 0 Answers
On Collision 2D object continuosly bounce/shake 2 Answers
Transparency for several objects without overlaps 0 Answers
What's wrong with this physicscript? 1 Answer