67 lines
1.9 KiB
C#
67 lines
1.9 KiB
C#
using UnityEngine;
|
|
|
|
namespace Mirror.Examples.PickupsDropsChilds
|
|
{
|
|
public class EquippedBall : MonoBehaviour, IEquipped
|
|
{
|
|
// Note: This example doesn't include animations or sounds for simplicity.
|
|
// These are just here for illustration purposes...the implementation
|
|
// methods could do something interesting like play a sound or animation.
|
|
[Header("Components")]
|
|
public Animator animator;
|
|
public AudioSource audioSource;
|
|
|
|
[Header("Equipped Item")]
|
|
[SerializeField]
|
|
EquippedItemConfig _equippedItemConfig;
|
|
|
|
public EquippedItemConfig equippedItemConfig
|
|
{
|
|
get => _equippedItemConfig;
|
|
set
|
|
{
|
|
Debug.Log($"{transform.root.name} EquippedItemConfig set from {_equippedItemConfig} to {value}", gameObject);
|
|
_equippedItemConfig = value;
|
|
}
|
|
}
|
|
|
|
void Reset()
|
|
{
|
|
equippedItemConfig = new EquippedItemConfig { usages = 3, maxUsages = 3 };
|
|
}
|
|
|
|
// Play appropriate animation or sound
|
|
public void Use()
|
|
{
|
|
// Effectively unlimited uses
|
|
if (equippedItemConfig.maxUsages == 0)
|
|
{
|
|
Debug.Log("Ball used");
|
|
return;
|
|
}
|
|
|
|
if (equippedItemConfig.usages > 0)
|
|
Debug.Log("Ball used");
|
|
else
|
|
Debug.Log("Ball is out of uses");
|
|
}
|
|
|
|
// Play appropriate animation or sound
|
|
public void AddUsages(byte usages)
|
|
{
|
|
Debug.Log($"Ball added {usages} usages");
|
|
}
|
|
|
|
// Play appropriate animation or sound
|
|
public void ResetUsages()
|
|
{
|
|
Debug.Log("Ball reset");
|
|
}
|
|
|
|
// Play appropriate animation or sound
|
|
public void ResetUsages(byte usages)
|
|
{
|
|
Debug.Log($"Ball reset usages to {usages}");
|
|
}
|
|
}
|
|
} |