Spell activeSpell;
void start()
{
// Fireball myFireball = new Fireball();
// Здесь меняешь нужные данные
// bbbb.manaCost = 8;
// activeSpell = myFireball;
activeSpell = new Fireball();
}
Class Spell : MonoBehaviour
{
//int manaCost;
virtual void CastSpell()
{
// То, что ты напишешь здесь, будет так же работать в base.CastSpell()
}
}
Class Character : MonoBehaviour
{
Spell activeSpell;
void GetSpell()
{
activeSpell = GetComponent < Spell>(); // берет твой файрбол, но при этом видит его лишь как заклинание
}
void TryCastSpell()
{
activeSpell.CastSpell();
}
}
Class Fireball : Spell
{
override CastSpell()
{
base.CastSpell();
// Сюда пишешь логику именно для этого заклинания
}
}
private float vertPos;
private float time = 1f;
ScrollRect scrollRect;
private void Start(){
scrollRect = Scrollview.GetComponent<ScrollRect>();
vertPos = 1f;
}
private void Update(){
Mathf.Lerp(scrollRect.verticalNormalizedPosition, vertPos, time)
}
public void NavButtonDown_Click(){
StartCoroutine(ScrollToTop ());
}
public void NavButtonUp_Click(){
StartCoroutine(ScrollToBottom());
}
IEnumerator ScrollToTop ( )
{
yield return new WaitForEndOfFrame ( ) ;
vertPos = 1f ;
}
IEnumerator ScrollToBottom ( )
{
yield return new WaitForEndOfFrame ( ) ;
vertPos = 0f ;
}