浏览代码

Adding new condition script for when a new line is displayed

/main
Amel Negra 3 年前
当前提交
75e90368
共有 2 个文件被更改,包括 63 次插入0 次删除
  1. 52
      UOP1_Project/Assets/Scripts/Characters/StateMachine/Conditions/IsANewLineDisplayedSO.cs
  2. 11
      UOP1_Project/Assets/Scripts/Characters/StateMachine/Conditions/IsANewLineDisplayedSO.cs.meta

52
UOP1_Project/Assets/Scripts/Characters/StateMachine/Conditions/IsANewLineDisplayedSO.cs


using UnityEngine;
using UnityEngine.Localization;
using UOP1.StateMachine;
using UOP1.StateMachine.ScriptableObjects;
[CreateAssetMenu(fileName = "IsANewLineDisplayed", menuName = "State Machines/Conditions/Is A New Line Displayed")]
public class IsANewLineDisplayedSO : StateConditionSO {
[SerializeField] private DialogueLineChannelSO _onLineDisplayed = default;
protected override Condition CreateCondition() => new IsANewLineDisplayedCondition(_onLineDisplayed);
}
public class IsANewLineDisplayedCondition : Condition
{
private DialogueLineChannelSO _sayLineEvent;
private bool _isAnewLineDisplayed = false;
public IsANewLineDisplayedCondition(DialogueLineChannelSO sayLineEvent)
{
_sayLineEvent = sayLineEvent;
}
protected override bool Statement()
{
return _isAnewLineDisplayed;
}
public override void OnStateEnter()
{
if (_sayLineEvent != null)
{
_sayLineEvent.OnEventRaised += OnLineDisplayed;
}
}
public override void OnStateExit()
{
if (_sayLineEvent != null)
{
_sayLineEvent.OnEventRaised -= OnLineDisplayed;
}
_isAnewLineDisplayed = false;
}
private void OnLineDisplayed(LocalizedString line, ActorSO actor)
{
_isAnewLineDisplayed = true;
}
}

11
UOP1_Project/Assets/Scripts/Characters/StateMachine/Conditions/IsANewLineDisplayedSO.cs.meta


fileFormatVersion: 2
guid: 4c79d6f5f75586e4fa3fc91bdc6734b4
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
正在加载...
取消
保存