/// <see cref="SceneGraphManager.Load"/> public void Load(string filePath) { string json = FileIO.LoadJsonFromFile(filePath); var objectsToRestore = JsonConvert.DeserializeObject <List <WWObjectJSONBlob> >(json); Debug.Log(string.Format("Loaded {0} objects from file", objectsToRestore.Count)); foreach (WWObjectJSONBlob obj in objectsToRestore) { var objectData = new WWObjectData(obj); WWObject go = WWObjectFactory.Instantiate(objectData); Add(go); } // re-link children since all the objects have been instantiated in game world foreach (WWObjectJSONBlob obj in objectsToRestore) { WWObject root = Get(obj.id); var childrenToRestore = new List <WWObject>(); foreach (Guid childID in obj.children) { WWObject childObject = Get(childID); childrenToRestore.Add(childObject); } root.AddChildren(childrenToRestore); } }
private WWObject ForceRotateAndPlaceObject(Vector3 position) { int theRot = curRotation; Coordinate coordRotated = CoordinateHelper.UnityCoordToWWCoord(position); var wwTransform = new WWTransform(coordRotated, theRot); WWObjectData objData = WWObjectFactory.CreateNew(wwTransform, GetResourceTag()); WWObject go = WWObjectFactory.Instantiate(objData); return(go); }
private WWObject PlaceObject(Vector3 position) { int tileIndex = Mathf.Abs(curTile) % possibleTiles.Count; Coordinate coordinate = CoordinateHelper.UnityCoordToWWCoord(position); var wwTransform = new WWTransform(coordinate, curRotation); WWObjectData objData = WWObjectFactory.CreateNew(wwTransform, possibleTiles[tileIndex]); WWObject go = WWObjectFactory.Instantiate(objData); return(go); }
public static void AddObjectToSceneGraph() { Assert.AreEqual(0, ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().SceneSize()); var coordinate = new Coordinate(0, 0, 0); var wwTransform = new WWTransform(coordinate); WWObjectData wwObjectData = WWObjectFactory.CreateNew(wwTransform, "white"); WWObject wwObject = WWObjectFactory.Instantiate(wwObjectData); ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(wwObject); Assert.AreEqual(1, ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().SceneSize()); }
private void CreateCube(Vector3 controllerPos) { Coordinate cubePosition = CoordinateHelper.UnityCoordToWWCoord(controllerPos); Debug.Log("Cube Position: " + cubePosition.Index.x + ", " + cubePosition.Index.y + ", " + cubePosition.Index.z); var wwTransform = new WWTransform(cubePosition); WWObjectData data = WWObjectFactory.CreateNew(wwTransform, "white"); WWObject obj = WWObjectFactory.Instantiate(data); ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(obj); }
/// <summary> /// Instantiates the WwObject wall belonging to the resource and adds the wall to the active /// Scene Graph. /// </summary> /// <param name="coordIndex">The coordinate index for this perimeter wall.</param> /// <param name="rotation">The valid rotation for this perimeter.</param> /// <param name="resourceTag">The resourceTag from which to load the WWObject from.</param> private static void PlaceWallObject(IntVector3 coordIndex, int rotation, string resourceTag) { var coordinate = new Coordinate(coordIndex); var wwTransform = new WWTransform(coordinate, rotation); WWObjectData objData = WWObjectFactory.CreateNew(wwTransform, resourceTag); WWObject go = WWObjectFactory.Instantiate(objData); if (!ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(go)) { // this error should never happen as TryToPlaceWall checks for collision before calling this function Debug.LogError("Could not place wall because of collision, deleting temp"); UnityEngine.Object.Destroy(go.gameObject); } }
private readonly string assetName = "tile_wallbrick"; // the exact name of the tile inside of the Asset Bundle private void Start() { // create a coordinate to place the tile var coordinate = new Coordinate(0, 0, 0); var wwTransform = new WWTransform(coordinate, 0); // create the data needed to instantiate this tile WWObjectData tileData = WWObjectFactory.CreateNew(wwTransform, string.Format("{0}_{1}", assetBundleName, assetName)); // instantiate the tile in the world WWObject tile = WWObjectFactory.Instantiate(tileData); // add the newly created tile to the SceneGraph ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(tile); }
private void CreateObject(Vector3 position) { if (curObject != null) { Destroy(curObject.gameObject); } Coordinate coordinate = CoordinateHelper.UnityCoordToWWCoord(position); var wwTransform = new WWTransform(coordinate, curRotation); if (ManagerRegistry.Instance.GetAnInstance <WWObjectGunManager>().GetPossibleObjectKeys().Count > 0) { WWObjectData objData = WWObjectFactory.CreateNew(wwTransform, ManagerRegistry.Instance.GetAnInstance <WWObjectGunManager>().GetPossibleObjectKeys()[curTileIndex]); curObject = WWObjectFactory.Instantiate(objData); } }
public static List <Coordinate> CreateTerrainFromImage(Texture2D heightmap) { var coordinates = new List <Coordinate>(); var maxHeight = 10; for (var x = 0; x < heightmap.width; x++) { for (var y = 0; y < heightmap.height; y++) { var height = (int)(heightmap.GetPixel(x, y).r *maxHeight); var c = new Coordinate(x, height, y); coordinates.Add(c); var wwTransform = new WWTransform(c, 0); WWObjectData parentData = WWObjectFactory.CreateNew(wwTransform, "white"); WWObject parentObj = WWObjectFactory.Instantiate(parentData); ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(parentObj); while (height > 0) { height--; c = new Coordinate(x, height, y); coordinates.Add(c); wwTransform = new WWTransform(c, 0); WWObjectData childData = WWObjectFactory.CreateNew(wwTransform, "white"); WWObject childObj = WWObjectFactory.Instantiate(childData); ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(childObj); var children = new List <WWObject>(); children.Add(childObj); parentObj.AddChildren(children); parentObj = childObj; } } } return(coordinates); }
private WWObject PlaceObject(Vector3 position) { List <int> possibleConfigurations = BuilderAlgorithms.GetPossibleRotations(position, GetResourceTag()); if (possibleConfigurations.Count == 0) { return(null); } int theRot = possibleConfigurations[0]; if (possibleConfigurations.Contains(curRotation)) { theRot = curRotation; } Coordinate coordRotated = CoordinateHelper.UnityCoordToWWCoord(position); var wwTransform = new WWTransform(coordRotated, theRot); WWObjectData objData = WWObjectFactory.CreateNew(wwTransform, GetResourceTag()); WWObject go = WWObjectFactory.Instantiate(objData); return(go); }
private void Start() { ResourceLoader.LoadResources(); for (var i = 0; i < 5; i++) { WWObjectData objData = WWObjectFactory.CreateNew(new WWTransform(new Coordinate(i, i, i), 0), "ww_basic_assets_Tile_Grass"); WWObject go = WWObjectFactory.Instantiate(objData); ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(go); } for (var i = 0; i < 5; i++) { WWObjectData objData = WWObjectFactory.CreateNew(new WWTransform(new Coordinate(i, i + 1, i), 0), "ww_basic_assets_Tile_Arch"); WWObject go = WWObjectFactory.Instantiate(objData); ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(go); } for (var i = 0; i < 5; i++) { WWObjectData objData = WWObjectFactory.CreateNew(new WWTransform(new Coordinate(i, i + 2, i), 0), "ww_basic_assets_Tile_FloorBrick"); WWObject go = WWObjectFactory.Instantiate(objData); ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(go); } for (var i = 0; i < 5; i++) { WWObjectData objData = WWObjectFactory.CreateNew(new WWTransform(new Coordinate(i, i + 2, i), 0), "ww_basic_assets_blueCube"); WWObject go = WWObjectFactory.Instantiate(objData); ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(go); } }