using System.Collections; using System.Collections.Generic; using UnityEngine; //测量距离 public class RangeFinding : MonoBehaviour { //总控制 public bool isClbool; private Vector3 posOne, posTwo; //测量控制 public bool isOpenDistance; private int distanceInt; //计数控制 public Transform prefabTransform; //测量的预制体 private Transform myDistanceObj; public Transform allCLParentTransform; //所有预制体生成的父节点 // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { if (isClbool) { if (Input.GetMouseButtonDown(0)) { posOne = Input.mousePosition; } Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; //距离 if (isOpenDistance) { if (Input.GetMouseButtonUp(0)) { posTwo = Input.mousePosition; if (Physics.Raycast(ray, out hit, 1000) && posOne == posTwo) { if (distanceInt == 0) { distanceInt++; //鼠标点击克隆物体 myDistanceObj = Instantiate(prefabTransform, allCLParentTransform); // transform.TransformPoint(Prefab,hit.poit, Quaternion.identity); myDistanceObj.transform.GetChild(0).position = hit.point; } else { myDistanceObj.transform.GetChild(1).position = hit.point; //isOpenJL = false; distanceInt = 0; } } } if (distanceInt > 0) { if (Physics.Raycast(ray, out hit, 1000)) { myDistanceObj.transform.GetChild(1).position = hit.point; } } } } } }