我的项目是在目标和AGV之间划清界限。 道歉我的英语水平。我的英语不好。
这是我的代码的工作原理。
这是我的问题:
我的C#'MapFile.cs'脚本安装在EmptyObject'Map'上。
场景开始时,点开始逐渐在线性方程式AGV上放置到目标位置。 但是我要在最后一个点遇到“墙”对象时停止放置点。
因此尝试使用功能
void onTriggerEnter(Collider other)
但是正如您所看到的,'MapFile.cs'脚本已安装在EmptyObject'Map'...
我不知道我的点如何与墙壁互动。
这是我的代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MLAgents;
public class MapFile : Agent
{
public Transform targetPosition;
public Transform AGVposition;
public GameObject dot;
public float w, b;
public float functionTarget = 0f;
public float[] data = new float[2];
void Awake()
{
Initializing();
}
public void Initializing()
{
data[0] = AGVposition.position.x;
data[1] = AGVposition.position.y;
}
public void drawline()
{
if(data[0] < 20f && data[0] > -20f)
{
while(true)
{
data[1] = FindYValue(data[0]);
Instantiate(dot, new Vector3( data[0] , 0f , data[1] ) , Quaternion.identity);
if(targetPosition.position.x > 0 )
{
data[0] += 0.07f;
if(data[0] > 20f) break;
}
else
{
data[0] -= 0.07f;
if(data[0] < -20f)break;
}
}
}
}
void Update()
{
drawline();
}
public float FindYValue(float a)
{
float result;
float x1 = AGVposition.position.x;
float y1 = AGVposition.position.z;
float x2 = targetPosition.position.x;
float y2 = targetPosition.position.z;
result = ( (y2 - y1) / (x2 - x1) ) * (a - x1) + y1;
return result;
}
}