jjzjj

2022-04-22 Unity基础4——LineRenderer

蔗理苦 2024-03-06 原文

文章目录

一、参数面板

二、参数介绍

  1. Loop:是否首尾相连

  2. Positions:线段的点

  3. Width:线段宽度曲线的调整

  4. Color:颜色变化

    需要搭配材质才有效果

  5. Corner Vertices:角顶点、圆角

    此属性指,在一条线中绘制角时使用了多少额外的顶点

    增加此值,使线角看起来更圆润

  6. End Cap Vertices:终点顶点、圆角

  7. Alignment:对齐方式

    • View:视点,线段对着摄像机
    • Transform Z:线段面向其 Z 轴
  8. Texture Mode:纹理模式

    • Stretch:拉伸,沿整条线映射纹理一次
    • Tile:瓷砖平铺,不停地重复纹理
    • Distribute Per Segment:分配执行
    • Repeat Per Segment:重复显示
  9. Shadow Bias:阴影偏移

  10. Generate Lighting Data:生成光源数据

    若材质球收到光源影响,则需要勾选此选项

  11. Use World Space:是否使用世界坐标系

  12. Material:材质球

  13. Lighting:光照

    • Cast Shadows:是否开启阴影
    • Receive Shadows:是否接受阴影
  14. Probes:光照探针

    • Light Probes:光探测器模式
      • Off:不使用
      • Blend Probes:使用内插光探针
      • Use Proxy Volume:使用三维网格内插光探针
      • Custom Provided:自定义从材质决定
    • Reflection Probes:反射探测器模式
      • Off:不使用
      • Blend Probes:使用混合反射探针
      • Blend Probes And Skybox:使用混合反射探针并且和天空盒混合
      • Simple:启用普通探针,重叠时不混合
  15. Additional Settings:额外设置

    • Motion Vectors:运动矢量
      • Camera Motion Only:使用相机运动来跟踪运动
      • Per Object Motion:使用特定对象来跟踪运动
      • Force No Motion:不跟踪
    • Dynamic Occlusion:动态遮挡剔除
    • Sorting Layer:排序图层
    • Order In Layer:此线段在排序图层中的顺序

三、新版本参数

(一)无编辑操作

  1. Simplify Preview:简化预览

    勾选后 Scene 窗口中不会显示黄线来高亮显示 Line

  2. Tolerance:宽容度

    偏离值,其值越大,画线偏差越大

(二)编辑点模式

  1. Show Wireframe:显示线框

  2. Subdivide Selected:细分选中的点

    在 Scene 窗口中选中多个相邻的点,再点击此按钮后会在中间插入新的点

(三)添加点模式

  1. Input:输入模式
    • Mouse Position:鼠标位置
    • Physics Raycast:物理射线
      • LayerMask:哪些层检测射线
  2. Min Vertex Distance:最小顶点距离
  3. Offset:偏移量

四、代码控制

private Material m;

// 动态添加一个线段
GameObject   line         = new GameObject { name = "Line" };
LineRenderer lineRenderer = line.AddComponent<LineRenderer>();

// 首尾相连
lineRenderer.loop = true;

// 开始结束宽
lineRenderer.startWidth = 0.02f;
lineRenderer.endWidth   = 0.02f;

// 开始结束颜色
lineRenderer.startColor = Color.white;
lineRenderer.endColor   = Color.red;

// 设置材质
m                     = Resources.Load<Material>("M");
lineRenderer.material = m;

// 设置点
// 一定注意 设置点 要 先设置点的个数
lineRenderer.positionCount = 4;
// 接着就设置 对应每个点的位置
// 设置的点数量小于总数时,后面未设置的点坐标默认为 (0, 0, 0)
lineRenderer.SetPositions(new[] {
    new Vector3(0, 0, 0),
    new Vector3(0, 0, 5),
    new Vector3(5, 0, 5)
});
// 指定设置哪些点
lineRenderer.SetPosition(3, new Vector3(5, 0, 0));

// 是否使用世界坐标系
// 决定了 是否随对象移动而移动
lineRenderer.useWorldSpace = false;

// 让线段受光影响 会接受光数据 进行着色器计算
lineRenderer.generateLightingData = true;

五、应用

​ 实现在 Game 窗口长按鼠标用 LineRenderer 画出鼠标移动的轨迹

private LineRenderer line;
private Vector3 nowPos;

private void Update() {
    if (Input.GetMouseButtonDown(0)) {
        GameObject obj = new GameObject();
        line            = obj.AddComponent<LineRenderer>();
        line.loop       = false;
        line.startWidth = 0.05f;
        line.endWidth   = 0.05f;

        line.positionCount = 0;
    }

    if (Input.GetMouseButton(0)) {
        line.positionCount += 1;
        
        // 如何得到鼠标转世界坐标的 对应点 
        // 知识点
        // 1.如何得到鼠标位置
        // Input.mousePosition
        // 2.怎么把鼠标 转世界坐标
        // Camera.main.ScreenToWorldPoint(Input.mousePosition);
        nowPos   = Input.mousePosition;
        nowPos.z = 10;
        line.SetPosition(line.positionCount - 1, Camera.main.ScreenToWorldPoint(nowPos));
    }
}

有关2022-04-22 Unity基础4——LineRenderer的更多相关文章

  1. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  2. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  3. unity---接入Admob - 2

    目录1.AdmobSDK下载地址2.将下载好的unityPackagesdk导入到unity里​编辑 3.解析依赖到项目中

  4. Unity 3D 制作开关门动画,旋转门制作,推拉门制作,门把手动画制作 - 2

    Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u

  5. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  6. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  7. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  8. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  9. ruby - 在 Ubuntu 14.04 中使用 Curl 安装 RVM 时出错 - 2

    我试图在Ubuntu14.04中使用Curl安装RVM。我运行了以下命令:\curl-sSLhttps://get.rvm.io|bash-sstable出现如下错误:curl:(7)Failedtoconnecttoget.rvm.ioport80:Networkisunreachable非常感谢解决此问题的任何帮助。谢谢 最佳答案 在执行curl之前尝试这个:echoipv4>>~/.curlrc 关于ruby-在Ubuntu14.04中使用Curl安装RVM时出错,我们在Stack

  10. ruby-on-rails - Ubuntu 14.04 Rails 丢失文件 - 2

    安装Rails时,一切都很好,但后来,我写道:rails-v和输出:/home/toshiba/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in`require':cannotloadsuchfile--rails/cli(LoadError)from/home/toshiba/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in`r

随机推荐