Version: 2022.3
言語: 日本語

AssetPostprocessor.OnPreprocessLightDescription(LightDescription,Light, AnimationClip[])

マニュアルに切り替える

パラメーター

description A LightDescription that describes the imported camera properties and animations.
light The light generated by the Model Importer.
animations The animation clips generated by the Model Importer.

説明

Add this function to a subclass to recieve a notification when a light is imported from a Model Importer.

Unity only calls this function when ModelImporter.ImportLights is true. This function gives you control over light properties and animations during the model import process. The LightDescription structure contains all the light data from the imported file. You can use it to populate the light, its GameObject, and animation clips.

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

public class SetupLightFromCameraDescription : AssetPostprocessor { void OnPreprocessLightDescription(LightDescription description, Light light, AnimationClip[] clips) { var modelImporter = assetImporter as ModelImporter; var globalScale = modelImporter.globalScale;

description.TryGetProperty("LightType", out int lightType);

switch (lightType) { case 0: light.type = LightType.Point; break; case 1: light.type = LightType.Directional; break; case 2: light.type = LightType.Spot; break; case 3: light.type = LightType.Rectangle; break; }

description.TryGetProperty("Intensity", out float intensity); description.TryGetProperty("Color", out Vector4 color); description.TryGetProperty("CastShadows", out int castShadows); description.TryGetProperty("FarAttenuationEnd", out float farAttenuationEnd); description.TryGetProperty("OuterAngle", out float outerAngle);

light.intensity = intensity * 0.01f; light.color = color; light.shadows = castShadows == 1 ? LightShadows.Hard : LightShadows.None;

if (farAttenuationEnd > 0) light.range = farAttenuationEnd * globalScale;

if (outerAngle > 0) light.spotAngle = outerAngle; } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961