public void Save() { var piList = new List <CorrectableQuad.PointInfomation>(); for (var i = 0; i < Points.Length; i++) { var p = Points[i]; var uv = new Vector2( EMath.Map(p.x, -aspect.x / 2f, aspect.x / 2f, 0, 1), EMath.Map(p.y, -aspect.y / 2f, aspect.y / 2f, 0, 1) ); var pi = new CorrectableQuad.PointInfomation { position = p, uv = uv }; piList.Add(pi); print(i + " : " + uv); } var setting = new QuadCorrectionSetting(); setting.LeftTop = new CorrectableQuad.JPointInfomation(piList[0]); setting.RightTop = new CorrectableQuad.JPointInfomation(piList[1]); setting.RightBottom = new CorrectableQuad.JPointInfomation(piList[2]); setting.LeftBottom = new CorrectableQuad.JPointInfomation(piList[3]); CorrectEvent?.Invoke(setting); IOHandler.SaveJson(IOHandler.IntoStreamingAssets(settingFileName), setting); }
//Unityの座標系に合わせて正規化された座標(-1~+1) public static Vector2 GetUnityCoordinateSystemNormalizedPosition(Vector2 position, Vector2 textureSize) { return(new Vector2(EMath.Map(position.x, 0f, textureSize.x, -1f, 1f), EMath.Map(position.y, 0f, textureSize.y, 1f, -1f))); }
//画面上の位置を取得 //一気にUnity上の画面の位置に変換する public static Vector2 GetUnityCoordinateSystemPosition(Vector2 position, Vector2 area1, Vector2 area2) { return(new Vector2(EMath.Map(position.x, 0f, area1.x, -area2.x / 2f, area2.x / 2f), EMath.Map(position.y, 0f, area1.y, area2.y / 2f, -area2.y / 2f))); }