示例#1
0
        /// <summary>
        /// Copy the snake path data and revert it
        /// </summary>
        private void RevertSnakePath(Vector3 revertDirection, SnakePath copyPath)
        {
            SnakePath emptySnakepath = ScriptableObject.CreateInstance <SnakePath>();
            string    fileName       = copyPath.name + "_Clone.asset";

            AssetDatabase.CreateAsset(emptySnakepath, EventFlag.Path.SnakePathSRPFolder + fileName);

            int pointCount = copyPath.PointCount;

            for (int i = 0; i < pointCount; i++)
            {
                float yOffset    = creator.YAxisConstraints.y - copyPath[i].y;
                float revertYPos = creator.YAxisConstraints.x + yOffset;

                float xOffset    = creator.XAxisConstraints.y - copyPath[i].x;
                float revertXPos = creator.XAxisConstraints.x + xOffset;

                var revertPath = new Vector3((revertDirection.x == -1) ? revertXPos : copyPath[i].x,
                                             (revertDirection.y == -1) ? revertYPos : copyPath[i].y,
                                             copyPath[i].z
                                             );

                emptySnakepath.Push(revertPath);
            }

            var snakeCreator = GUtil.UtilityMethod.CreateObjectToParent <SnakePathCreator>(creator.transform.parent, creator.transform.gameObject);

            snakeCreator.transform.position = creator.transform.position;
            snakeCreator.SetSnakePath(emptySnakepath);

            AssetDatabase.SaveAssets();
        }
示例#2
0
        public void CreateBasicPathSetup()
        {
            // _snakePath = new SnakePath();

            _snakePath.Reset();

            //Start Point
            _snakePath.Push(Vector3.zero);

            //Start Ctrl Point
            _snakePath.Push(Vector3.zero + Vector3.up);

            Vector3 EndPoint = new Vector3(0, 0, 2);

            //End Ctrl Point
            _snakePath.Push(EndPoint + Vector3.down);

            //End  Point
            _snakePath.Push(EndPoint);


            _snakePath.AddSegment(new Vector3(0, 0, 3));
        }