void MoveObject() { var position = hitPoint; if (curObject.ResourceMetadata.wwObjectMetadata.type == WWType.Tile) { position.y += 0.5f * CoordinateHelper.GetTileScale(); } curObject.SetPosition(position); }
private void MoveVertically(int height) { foreach (var wwObject in wwObjectToOrigCoordinates.Keys) { ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Remove(wwObject.GetId()); var newPos = wwObject.transform.position; newPos.y += height * CoordinateHelper.GetTileScale(); var coord = CoordinateHelper.UnityCoordToWWCoord(newPos); wwObject.SetPosition(coord); } CompleteEdit(); UpdateOffsets(); }
/// <summary> /// Refresh the grid position and scale. /// </summary> public void RefreshGrid() { float yPos = height * CoordinateHelper.GetTileScale(); grid.transform.position = new Vector3(0, yPos, 0); Coordinate c = CoordinateHelper.UnityCoordToWWCoord(grid.transform.position); // set the scale too SetGridScale(); /* playerReferenceScale.transform.position = new Vector3(0, * yPos, * 0);*/ }
private void SetGridScale() { var tileLengthScale = CoordinateHelper.tileLengthScale; var baseTileLenghtScale = CoordinateHelper.baseTileLength; var textureScale = scaleMultiplier * baseTileLenghtScale; var scale = Vector3.one * tileLengthScale * scaleMultiplier; scale.y = 1; grid.transform.localScale = scale; gridMat.SetTextureScale(gridMatMainTexture, new Vector2(textureScale, textureScale)); // adjust the material's view distance as well based on the world scale var viewDistanceScaled = viewDistance * CoordinateHelper.GetTileScale(); gridMat.SetFloat(gridMatViewDistance, viewDistanceScaled); }
public static Vector3 RaycastGridOnly(Vector3 origin, Vector3 direction, Collider gridCollider, float rayDistance) { Vector3 resultingHitpoint = Vector3.zero; // first cast against grid Ray ray = new Ray(origin, direction); RaycastHit raycastHit; if (gridCollider.Raycast(ray, out raycastHit, rayDistance)) { resultingHitpoint = raycastHit.point; // resultingHitpoint.y = 0; // IGNORE Y } if (resultingHitpoint.x != 0f && resultingHitpoint.z != 0) { resultingHitpoint.y += CoordinateHelper.GetTileScale() * 0.0001f; // ensure placement in space above ontop of the grid } return(resultingHitpoint); }