コード例 #1
0
        void MoveObject()
        {
            var position = hitPoint;

            if (curObject.ResourceMetadata.wwObjectMetadata.type == WWType.Tile)
            {
                position.y += 0.5f * CoordinateHelper.GetTileScale();
            }
            curObject.SetPosition(position);
        }
コード例 #2
0
 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();
 }
コード例 #3
0
        /// <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);*/
        }
コード例 #4
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);
        }
コード例 #5
0
        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);
        }