using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

/// <summary>
/// 多点测距脚本
/// </summary>
public class MorePointsRanging : RangingLineType
{
    private void Start()
    {
        variableX = 5f;
        variableY = 18f;
        variableZ = 5f;
    }
    public override void HandleOther(bool flag)
    {
        if (flag)
        {
            MorePointDistance = 0;
            //存储hit点
            MorePointList.Add(placementPos2);
            //计算多点线段的长度
            for (int i = 0; i < MorePointList.Count - 1; i++)
            {
                MorePointDistance += Vector3.Distance(MorePointList[i], MorePointList[i + 1]);
            }
            InstanceMeshText(placementPos, placementPos2, flag, MorePointDistance);
            placementPos = placementPos2;
        }
        else
        {
            MorePointList.Add(placementPos);
            RangSpecialTreat();
            InstanceMeshText(placementPos, placementPos2, flag, MorePointDistance);
        }
    }

    /// <summary>
    /// 显示米数
    /// </summary>
    /// <param name="placementPos">第一个碰撞点</param>
    /// <param name="placementPos2">第二个碰撞点</param>
    /// <param name="flag">标记起点米数</param>
    /// <param name="MorePointDistance"></param>
    public void InstanceMeshText(Vector3 placementPos, Vector3 placementPos2, bool flag, float MorePointDistance)
    {
        GameObject MorePointMeshText = Instantiate(Resources.Load<GameObject>("Prefab/Lines/Ranging"), placementPos, Quaternion.identity) as GameObject;
        RangList.Add(MorePointMeshText);
        MorePointMeshText.transform.parent = this.transform;
        MorePointMeshText.transform.localScale = new Vector3(2, 2, 1);
        if (!flag)
        {
            MorePointMeshText.transform.Find("text").GetComponent<TextMesh>().text = "0";
        }
        else
        {
            float TheDistance = MorePointDistance;
            MorePointMeshText.transform.position = placementPos2;
            MorePointMeshText.transform.Find("text").GetComponent<TextMesh>().text = Math.Round(TheDistance, 2).ToString();
        }
    }



}