Unity 6.3
0 онлайн 91 гостей 3 в системе
Вход

ProfilerModuleViewController.CreateView

Declaration

protected UIElements.VisualElement CreateView();

Возвращаемое значение

VisualElement Возвращает вид контроллера вида. A VisualElement.

Описание

Создает вид контроллера вида. Unity вызывает этот метод автоматически, когда он собирается отобразить вид контроллера вида в первый раз.

Этот метод необходимо переопределить, чтобы построить дерево представления контроллера. Для этого загрузите визуальное дерево из UXML файл, или построить вид прямо в C#, как показано в примере кода.

using Unity.Profiling.Editor;
using UnityEditor;
using UnityEngine.UIElements;

public class SingleCounterViewController : ProfilerModuleViewController { ProfilerCounterDescriptor m_Counter; Label m_CounterLabel;

public SingleCounterViewController(ProfilerWindow profilerWindow, ProfilerCounterDescriptor counter) : base(profilerWindow) { m_Counter = counter; }

protected override VisualElement CreateView() { // Create a simple view with a single label. var view = new VisualElement(); m_CounterLabel = new Label(); view.Add(m_CounterLabel);

// Subscribe to Profiler window SelectedFrameIndexChanged event. ProfilerWindow.SelectedFrameIndexChanged += OnSelectedFrameIndexChanged;

// Populate label with counter value in selected frame. ReloadData();

return view; }

protected override void Dispose(bool disposing) { if (!disposing) return;

// Unsubscribe from Profiler window SelectedFrameIndexChanged event. ProfilerWindow.SelectedFrameIndexChanged -= OnSelectedFrameIndexChanged;

base.Dispose(disposing); }

void OnSelectedFrameIndexChanged(long selectedFrame) { // Update label with counter value in selected frame. ReloadData(); }

void ReloadData() { // Update label text with formatted counter value in selected frame. var selectedFrameIndexInt32 = System.Convert.ToInt32(ProfilerWindow.selectedFrameIndex); var formattedCounterValue = UnityEditorInternal.ProfilerDriver.GetFormattedCounterValue(selectedFrameIndexInt32, m_Counter.CategoryName, m_Counter.Name); m_CounterLabel.text = $"{m_Counter}: {formattedCounterValue}"; } }

Дополнительные ресурсы: ,ProfilerWindow.SelectedFrameIndexChanged,, ,ProfilerModule,, ,ProfilerCounterDescriptor,.