unity实现画线功能

看到牛逼的,于是就转载了,侵删
转载于:https://blog.csdn.net/qq_25210959/article/details/52046001

今天实现一个用LineRender组件实现画图的功能。网上已有相关博文,感觉步骤有些模糊,今天就整理出来供大家学习

第一步:创建一个空对象,为其添加LineRender组件。

![在这里插入图片描述](https://img-blog.csdn.net/20160727155320307?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)

注意:将材质的Shader改为Particles/Additive,否则在代码里面控制颜色不起效。

二.再创建一个新的对象,来挂载脚本。脚本如下:


 
 
  1. using UnityEngine;
  2. using System.Collections;
  3. public class NewBehaviourScript : MonoBehaviour {
  4. private GameObject clone;
  5. private LineRenderer line;
  6. int i;
  7. //带有LineRender物体
  8. public GameObject target;
  9. void Start () {
  10. }
  11. // Update is called once per frame
  12. void Update () {
  13. if (Input.GetMouseButtonDown ( 0)) {
  14. //实例化对象
  15. clone=(GameObject)Instantiate(target,target.transform.position,Quaternion.identity);
  16. //获得该物体上的LineRender组件
  17. line=clone.GetComponent<LineRenderer>();
  18. //设置起始和结束的颜色
  19. line.SetColors(Color.red,Color.blue);
  20. //设置起始和结束的宽度
  21. line.SetWidth( 0.2f, 0.1f);
  22. //计数
  23. i= 0;
  24. }
  25. if(Input.GetMouseButton( 0))
  26. {
  27. //每一帧检测,按下鼠标的时间越长,计数越多
  28. i++;
  29. //设置顶点数
  30. line.SetVertexCount(i);
  31. //设置顶点位置(顶点的索引,将鼠标点击的屏幕坐标转换为世界坐标)
  32. line.SetPosition(i -1,Camera.main.ScreenToWorldPoint( new Vector3(Input.mousePosition.x,Input.mousePosition.y, 15)));
  33. }
  34. }
  35. }

三:将第一步建的空对象,拖入Inspector面板

![在这里插入图片描述](https://img-blog.csdn.net/20160727155608308?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)

四:运行效果如下:

![在这里插入图片描述](https://img-blog.csdn.net/20160727155644886?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值