特效 Line Renderer

卢磊
2023-12-01

特效

GameObject ------> Effects ------> Particle System 粒子系统 Trail 拖尾效果 Line 线性渲染

Particle System 主面板
Pause 暂停
Restart 重启
Stop 停止
Duration 持续时间
Looping 循环
Prewarm 预热
Start Delay 延时
Start Lifetime 粒子生命周期 Constant 固定  Curve 曲线 Random Between Two Constant 固定的时间随机 Random Between Two Curves 在两个曲线之间随机
Start Speed 速率
Start Size
3D Start Size
Start Rotation
3D Start Rotation
Randomize Rotation 随机旋转
Gravity Modifier 重力
Play On Awake 设置是否开始时候播放
Max Particles 最大粒子数量
Emission
Rate over Time 生成粒子数量
Shape 调整粒子形状

Line Renderer

Positions

Use World Space 使用本地还是世界

Loop 循环(终点和起点连接)

using UnityEngine;
using System.Collections.Generic;//引入命名空间

public class LineController : MonoBehaviour {
	private LineRenderer lineRenderer;
	
    private List<Vector3> positions;
    //射线碰撞检测器
    private RaycastHit hit;
    
	private void Awake(){
        positions = new List<Vector3>();
		lineRenderer = GetComponent<LineRenderer>();
	}
	
    private void Start(){
        //设置顶点个数
        lineRenderer.positionCount = 2;
        //设置顶点坐标
        lineRenderer.SetPosition(0, Vector3.zero);
        lineRenderer.SetPosition(1, Vector3.up * 10);
        //注意不能多设 如果多设 会报错 少设会是原本的点
    }
    
    private void Update(){
        //不按鼠标左键不要执行下面代码
        if(Input.GetMouseButton(0))
            return;
        
        //鼠标坐标转物理射线
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        //发射物理射线
        if(Physics.Raycast(ray, out hit)){
            //添加到列表里
            positions.Add(hit.point);
            //设置顶点个数
            lineRenderer.positionCount = positions.Count;
            //设置定点坐标
            lineRenderer.SetPositions(positions.ToArray());
        }
        
    }
}
 类似资料: