Unity-将其他游戏对象放入函数OntriggerEnter

时间:2019-12-18 10:58:50

标签: c# unity3d

我的项目是在目标和AGV之间划清界限。 道歉我的英语水平。我的英语不好。

这是我的代码的工作原理。

  1. 找到目标和AGV的位置
  2. 使用AGV的位置x,y和目标的位置x,y获得一个简单的线性方程
  3. 将点放在我在第2步中发现的简单线性方程式上。
  4. 当我的圆点遇到标签“墙”时,就会做某事...(尚未制作)

这是我的问题:

enter image description here

enter image description here

我的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;
    }
}

enter image description here

0 个答案:

没有答案