Руководство по разработке эффекта загрузки
LCC Unity SDK поддерживает эффекты загрузки. Эффект загрузки распространяется наружу на 720 градусов от заданной точки, имитируя процесс появления из ничего. Ниже описаны полные шаги по реализации эффекта загрузки.
Шаг 1: Создайте сцену и GameObject
Создайте совершенно новую сцену в Unity. Unity по умолчанию создаёт Main Camera и Directional Light.
Настройте Main Camera
Выберите Main Camera в окне Hierarchy и задайте его свойства в окне Inspector, как показано ниже.

Настройка свойств Main Camera
Создайте LCCManager
Щёлкните правой кнопкой мыши в пустой области окна Hierarchy, выберите Create Empty во всплывающем меню, чтобы создать пустой GameObject, назовите его LCCManager, нормализуйте его Transform и добавьте к нему скрипт LCCManager через Add Component.

Создание GameObject LCCManager и добавление скрипта LCCManager
Создайте LCCRenderer
Щёлкните правой кнопкой мыши в пустой области окна Hierarchy, выберите Create Empty, чтобы создать пустой GameObject, назовите его LCCRenderer и задайте его Transform значения Rotation.x = -90 и Scale.x = -1.

Создание LCCRenderer и настройка его Transform (Rotation.x = -90, Scale.x = -1)
Примечание:
Настройки Transform GameObject LCCRenderer (Rotation.x = -90, Scale.x = -1) выравнивают его с системой координат данных LCC. Подробнее о выравнивании системы координат см. в разделе «Система координат данных LCC» документа Введение в Unity SDK.
Шаг 2: Напишите скрипт для запуска эффекта
Создайте новый скрипт C# с именем VFX.cs со следующим кодом:
using LCCCore;
using UnityEngine;
public class VFX : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath;
private LCCCore.Renderer m_renderer;
void Start()
{
m_manager.SetPlatformType(PlatformType.PC);
m_manager.SwitchRenderPass(ActiveRenderMode.SingleRender);
Debug.Log("Запущено, загрузка данных...");
m_renderer = m_manager.GetRender(this.transform);
m_renderer.Load(m_FilePath, onProgress, onComplete);
}
private void onProgress(float _progress)
{
Debug.Log($"Прогресс загрузки: {_progress:P1}");
}
private void onComplete()
{
Debug.Log("Загрузка завершена, включение VFX ...");
Vector3 pos = Camera.main.transform.position + Camera.main.transform.forward * 2.0f;
m_manager.TriggerVFX(pos);
}
}
Примечание:
Эффект должен запускаться после завершения загрузки LCC-сцены, поэтому
TriggerVFX()вызывается в обратном вызовеonComplete. В этом примере после завершения загрузки данных эффект запускается в 2 метрах перед камерой рендеринга.
Шаг 3: Прикрепите скрипт и задайте путь к данным
- Прикрепите скрипт
VFX.csк GameObject LCCManager в окне Hierarchy. - В окне Inspector перетащите GameObject LCCManager на свойство Manager скрипта.
- Заполните путь к файлу LCC в свойстве File Path скрипта.

Прикрепление скрипта VFX и настройка свойств Manager и File Path
Шаг 4: Запустите
Нажмите кнопку Play в окне Game, чтобы увидеть эффект загрузки в реальном времени в сцене. Эффект распространяется наружу на 720 градусов от точки запуска.

Эффект загрузки в реальном времени в сцене после запуска
Ключевые шаги
Ключевые шаги для загрузки эффекта в сцене 3DGS:
- Убедитесь, что GameObject LCCManager и LCCRenderer созданы в сцене с правильным Transform.
- Убедитесь, что эффект запускается в коде после завершения загрузки LCC-сцены (то есть в обратном вызове
onComplete). - Мировая координата, переданная в
TriggerVFX(), определяет исходную точку распространения эффекта.
API, связанный с эффектом
LCC Unity SDK предоставляет API запуска эффекта через LCCManager. Он должен вызываться после завершения загрузки LCC-сцены (то есть в обратном вызове onComplete).
TriggerVFX
// Возвращаемое значение: void
public void TriggerVFX(Vector3 vfxOriginW, int vfxid = 0)
Запускает эффект в заданной мировой координате, и эффект распространяется наружу на 720 градусов от этой координатной точки.
| Параметр | Тип | Описание |
|---|---|---|
vfxOriginW | Vector3 | Мировая координата исходной точки эффекта |
vfxid | int | Идентификатор эффекта, необязательный, по умолчанию 0 |
Пример использования:
Vector3 pos = Camera.main.transform.position + Camera.main.transform.forward * 2.0f;
m_manager.TriggerVFX(pos);
Примечания:
- Должен вызываться после завершения загрузки LCC-сцены.
vfxOriginW— мировая координата начальной точки эффекта.- После вызова ключевое слово шейдера переключается на
_VFXMIX.