У меня есть 3 класса, и мне нужно связать их с родовым. Я пытался таким образом, но это не помогает. Потому что у меня нет доступа к полям Sp.
Ch
using System;
using UnityEngine;
public abstract class Ch<C, S> : MonoBehaviour
where C : Ch<C, S>
where S : Sp<S, C>
{
public void Connect()
{
S.iii = 10;
}
}
Sp
using UnityEngine;
public abstract class Sp<S, C> : Singleton<Sp<S, C>>
where S : Sp<S, C>
where C : Ch<C, S>
{
public static int iii = 0;
}
UPD. Если я преобразовать код в следующую форму. Я получаю сообщение об ошибке "Тип Ch не может использоваться в качестве параметра типа C в универсальном типе Up. Нет никакого косвенного обращения к ссылкам из Ch в Ch >>"
using UnityEngine;
public abstract class Sp<C> : Singleton<Sp<C>>
where C : Ch<Sp<C>>
{
public static int i = 0;
}
using System;
using UnityEngine;
public abstract class Ch<S> : MonoBehaviour
where S : Sp<Ch<S>>
{
public void Connect()
{
S.iii = 10;
}
}