@Xoggas

Как изменить переменную маркера на таймлайне через код?

У меня есть таймлайн с маркерами, но мне нужно через код менять нужную мне переменную у определённого маркера. Маркеры кастомные.
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;

public class RECTANGLESIGNAL : Marker, INotification, INotificationOptionProvider
{
    [SerializeField] private bool retroactive = false;
    [SerializeField] private bool emitOnce = true;

    [Space(20)]
    [SerializeField] private string side = "any";
    [SerializeField] private float speed = 10f;

    public PropertyName id => new PropertyName();
    public string Side => side;
    public float Speed => speed;
    
    public NotificationFlags flags => (retroactive ? NotificationFlags.Retroactive : default) | (emitOnce ? NotificationFlags.TriggerOnce : default);
}

Например мне нужно через скрипт поменять значение скорости, возможно ли это вообще сделать? (не смотря на то, что переменные приватные)
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ответы на вопрос 1
robinzonejob
@robinzonejob
разработчик .NET
не смотря на то, что переменные приватные

Приватные поля на то и приватные, что к ним можно обращаться только в рамках класса.

Не совсем понятно, в чем заключается сложность. Вы можете сделать публичный сеттер для свойства Speed или написать публичный метод SetSpeed(float speedValue), через который, в клиенстком коде, менять значение поля speed.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы