unity 鼠标标记 左键长按生成标记右键长按清除标记,对象转化为子物体

linerender的标记参考

unity linerenderer在Game窗口中任意画线_游戏内编辑linerender-CSDN博客

让生成的标记转化为ARMarks游戏对象的子物体

LineMark.cs

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 initialization
	void 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");

		}

	}
}
相关推荐
hellolxb8 分钟前
Unreal Engine: Windows 下打包 AirSim项目 为 Linux 平台项目
linux·游戏引擎·虚幻
achonor3 小时前
UnityShader 植物被风吹弯效果
unity·shader·mesh
虾球xz3 小时前
游戏引擎学习第292天:实现蛇
c++·学习·游戏引擎
DanmF--3 小时前
Protobuf协议生成和使用
网络·unity·c#·游戏引擎·游戏程序
AgilityBaby3 小时前
关于在Unity项目中使用Post Processing插件打包到web端出现的问题
3d·unity·游戏引擎
FAREWELL0007512 小时前
Unity学习总结篇(1)关于各种坐标系
学习·unity·c#·游戏引擎
与火星的孩子对话21 小时前
Unity3D开发AI桌面精灵/宠物系列 【六】 人物模型 语音口型同步 LipSync 、梅尔频谱MFCC技术、支持中英文自定义编辑- 基于 C# 语言开发
人工智能·unity·c#·游戏引擎·宠物·lipsync
虾球xz1 天前
游戏引擎学习第293天:移动Familiars
c++·学习·游戏引擎
敲代码的 蜡笔小新1 天前
【行为型之访问者模式】游戏开发实战——Unity灵活数据操作与跨系统交互的架构秘诀
unity·设计模式·c#·访问者模式
Magnum Lehar1 天前
3d游戏引擎EngineTest的系统实现3
java·开发语言·游戏引擎