OK, I’m near insanity here, I’ll try to explain my FPS space-game problems.
I’m trying to create a virtually infinite space environment (limited only by how many scenes I create). I am of course, encountering floating-point inaccuracies. This is what I’ve come to realize:
- Floating-point inaccuracy cannot be resolved by ‘moving the universe, not the player’ - this does not work in multiplayer contexts
- Floating-point inaccuracy cannot be resolved by using the FloatingOrigin script found on UnifyCommunity wiki - 2D movement is fine, but once you throw vertical movement into the mix, floating-point numbers become inaccurate
- Floating-point inaccuracy cannot be resolved by scaling objects up or down; I know this has worked for some people, but not for me
So I came to the conclusion that, perhaps, I need to just make smaller scenes and somehow link them together in a 3-dimensional grid of scenes (think rubix cube, just in virtually infinite size). This is fine, but I am totally lost as to how to implement this.
- SetNeighbors would be nice, but I believe it only works with actual terrain - empty ‘space’ I dont believe will work
- SetNeighbors also only works with 2 dimensional planes (e.g: left/right/forward/back, not including up/down)
- Application.LoadLevel would theoretically work, but I do not understand how to keep the player facing the proper direction (orientation-wise) based on which direction from which they’re entering a given scene. Also, keeping the skybox (same one used throughout all scenes)
I’ve gone over every thread I could find, I honestly have tried many solutions - I’m looking for something to save me from this seemingly impossible scenario.
Thanks