hellbound/Assets/Sources/Feel/MMTools/Tools/MMObservable/Demo/MMObservableDemoObserverAut...

54 lines
1.5 KiB
C#
Raw Normal View History

2021-11-26 11:16:25 +03:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace MoreMountains.Tools
{
/// <summary>
/// A test class used to demonstrate the MMObservable pattern in the MMObservableDemo scene
/// This one disables itself on Awake, and passively listens for changes, even when disabled
/// </summary>
public class MMObservableDemoObserverAutoSleep : MonoBehaviour
{
public MMObservableDemoSubject TargetSubject;
protected virtual void OnSpeedChange()
{
this.transform.position = this.transform.position.MMSetY(TargetSubject.PositionX.Value);
}
/// <summary>
/// On awake we start listening for changes
/// </summary>
protected virtual void Awake()
{
TargetSubject.PositionX.OnValueChanged += OnSpeedChange;
this.enabled = false;
}
/// <summary>
/// On destroy we stop listening for changes
/// </summary>
protected virtual void OnDestroy()
{
TargetSubject.PositionX.OnValueChanged -= OnSpeedChange;
}
/// <summary>
/// On enable we do nothing
/// </summary>
protected virtual void OnEnable()
{
}
/// <summary>
/// On disable we do nothing
/// </summary>
protected virtual void OnDisable()
{
}
}
}