您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
40 行
1.0 KiB
40 行
1.0 KiB
using GameplayIngredients.Events;
|
|
using NaughtyAttributes;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace GameplayIngredients.Interactions
|
|
{
|
|
[AdvancedHierarchyIcon("Packages/net.peeweek.gameplay-ingredients/Icons/Misc/ic-interactive.png")]
|
|
public abstract class Interactive : EventBase
|
|
{
|
|
[Header("Events")]
|
|
[SerializeField, ReorderableList]
|
|
protected Callable[] OnInteract;
|
|
|
|
protected virtual void OnEnable()
|
|
{
|
|
InteractionManager.RegisterInteractive(this);
|
|
}
|
|
|
|
protected virtual void OnDisable()
|
|
{
|
|
InteractionManager.RemoveInteractive(this);
|
|
}
|
|
|
|
public bool Interact(InteractiveUser user)
|
|
{
|
|
if (user.CanInteract(this) && CanInteract(user))
|
|
{
|
|
Callable.Call(OnInteract, user.gameObject);
|
|
return true;
|
|
}
|
|
else
|
|
return false;
|
|
}
|
|
|
|
public abstract bool CanInteract(InteractiveUser user);
|
|
|
|
}
|
|
}
|