1using System.Collections;2using System.Collections.Generic;3using UnityEngine;4using System;56public class JOE : MonoBehaviour
7{8[SerializeField] private FoodMenu breakfast;9 public Type aa;1011 private voidStart()12{13if(breakfast.japaneseFood == JapaneseFood.NONE)14{15if(breakfast.chineseFood == ChineseFood.NONE)16{17 Debug.Log("今日のご飯無し!!!");18}19else20{21 Debug.Log("今日のご飯は中華料理の"+22 Enum.GetName(typeof(ChineseFood), breakfast.chineseFood)+"です");23}24}25else26{27if(breakfast.chineseFood == ChineseFood.NONE)28{29 Debug.Log("今日のご飯は日本料理の"+30 Enum.GetName(typeof(JapaneseFood), breakfast.japaneseFood)+"です");31}32else33{34 Debug.Log("一食一品まで!!!");35}36}37}38}3940[System.Serializable]41public class FoodMenu
42{43 public JapaneseFood japaneseFood;44 public ChineseFood chineseFood;4546// 理想47// public Type foodType;48// public type(foodType) food;49}505152// 主食53public enumJapaneseFood54{55 UDON,56 SOBA,57 NONE
58}5960public enumChineseFood61{62 RAMEN,63 GYOZA,64 NONE
65}
イメージ図
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
退会済みユーザー
2021/05/04 07:15
なんか自分も昔調べた記憶があります。ネットで漁っただけですが、
言語仕様として間違っているとか、静的言語を否定する事です、みたいな批判的な回答だらけだった記憶があります。
Object型にしてキャストとか、Dynamicで、Reflectionでとか。思っていたのと違う、、、みたいな方向のお話になっていった記憶があります。
知識ないので結局理解出来ませんでした。今も理解出来てません。
なのでいろいろ適当ですが現実的にはこういう系なのか?
using UnityEngine;
public class Food : MonoBehaviour
{
public enum Country
{
JP,
CHA,
NONE,
}
string Name(Country country)
{
return country == Country.JP ? "日本" : country == Country.CHA ? "中国" : "無し";
}
IFood food;
private void Start()
{
food = new UDON();
Debug.Log("今日のごはんは" + Name(food.Country) + "料理の" + food.Name + "です");
food = new RAMEN();
Debug.Log("今日のごはんは" + Name(food.Country) + "料理の" + food.Name + "です");
}
}
public interface IFood
{
string Name { get; }
Food.Country Country { get; }
}
public class UDON : IFood
{
string name = "うどん";
public string Name => name;
Food.Country country = Food.Country.JP;
public Food.Country Country => country;
}
public class SOBA : IFood
{
string name = "そば";
public string Name => name;
Food.Country country = Food.Country.JP;
public Food.Country Country => country;
}
public class RAMEN : IFood
{
string name = "ラーメン";
public string Name => name;
Food.Country country = Food.Country.CHA;
public Food.Country Country => country;
}
public class GYOZA : IFood
{
string name = "チャオズ";
public string Name => name;
Food.Country country = Food.Country.CHA;
public Food.Country Country => country;
}
public class NONE : IFood
{
string name = "なし";
public string Name => name;
Food.Country country = Food.Country.NONE;
public Food.Country Country => country;
}
私も詳しい方に教えていただきたいです。やっぱり理解できない気もしますが