核心就是控制飘带上的每一个点,计算出相应的位置,然后使用LineRenderer把这些点连成线。

首先创建一个物体作为飘带的父物体,这里我使用了一个简单的Sphere。

然后给父物体添加Line Render脚本:

赋予Line Render一个材质球,否怎Line Render会显示为洋红色,调整Line Render的一些属性,这里我把width属性改为0.3,原来的1会让我们的线看起来不那么苗条。

然后创建我们的脚本,首先创建一个飘带中的控制点的脚本,它只是简单的用来让控制点能够跟随自己前面的物体:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class FloatLinePoint : MonoBehaviour {public GameObject parentObj;const float speed = 0.7f;// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {transform.position = transform.position + ((parentObj.transform.position + new Vector3(FloatLineManager.pointdis,0,0)) -  transform.position) * speed;}
}

然后创建飘带的控制脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class FloatLineManager : MonoBehaviour {LineRenderer lr;List<GameObject> objList = new List<GameObject>();//顶点数量[SerializeField,Range(1,100)] public int pointcount = 20;//顶点距离[SerializeField, Range(0.01f, 1f)] public static float pointdis = 0.3f;// Use this for initializationvoid Start () {lr = gameObject.GetComponent<LineRenderer>();lr.positionCount = pointcount;//生成顶点for (int i = 0; i < pointcount; i++){GameObject obj = new GameObject(i+"");obj.transform.position = new Vector3(transform.position.x + (float)i * pointdis,transform.position.y,0);objList.Add(obj);FloatLinePoint point = obj.AddComponent<FloatLinePoint>();if(i == 0){point.parentObj = gameObject;}else{point.parentObj = objList[i - 1];}}}// Update is called once per framevoid Update () {Vector3[] vs = new Vector3[objList.Count];for (int i = 0; i < objList.Count; i ++){vs[i] = objList[i].transform.position;}lr.SetPositions(vs);}
}

Start中我们根据声明的pointcount变量的值来创建相应的控制点,然后在Update中获取控制点的坐标,并实时赋予Line Render,这样我们就可以得到一个基础的飘带效果,我们可以通过调节FloatLinePoint中的speed参数来修改飘带的幅度:

但是现在看起来飘的不是很明显,而且我想要的是有风吹动的效果,所以还需要继续修改我们的代码:

unity 使用LineRenderer实现飘带飞舞的效果相关推荐

  1. Unity使用LineRenderer组件画出菱形,长度,角度可任意调节

    首先说下我的思路: 开始想的比较简单,就是先建两个空物体分别挂上脚本,一个在X轴画直线,一个与X轴成angle夹角,通过计算得出坐标,这样就能画出一个菱形的角度,下面是实例图: 最后再写个脚本通过循环 ...

  2. Unity 使用LineRenderer绘制贝塞尔曲线

    Unity 使用LineRenderer绘制贝塞尔曲线 LineRenderer介绍 LineRenderer线渲染器,在三维空间中渲染线段和曲线段. 贝塞尔曲线介绍 通过很少的控制点,生成复杂的平滑 ...

  3. Unity URP世界空间后处理扫描圈效果Shader

    实现原理 见这篇文章Unity Shader-深度相关知识总结与效果实现(LinearDepth,Reverse Z,世界坐标重建,软粒子,高度雾,运动模糊,扫描线效果)_puppet_master的 ...

  4. unity 随机数_Unity 雨水滴到屏幕效果

    文章目录 前言 一.实现过程 1.代码 2.代码分步解析 总结 参考 前言 本文主要介绍用unity实现雨水滴到屏幕的效果,文章介绍的是基础实现,读完这篇文章再去实现复杂效果会更得心应手些.我们先看更 ...

  5. Unity学习笔记(4)-----粒子效果的实现

    Unity学习笔记(4)-–粒子效果的实现 一.效果展示 下面用若干张张动图展示效果: 大概就是这样,并不是很难. 实际效果要比图中的好一点(顺畅得多). 实现步骤 大致可以分为如下几个步骤,然后逐个 ...

  6. Unity 之 ShaderGraph 实现自发光和能量护盾效果入门级教程

    Unity 之 ShaderGraph 实现自发光和能量护盾效果入门级教程 前言 一,效果展示 二,原理介绍 三,发光效果 2.1 准备工作 2.2 开始制作 2.3 实际使用 四,护盾效果 2.1 ...

  7. Unity实用小工具或脚本——可折叠伸缩的多级(至少三级)内容列表(类似于Unity的Hierarchy视图中的折叠效果)

    目录 一.前言 二.实现 2.1.创建ScrollView 2.2.制作层级预设体BaseLevelPartObj 2.3.设置该预设体的初始化处理方法 2.4.读取Hierarchy的内容并创建UI ...

  8. pyqt5可以写手机apk吗_不需要写代码,直接在unity实现手机可以跑的毛发效果

    大家好, 我是炭窑居士, 好久不见 这次由我和好友fxyyoung一起给大家带来原创的毛发效果案例:不需要写代码,直接在unity实现手机可以跑的毛发效果! 效果如下面两图,是我们在unity里面直接 ...

  9. Unity实现模拟仿真飞机起飞降落效果

    Unity实现模拟仿真飞机起飞降落效果 前言 在最近的项目中,我实现了一个简单的飞机起飞.降落功能,运用了初中物理速度.加速度,以及Unity的Translate函数实现的.实现的难度一般,效果还可以 ...

最新文章

  1. 没有人会尊重弱者,把弱者当成朋友!人们永远追随强者,永远和强者结盟!
  2. linux与windows回车换行符的区别
  3. Keras入门实战(1):MNIST手写数字分类
  4. 拥有触觉分析能力,上交MIT获IROS 2020最佳论文奖
  5. File 对象 创建,判断,
  6. 去除android或者iOS系统默认的一些样式总结
  7. android之Fragment(官网资料翻译)
  8. 正则过滤 emoji
  9. H5前端实现微信分享(处理二次分享问题)
  10. 解决svn报错:svn: Working copy 'D:\02_workplace\udp\WebRoot\Backstage\Sysi' locked; try performing 'clean
  11. CSS 控制边框样式
  12. 编译原理(3):词法分析
  13. 2019河南省第十二届ACM省赛原题题目及省赛榜单
  14. 服务器提示位置不可用 拒绝访问,主编修复win10系统打开Local settings文件夹提示“位置不可用,拒绝访问的问题...
  15. Java学习1-基本概念
  16. python数据探索
  17. DNS服务器配置项目,项目3 DNS服务器配置.doc
  18. 一分钟学会!PMP培训机构怎么选更好?
  19. android开发工程师简历自我评价,软件工程师简历自我评价
  20. 游戏缺少steam_api.dll解决方法-无法找到steam_api.dll怎么办

热门文章

  1. 【坐标转换】四参数和七参数计算,并正向转换坐标(附完整源代码地址)
  2. 百度与谷歌地图瓦片组织方式对比
  3. html图片向两边展开效果,通过CSS3 transform实现图片浏览的几种效果
  4. 部落冲突-家乡防御建筑-箭塔(1级至20级)
  5. android webview实现拍照
  6. mac 安装软件 显示信任任何来源
  7. 一张我为写植物大战僵尸外.挂而画的草稿图...
  8. 异构数据统一管理推动存储资源盘活
  9. 手撕迪杰斯特拉算法(Dijkstra)及代码(附图解)
  10. C/C++中的序列点