linerender的标记参考
unity linerenderer在Game窗口中任意画线_游戏内编辑linerender-CSDN博客
让生成的标记转化为ARMarks游戏对象的子物体
LineMark.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class LineMark : MonoBehaviour
{private GameObject clone;private LineRenderer line;private int i;public GameObject obs;public GameObject arMarks;// Use this for initializationvoid Start(){//arMarks = new GameObject("ARMarks");}// Update is called once per frame void Update(){//0是鼠标左键 按下时重新生成标记if (Input.GetMouseButtonDown(0)){clone = (GameObject)Instantiate(obs, obs.transform.position, transform.rotation);//克隆一个带有LineRender的物体 line = clone.GetComponent<LineRenderer>();//获得该物体上的LineRender组件 line.SetColors(Color.blue, Color.red);//设置颜色 line.SetWidth(0.2f, 0.1f);//设置宽度 i = 0;//将标记设为子物体print("11111111111111111");}//长按左键绘制标记if (Input.GetMouseButton(0)){i++;line.SetVertexCount(i);//设置顶点数 line.SetPosition(i - 1, Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 15)));//设置顶点位置 //GameObject lines_mark = GameObject.Find(clone.name);clone.layer = 3;clone.transform.parent = arMarks.transform;print("222222222222222222222");}//1是鼠标右键 按右键清除标记if (Input.GetMouseButton(1)){for (int i = 0; i < arMarks.transform.childCount; i++){Destroy(arMarks.transform.GetChild(i).gameObject);}print("33333333333333333333333");}}
}