Level building is pretty fiddly but here are links that might make it easier:
Positioning Objects via the Unity Manual. Check out the notes on Unit and Vertex snapping.
Align Positions via the Unity Manual. An example script from Unity.
Snap to Grid by Hayden Peake: Can be useful if you're working on a grid layout and to a particular scale.
LineMup by Matthew J. Collins. Aligns and distributes even spacing between selected objects. Comes with an instructional video.
Transform Utilites by Daniel RodrÃguez (Also found here): A pretty hand tool for aligning objects in a scene, it's a little more technical than the other options but makes things much easier.
Now back to scalding my eyeballs with Wow-Wow Sauce and other ritualistic activities that make up level building. A proper post is coming
Sunday, May 29, 2011
Monday, May 16, 2011
Wreckless Conduct: The Scent of Failure
Some progress shots of level building toolkit + Unity Editor + beating head on keyboard looks like. Finally got some kind of mouse click system which instantiates a prefab in the scene window.
For those interested, the code looks a little like this:
Failure is listed down below, I'm getting worried about how long this is all taking so any suggestions are most welcome.
Edit: I've sort of resolved the fragmenting of prefabs, it had to do with my invoking of particular functions. I will be working on the functionality of the level builder.
This one is a little old but it does show that I've resolved a strange problem with the math that determined where a collider positioned itself and when you resized buildings.
For funs:
Minecraft - Unity Style. Also has a playable demo.
For those interested, the code looks a little like this:
//
OnScenGUI is how the Editor handles events in the scene window
function OnSceneGUI() {
// Handles are like Gizmos
// Draw cube at 0,0,0 when level builder is on
Handles.color = Color.red;
Handles.CubeCap(0, Vector3.zero, Quaternion.identity, 0.5);
if(editMode) {
if(Event.current.type == EventType.MouseDown) {
if(Event.current.button == 0) {
var ray = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition);
var dist : float;
// Cast a ray on a "fake" plane (The Plane class in Unity is a "Representation of planes")
// If ray hits the plane (grid stand in), use the current mouse position to instantiate our prefab
if(grid.Raycast(ray, dist)) {
var pos : Vector3 = ray.origin + ray.direction.normalized * dist * 0.5;
Debug.Log("Placed fab at: " + pos);
// Using EditorUtility.InstantiatePrefab does stop me from creating clones of my prefab
// I could still use Instantiate(gameObject, pos, Quaternion.identity) here as well
var currentPiece : GameObject = EditorUtility.InstantiatePrefab(target.currentFab);
// Seems like the line below is causing some problems
currentPiece.transform.position = pos;
}//END grid Raycast
}//END Mouse Left Click
}
// Prevent deselection of object while in Edit Mode
Selection.activeGameObject = target.transform.gameObject;
}//END In Edit Mode
}//END OnSceneGUI
Failure is listed down below, I'm getting worried about how long this is all taking so any suggestions are most welcome.
Edit: I've sort of resolved the fragmenting of prefabs, it had to do with my invoking of particular functions. I will be working on the functionality of the level builder.
This one is a little old but it does show that I've resolved a strange problem with the math that determined where a collider positioned itself and when you resized buildings.
For funs:
Minecraft - Unity Style. Also has a playable demo.
Tuesday, May 10, 2011
Wreckless Conduct: Streets of Hell
Subscribe to:
Posts (Atom)