前提・実現したいこと
UnityにてSRPGのゲームを制作しています。
スキル関係の実装で行き詰ったので質問させていただきます。
現在、スキルクラスはScriptableObjectで作り、それぞれのスキルで
相手、自分への追加効果をInspector上から設定できるようにしたいと考えています。
=== 追記 ===
具体的には
1.enumのようなポップアップのリストから効果を選ぶ(効果なし、状態異常付与、能力低下…など)
2.選択に応じて効果クラスのメンバ変数を表示(状態異常付与:状態以上の種類,付与する確率…など)
以上のようなことをやりたいです
↓理想
【相手への効果:100%で命中率1段階減少 , 自分への効果:なし】
【相手への効果:10%で麻痺 , 自分への効果:反動ダメージ30】
スキルのクラス
C#
1// 攻撃のスキルクラス 2[CreateAssetMenu(menuName="ScriptableObject/AttackSkill")] 3public class AttackSkill : Skill 4{ 5 #region 変数 6 7 public int damage; 8 9 public int Accuracy; 10 11 public SkillEffect thereEffect; 12 13 public SkillEffect selfEffect; 14}
効果のクラス
C#
1// 効果の基底クラス 2[System.Serializable] 3public class SkillEffect 4{ 5 public EffectType type; 6 7 public void Execut(){} 8}
C#
1// 状態異常を付与する効果 2[System.Serializable] 3public class AbnormalityEffect : SkillEffect 4{ 5 // 状態異常の種類 6 public AbnormalityType abnormality; 7 8 // 確率 9 public float percent; 10 11 public override void Execute() 12 { 13 // 状態異常の付与 14 } 15}
問題点
現在の実装ではAttackSkillクラスは効果の親クラスを持っているだけなので、派生クラスのメンバにアクセスできません。
さらに、1つのInspector上で効果まで編集するとなると、効果の種類によって動的に項目を変える必要がありました。
Editor拡張などでどうにかならないかと試行錯誤しましたが、経験と知識不足で解決方法が思いつかず困っています。
根本的な設計の問題などの指摘や、解決のためのアイデアなどでもご回答いただければ幸いです。
回答1件
あなたの回答
tips
プレビュー