C# 如何在Unity中存储InputField中的2个游戏对象
我正在尝试制作一个移动应用程序,在画布图像上显示用户从一个航路点到另一个航路点的路径。我在这里使用Dijkstra算法 用户应该输入开始节点,然后输入目标节点。程序应该能够读取这两个输入并将它们存储到图形中;然后从存储在路径数组中的节点绘制线。我使用这里的代码读取输入 看起来它读取了它们并找到了我需要的节点,但我一直在存储第二个输入并显示路径 以下是我尝试的代码:C# 如何在Unity中存储InputField中的2个游戏对象,c#,unity3d,user-interface,input-field,pathfinder,C#,Unity3d,User Interface,Input Field,Pathfinder,我正在尝试制作一个移动应用程序,在画布图像上显示用户从一个航路点到另一个航路点的路径。我在这里使用Dijkstra算法 用户应该输入开始节点,然后输入目标节点。程序应该能够读取这两个输入并将它们存储到图形中;然后从存储在路径数组中的节点绘制线。我使用这里的代码读取输入 看起来它读取了它们并找到了我需要的节点,但我一直在存储第二个输入并显示路径 以下是我尝试的代码: { public InputField inputField; private LineRenderer line
{
public InputField inputField;
private LineRenderer lineRenderer;
protected Node m_From;
protected Node m_To;
protected FindPath m_Path = new FindPath();
List<GameObject> targets = new List<GameObject>();
[SerializeField]
protected Graph m_Graph;
/// <summary>
/// Indicates an object has been found
/// </summary>
/// <param name="target">The target.</param>
public void TurnOn(GameObject target)
{
targets.Add(target);
GameObject lineObject = new GameObject();
lineRenderer = lineObject.AddComponent<LineRenderer>();
lineRenderer.startWidth = 0.3f;
lineRenderer.endWidth = 0.3f;
// Customize the input field according to the gameObject
// Do whathever you want
if (m_From == null)
{
m_From = targets[0];
}
else
{
m_To = targets[1];
}
m_Path = m_Graph.GetShortestPath(m_From, m_To);
Vector3[] checkPointArray = new Vector3[m_Path.nodes.Count];
for (int i = 0; i < m_Path.nodes.Count; i++)
{
Vector3 checkpointpos = m_Path.nodes[i].transform.position;
checkPointArray[i] = new Vector3(checkpointpos.x, checkpointpos.y);
lineRenderer.SetPosition(i, checkPointArray[i]);
}
targets.Clear();}
inputField.textComponent.color = Color.black;
}
{
公共输入字段输入字段;
专用线条渲染器线条渲染器;
受保护的节点m_来自;
受保护节点m_To;
受保护的FindPath m_Path=new FindPath();
列表目标=新列表();
[序列化字段]
保护图m_图;
///
///指示已找到对象
///
///目标。
公共无效开启(游戏对象目标)
{
目标。添加(目标);
GameObject lineObject=新建GameObject();
lineRenderer=lineObject.AddComponent();
lineRenderer.startWidth=0.3f;
lineRenderer.endWidth=0.3f;
//根据游戏对象自定义输入字段
//你想干什么就干什么
if(m_From==null)
{
m_From=目标[0];
}
其他的
{
m_To=目标[1];
}
m_Path=m_Graph.GetShortestPath(m_From,m_To);
Vector3[]检查点数组=新Vector3[m_Path.nodes.Count];
对于(int i=0;i
提前感谢您的帮助