核心就是控制飘带上的每一个点,计算出相应的位置,然后使用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. viewport使用 html5
  2. Iframe 用法浅析
  3. sql server schema下拉不到存储过程_mysql数据库字符编码总结--数据存储编码
  4. SAP成都研究院廖婧:SAP C4C社交媒体集成概述
  5. 某一个接口403 其他接口可以调通_Neo的务实外设指南 篇三十六:一个就够,65W快充+C口混插+最多6个设备 - 飞利浦65W摩天轮插座_插座...
  6. 在创业公司工作是一种什么样的体验?
  7. Mybatis的动态拼接条件
  8. linux tomcat 改端口号,Ubuntu中Tomcat更改80端口
  9. 计算机组成原理之指令和寻址方式
  10. PowerDesigner 使用记录
  11. hmac sha256 php,PHP中的HMAC-SHA-256
  12. Error:Execution failed for task ':app:clean'. Unable to delete directory: /media/file/workspaces/a
  13. 4.企业应用架构模式 --- Web表现层
  14. 日常琐事的记录,每周六晚做一次总结整理
  15. python代码写龙卷风_python - 龙卷风服务器二进制可执行文件
  16. 计算机6005是开机时间,怎么查电脑的开机,和关机时间·,同学们
  17. 医学影像组学人工智能案例结合
  18. Unity利用双相机巧做水印功能
  19. 什么是stub文件_stub code
  20. openCV中二值化图像的方法

热门文章

  1. ISCC线下赛参赛感悟
  2. 常用游戏类型简写速查
  3. 好用免费的电脑摄像头录视频软件分享!
  4. node.js入门_Node.js入门
  5. ajax实现文件的上传(局部刷新页面,文件上传)
  6. 影视网站导航PHP源码
  7. Postgresql中xlog生成和清理逻辑
  8. vue 后台系统中多页面标签
  9. NCRE——网络工程师——操作系统
  10. Oracle数据库,创建表并给表、字段添加注释.