资源简介

使用ParticleEmitter,ParticleAnimator和ParticleRenderer的游戏对象可以使用此工具转换为使用ParticleSystem和ParticleSystemRenderer组件。
使用转换脚本,只需下载它并将其放在名为Editor的文件夹内的项目文件夹中。接下来,启动编辑器,打开您的项目,然后从菜单中选择Assets / Upgrade Legacy Particles。

由于在Unity的所有最新版本中都不断删除旧粒子,因此该工具无法在所有最新版本中使用:

2017.4和更早版本:将在
2018.1完全运行:如果您的项目中有任何使用旧粒子的脚本,则它们将无法编译该工具将无法使用。
2018.2:与2018.1相同
2018.3:根本无法使用-旧版粒子已从此版本中删除。

因此,除非您没有使用旧粒子的脚本,否则请在Unity 2017.4或更早版本中使用该工具,在这种情况下,2018.1和2018.2将无法使用该工具。

或者,先手动修复脚本,然后再使用2018.1和2018.2。

资源截图

代码片段和文件信息

/*
 * Legacy Particle System Updater
 * A tool that can be used to convert Legacy Particle Systems into new Particle System Components.
 * https://forum.unity.com/threads/release-legacy-particle-system-updater.510879/
 *
 * v1.0
 * Initial release
 *
 * v1.1
 * Fixed incorrect billboard mode
 * Added Undo support
 * Fixed emission using Min and Max state when Min and Max values were the same.
 * Fixed emission when using one shot should be Burst.
 * Added support for sizeGrow.
 *
 * v1.2
 * Fixed incorrect shape when Ellipsoid emitter is (000).
 * Fixed emitterVelocityScale being used incorrectly. It should be inherit velocity.
 * Fixed velocity dampening. We need to apply this to the velocity curve.
 * Set duration to be max lifetime.
 * Fixed particles using transform scale. Legacy did not support this.
 * Fixed size grow. grow is not linear we also did not handle min and max times.
 *
 * v1.3
 * Fixed compilation issues on 2017.1
 * Warning added for Unity version 2018.3 and newer. Legacy particles will be removed in 2018.3.
 *
 * v1.4
 * Fixed incorrect version detection and information in help message.
 *
 * v1.5
 * Added compilation message for 2018.3+ to inform that this script is not supported.
 */

#pragma warning disable 618

#if UNITY_2018_3_OR_NEWER
#error “This script(LegacyParticleUpdater) is not supported in this version please use a Unity version between 2017.4 and 2018.2.
#else

using System;
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine;
using UnityEngine.SceneManagement;

public class LegacyParticleUpdater : scriptableWizard
{
    const string kVersion = “1.5“;

    public enum LegacyCleanupMode
    {
        PreserveLegacyComponents
        DisableLegacyRenderer
        DeleteLegacyComponents
    };

    enum LegacyParticleRenderMode
    {
        Billboard = 0
        Stretch2D = 1
        Stretch3D = 3
        SortedBillboard = 2
        BillboardFixedHorizontal = 4
        BillboardFixedVertical = 5
    };

    public LegacyCleanupMode cleanupMode = LegacyCleanupMode.DisableLegacyRenderer;
    private ParticleEmitter[] components;
    private ParticleEmitter[] prefabs;

    [MenuItem(“Assets/Upgrade Legacy Particles“)]
    public static void ShowWindow()
    {
        scriptableWizard.DisplayWizard(“Upgrade Legacy Particles v“ + kVersion “Upgrade Selected“ “Upgrade Everything“);
    }

    void OnWizardUpdate()
    {
        helpString = @“This script adds ParticleSystem and ParticleSystemRenderer Components to all Gameobjects that contain Legacy Particle Components.
        Legacy Particle System Components can be deleted disabled or preserved for comparison.
        This script supports Unity versions between 2017.4 and 2018.2.“;
    }

    // Find selected assets
    void OnWizardCreate()
    {
        components = Selection.GetFiltered(SelectionMode.Unfiltered);
        prefabs = null;

        UpgradeAll

评论

共有 条评论