particle system 渲染在sprite之后,修改渲染层级(即要在sprite之前)

在Unity中创建2D动画时,如果精灵的渲染层级高于默认的`default`层,粒子系统会被精灵遮挡。为了解决这个问题,可以通过编写脚本或者直接在粒子系统的Render面板修改Sorting Order和Sorting Layer,使粒子系统能在精灵之前渲染。脚本示例代码显示了如何在运行时改变粒子系统的渲染顺序和层。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

制作中比如作一个sprite作为2d动画序列帧渲染动画,想要添加店particle system ,

(假如修改了sprite的Order in Layer > 0)那么此时会发生粒子系统无法在sprite前面显示,因为系统中默认的layer是

default,对应的Sorting Order为0,就会出现sprite挡住了particle system, 在3d场景视图中就可以很明显地看到,那么就需要

写个脚本去修改Sorting Order,

代码如下所示:(只需要挂在particle system下就可以了,不过要执行游戏后才有效果)


using UnityEngine;
using System.Collections;

public class RendererHandle : MonoBehaviour {

    public int order;

    public string layerName;

    // Use this for initialization
    void Start () {
        GetComponent<Renderer> ().sortingLayerName = layerName;
        GetComponent<Renderer> ().sortingOrder = order;
    }
}


也可以通过particle system中的Render面板属性修改,可以直接看到效果(前面的做法是参照网上资料的,后面的做法是看到5.0后,把Renderer作为Component,所以在属性中可以查询到该组件),如下图所示:



参考文章:http://www.iverv.com/2015/02/unity-2dparticlesystemsprite.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值