/// <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(); }
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)); }