using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; public class RemoveGraph : BackButton { [SerializeField] GraphManager graphManager; [SerializeField] TextMeshPro graphKindText; [SerializeField] TextMeshPro graphFormulaText; [SerializeField] GameObject optionMenuScreen; private int index; private GraphData graphData; public void Initialize(GraphData data, int index) { graphData = data; this.index = index; graphKindText.text = graphKindStr(graphData.getGraphNum()); graphFormulaText.text = getFormulaMessage(graphData); } public void pressedDecideButton() { graphManager.removeGraphData(index); base.anotherButtonAction(); } private string graphKindStr(int num) { switch (num) { case 0: return "直線"; case 1: return "平面"; default: return "エラー"; } } private string getFormulaMessage(GraphData data) { string str = ""; if (data == null) { return str; } if (data.isDataFormulaInputted()) { switch (data.getGraphNum()) { case 0: //直線 Vector3 p = data.getLinePassingPoint(); Vector3 d = data.getLineDirection(); str = "点(" + p.x + " ," + p.y + " ," + p.z + ")を通る" + "\nベクトル(" + d.x + " ," + d.y + " ," + d.z + ")に平行な直線"; ; break; case 1: //平面 Vector4 c = data.getPlaneCoefficient(); str = c.x + "x "; if (Mathf.Sign(c.y) == -1) { str += c.y + "y "; } else { str += "+" + c.y + "y "; } if (Mathf.Sign(c.z) == -1) { str += c.z + "z "; } else { str += "+" + c.z + "z "; } if (Mathf.Sign(c.w) == -1) { str += c.w + " = 0"; } else { str += "+" + c.w + " = 0"; }; break; case 2: str = "Error"; break; } } else { switch (data.getGraphNum()) { case 0: //直線 str = "タッチして直線の式を入力"; break; case 1: //平面 str = "タッチして平面の式を入力"; break; case 2: str = "対応していません。"; break; } } return str; } }