私も初心者なので分かりませんが、
判別自体を無くしてしまうとか?
MonoBehaviorは継承させない方がスマートだったか?
using System.Collections.Generic;
using UnityEngine;
public class EnemyController : MonoBehaviour
{
public static List<ICharacter> enemys = new List<ICharacter>();
private void Update()
{
if (Input.GetKeyDown(KeyCode.Space)) Method();
}
void Method()
{
foreach (var enemy in enemys) enemy.Method();
}
}
public interface ICharacter
{
void Method();
}
using UnityEngine;
public abstract class Character : MonoBehaviour, ICharacter
{
void Start() => EnemyController.enemys.Add(this);
public virtual void Method() => Debug.Log("指定なし");
}
using UnityEngine;
public class FastCharacter : Character
{
public override void Method() => Debug.Log("足が速い");
}
using UnityEngine;
public class SlowCharacer : Character
{
public override void Method() => Debug.Log("足が遅い");
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/03 10:50