- Home /
Custom classes, inheritance and the inpector
I am in the middle of implementing a tutorial for my game, and I wish to set it up like this:
Have a base class for the tutorial in TutorialConditional.cs
using UnityEngine;
using System.Collections;
[System.Serializable]
public class TutorialConditional : ScriptableObject
{
public virtual bool IsValid()
{
return true;
}
}
And then have a few inherited conditionals structured like so: TutorialConditionalANDCheck:.cs
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
[System.Serializable]
public class TutorialConditionalANDCheck:TutorialConditional {
public List<TutorialConditional> conditions;
public override bool IsValid()
{
foreach(TutorialConditional cond in conditions)
{
if (!cond.IsValid()) return false;
}
return true;
}
}
TutorialConditionalORCheck:.cs
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
[System.Serializable]
public class TutorialConditionalORCheck:TutorialConditional {
public List<TutorialConditional> conditions;
public override bool IsValid()
{
foreach(TutorialConditional cond in conditions)
{
if (cond.IsValid()) return true;
}
return false;
}
}
TutorialConditionalEnemyKilled.cs:
using UnityEngine;
using System.Collections;
[System.Serializable]
public class TutorialConditionalEnemyKilled: TutorialConditional
{
public EnemyScript enemy;
public virtual bool IsValid()
{
return enemy.GetHealth() <= 0;
}
}
I then want to have a list of TutorialConditionals set up with my tutorial step scripts so that the tutorial doesn't continue until the conditions are met. Ideally, I would drag the script from the project window and place it in the inspector, and a new instance of the script is created and added to the list that is free for me to edit. I believe there will be custom editor scripts involved, but I am unsure what steps I need to take for this to work for both the base class and the inherited classes (I admit to being new to custom inspectors, but I'm open to anything that works).
Any help in enabling this method of adding new attaching custom non-monobehavior classes with the same root inheritance in a fashion that would allow for editing in the inspector would be greatly appreciated.
Your answer
Follow this Question
Related Questions
An OS design issue: File types associated with their appropriate programs 1 Answer
Custom ordering of variables in inspector when using base and derived classes 1 Answer
Make a field in inspector hold inheriting classes 2 Answers
HideInInspector with inherited variables 1 Answer
Child of Text class not showing added public variable in insepctor 2 Answers