So here is my code,
public void CheckStatChal()
{
foreach (SpotUIBase menu in thisSpot.ownMenus)
{
if (menu.uiSort == SpotUISort.StatEvent)
{
if(menu != null)
Debug.Log("Menu name is "+menu.Name);
var statEvent = menu as StatEvent;
if (statEvent == null)
{
Debug.Log("Stat event is null, name is "+thisSpot.Name);
continue;
}
.......... [1]
public SpecialSpotClass thisSpot;
public abstract class SpecialSpotClass
{
public List<SpotUIBase> ownMenus = new List<SpotUIBase>();
....
public class SpotUIBase
{
public SpotUISort uiSort;
....
public class StatEvent : SpotUIBase
{
....
public enum SpotUISort{
Inn, Shop, Bar,
I am using Unity engine now. So if run this code, I got Debug.Log("Menu name is "+menu.Name); and Debug.Log("Stat event is null, name is "+thisSpot.Name); both. Why? menu is not null, but after downcast it, it become null? I don't understand this why.
So in this code, I want to execute [1] part below codes, but [statEvent] is null, so all the code below does not called by (continue keyword)
Why downcast become null?
Help please.