Exemplo n.º 1
0
        void Update()
        {
            //UnityEngine.Debug.Log(lineColor);
            print(lon);
            print(lat);
            print(alt);
            if (float.IsNaN(lon))
            {
                return;
            }
            if ((activeCamera == CameraEnum.FirstCamera || activeCamera == CameraEnum.PanelCamera) && alt > 500)
            {
                gameObject.transform.localScale = new Vector3(20, 20, 20);
            }
            else if (activeCamera == CameraEnum.ThirdCamera)
            {
                gameObject.transform.localScale = new Vector3(1, 1, 1);
            }
            else
            {
                float height = lineWidth * 200f;
                float scale  = Mathf.Max(1f, height / 200f);
                gameObject.transform.localScale = new Vector3(scale, scale, scale);
            }
            gameObject.transform.position = new Vector3(MapLib.WorldPosToCoord(lon, lat)[0], alt, MapLib.WorldPosToCoord(lon, lat)[1]);
            gameObject.transform.rotation = MapLib.yawPitchRolltoRotation(yaw, -1f * pitch, -1f * roll);
            updateVelPointer(vel);
            updateYawPointer(yaw);
            updateAltPointer(alt);
            updateHorizon(pitch, roll);
            HandloopMesh.text = handloop.ToString();
            if ((alt - TerrainGameObject.position.y) > 200f)
            {
                qlj.SetActive(false);
            }
            else
            {
                qlj.SetActive(true);
            }
            if ((!(prePosition == Vector3.zero)) && Vector3.Distance(prePosition, transform.position) > 1f)
            {
                if (Vector3.Distance(prePosition, transform.position) > 50f)
                {
                    createLineRender();
                }
                else
                {
                    mline.positionCount = lineVNum + 1;
                    mline.useWorldSpace = true;
                    if (lineVNum == 1)
                    {
                        mline.SetPosition(lineVNum - 1, new Vector3(prePosition.x, prePosition.y, prePosition.z));
                    }

                    mline.SetPosition(lineVNum, new Vector3(transform.position.x, prePosition.y, transform.position.z));
                    lineVNum++;
                    for (int i = 0; i < lineCount; i++)
                    {
                        linerenderList[i].startWidth = lineWidth;
                        linerenderList[i].endWidth   = lineWidth;
                    }
                }
            }
            prePosition = transform.position;
        }
Exemplo n.º 2
0
        void Update()
        {
            //UnityEngine.Debug.Log(lineColor);
            if (float.IsNaN(lon))
            {
                return;
            }
            float  x    = Input.GetAxis("Horizontal");
            float  y    = Input.GetAxis("Vertical");
            bool   up   = Input.GetKeyDown(KeyCode.A);
            bool   down = Input.GetKeyDown(KeyCode.S);
            string z;

            if (up)
            {
                z = "1";
            }
            else if (down)
            {
                z = "-1";
            }
            else
            {
                z = "0";
            }
            serialp.serialwrite(string.Format("{0},{1},{2}", x.ToString(), y.ToString(), z.ToString()));
            if ((activeCamera == CameraEnum.FirstCamera || activeCamera == CameraEnum.PanelCamera) && alt > 500)
            {
                gameObject.transform.localScale = new Vector3(20, 20, 20);
            }
            else if (activeCamera == CameraEnum.ThirdCamera)
            {
                gameObject.transform.localScale = new Vector3(1, 1, 1);
            }
            else
            {
                float height = lineWidth * 200f;
                float scale  = Mathf.Max(1f, height / 200f);
                gameObject.transform.localScale = new Vector3(scale, scale, scale);
            }
            float lon2 = serialp.getlon();
            float lat2 = serialp.getlat();
            float alt2 = serialp.getal();

            print(lon2);
            print(lat2);
            print(alt2);
            gameObject.transform.position = new Vector3(MapLib.WorldPosToCoord(lon2, lat2)[0], alt2, MapLib.WorldPosToCoord(lon2, lat2)[1]);
            gameObject.transform.rotation = MapLib.yawPitchRolltoRotation(yaw, -1f * pitch, -1f * roll);
            updateVelPointer(vel);
            updateYawPointer(yaw);
            updateAltPointer(alt);
            updateHorizon(pitch, roll);
            HandloopMesh.text = handloop.ToString();
            if ((alt - TerrainGameObject.position.y) > 200f)
            {
                qlj.SetActive(false);
            }
            else
            {
                qlj.SetActive(true);
            }
            if ((!(prePosition == Vector3.zero)) && Vector3.Distance(prePosition, transform.position) > 1f)
            {
                if (Vector3.Distance(prePosition, transform.position) > 50f)
                {
                    createLineRender();
                }
                else
                {
                    mline.positionCount = lineVNum + 1;
                    mline.useWorldSpace = true;
                    if (lineVNum == 1)
                    {
                        mline.SetPosition(lineVNum - 1, new Vector3(prePosition.x, prePosition.y, prePosition.z));
                    }

                    mline.SetPosition(lineVNum, new Vector3(transform.position.x, prePosition.y, transform.position.z));
                    lineVNum++;
                    for (int i = 0; i < lineCount; i++)
                    {
                        linerenderList[i].startWidth = lineWidth;
                        linerenderList[i].endWidth   = lineWidth;
                    }
                }
            }
            prePosition = transform.position;
        }