/// <summary> /// 素材がレシピ通りかどうかを判定 /// </summary> void CookingRecipe() { //入れられた素材をJam,Choco,Doughの順に並び替える checkLis = elemLis.OrderBy(m => m.type.ToString().Length).ThenBy(m => m.type.ToString()).ToArray(); //レシピを判定する //elemLis == {Jam,Dough} → ジャムクッキー //elemLis == {Choco,Dough} →チョコクッキー //elemLis == {Dough,Dough} →ノーマルクッキー foreach (CookingMaterial mat in createCookie.setCookie) { //レシピ通りの場合、2つめの要素は必ずDough if (checkLis[1].type == CookingMaterialType.Dough) { //作ったクッキーをelemLis[0]に保存 if (mat.type.ToString() == "Knead_" + checkLis[0].type.ToString()) { createDone = mat; DisplayCookie(createDone); break; } } //レシピと違う場合はダークマター else if (mat.type == CookingMaterialType.Knead_DarkMatter) { createDone = mat; DisplayCookie(mat); break; } } }
/// <summary> /// 何を作るかのレシピ判定 /// </summary> void CookingRecipe() { CookingMaterial mat = createCookie.setCookie[0]; switch (elemLis[0].type) { case CookingMaterialType.Knead_Dough: mat = createCookie.setCookie[0]; break; case CookingMaterialType.Knead_Choco: mat = createCookie.setCookie[1]; break; case CookingMaterialType.Knead_Jam: mat = createCookie.setCookie[2]; break; case CookingMaterialType.Knead_DarkMatter: mat = createCookie.setCookie[3]; break; } createDone = mat; }
IEnumerator DestroyCookie(GameObject col) { cookieType = col.GetComponent <CookingMaterial>(); if (cookieType == null) { yield break; } flg = true; if (cookieType.type == enemyType.type && flg) { flg = false; AudioManager.Instance.PlaySE("EnemyDown"); GameObject effect = Instantiate(effectPre, transform.position, Quaternion.identity, transform.parent); Destroy(effect, 1.0f); EnemyDeath._EnemyDeath -= 1; ImageNumber._EnemyCountFlg = true; Destroy(col.gameObject); Destroy(gameObject); GameObject human = Instantiate(humanPre, transform.position, Quaternion.identity, transform.parent); Destroy(human, 3.0f); } }
/// <summary> /// 素材のゲットセット /// </summary> /// <param name="exe"></param> void SetGet_exe() { if (HaveChildObj() == false) { haveObjMat = exe.GetElement(); Instantiate(haveObjMat.gameObject, transform); } }
/// <summary> /// 素材を置く /// </summary> /// <param name="mat"></param> public void SetElement(CookingMaterial mat) { setElem = mat; if (setElem != null) { CookieRecipe(); } }
/// <summary> /// 入れた素材をリストに入れ、調理を始める /// </summary> /// <param name="mat">入れた素材</param> public void SetElement(CookingMaterial mat) { elemLis.Add(mat); if (elemLis.Count == 1) { StartCoroutine(Cooking()); } }
/// <summary> /// テーブルに置いたクッキーを見えるようにする /// </summary> /// <param name="mat">素材のtype</param> void DisplayElem(CookingMaterial mat) { //置かれた素材を机の上に配置 GameObject display = Instantiate( mat.gameObject, displayPos[elemLis.Count - 1].transform.position, Quaternion.identity, displayPos[elemLis.Count - 1].transform); // 表示位置の調整 display.transform.eulerAngles = new Vector3(-90, 0, 0); }
/// <summary> /// 子オブジェクトの管理と初期化 /// </summary> void HaveCookieManager() { //子オブジェクトの特定 if (transform.childCount >= haveObjCount + 1) { haveObj = transform.GetChild(haveObjCount).gameObject; haveObjMat = haveObj.GetComponent <CookingMaterial>(); haveObj.transform.localPosition = havePos.localPosition; } }
/// <summary> /// 机に素材を置く /// </summary> /// <param name="mat">素材の種類</param> public void SetElement(CookingMaterial mat) { //入れた素材をリストに格納 elemLis.Add(mat); DisplayElem(mat); //二つの素材が入っていたら if (elemLis.Count == 2) { //調理をはじめる StartCoroutine(Cooking()); } }
void Update() { if (exit.transform.childCount >= 1) { //AnswerCookieはexitの子オブジェクト Answer = exit.transform.GetChild(0).GetComponent <CookingMaterial>(); } //表示時間 if (missImg.activeSelf) { StartCoroutine(DisplayTime()); } }
/// <summary> /// こねる机の素材のゲットセット /// </summary> /// <param name="exe"></param> void KneadSetGet_kit() { //ゲット if (HaveChildObj() == false) { haveObjMat = kit.GetElement(); if (haveObjMat != null) { Instantiate(haveObjMat.gameObject, transform); } } //セット else if (haveObjMat != null) { kit.SetElement(haveObjMat); haveObjMat = null; } }
/// <summary> /// 置こうとしているクッキーと、出さないといけないクッキーが同じかどうかを判定 /// </summary> void CookieRecipe() { if (Answer.type == setElem.type && exit.transform.childCount != 0) { //クッキーを出す cookieDone = setElem; CookingMaterial create = Instantiate(cookieDone, exit.transform.position, Quaternion.identity, exit.transform); create.gameObject.AddComponent <SoldierMove>(); create.gameObject.GetComponent <BoxCollider>().isTrigger = false; //出したクッキーの角度を調整 float xRotate = -90.0f; create.transform.eulerAngles = new Vector3(xRotate, 0, 0); setElem = null; } }
void Update() { //敵クッキーが湧いていたら if (transform.childCount != 0) { //子オブジェクトの取得 GameObject childCookie = transform.GetChild(0).gameObject; //子オブジェクトのtypeを取得する CookingMaterial cookieAnswer = childCookie.GetComponent <CookingMaterial>(); if (cookieAnswer == null) { return; } switch (cookieAnswer.type) { case CookingMaterialType.Bake_Dough: answer.sprite = cookieImage.answerImage[0]; break; case CookingMaterialType.Bake_Choco: answer.sprite = cookieImage.answerImage[1]; break; case CookingMaterialType.Bake_Jam: answer.sprite = cookieImage.answerImage[2]; break; } answerColor.a = 1; } //湧いていなかったら else { answerColor.a = 0; } answer.color = answerColor; }
/// <summary> /// 作ったクッキーを机の上に置く /// </summary> /// <param name="mat">作ったクッキーのtype</param> void DisplayCookie(CookingMaterial mat) { for (int i = 0; i < displayPos.Length - 1; i++) { Destroy(displayPos[i].gameObject.transform.GetChild(0).gameObject); } GameObject effect = Instantiate(effectPre, transform); AudioManager.Instance.PlaySE("Knead"); Destroy(effect, 1.0f); GameObject displayCookie = Instantiate( mat.gameObject, displayPos[2].transform.position, Quaternion.identity, displayPos[2].transform); displayCookie.transform.eulerAngles = new Vector3(-90, 0, 0); }
void OnCollisionStay(Collision col) { //各コントローラーのAction1ボタンが押されたら if (Input.GetButtonDown(setting.keyAction)) { //衝突した机の種類を取得、tableKindがついていないオブジェクトだったら処理を中断 table = col.gameObject.GetComponent(typeof(TableKind)) as TableKind; if (table == null) { return; } //衝突した机のinterfaceを取得する exe = col.gameObject.GetComponent(typeof(IExecutable)) as IExecutable; kit = col.gameObject.GetComponent(typeof(IKitchenWare)) as IKitchenWare; switch (table.type) { //素材テーブル case TableType.ElemTable: SetGet_exe(); break; //こねるテーブル case TableType.KneadTable: knead = col.gameObject.GetComponent <KneadTable>(); //入れる if (knead.elemLis.Count < 2 && ElemType() && knead.createDone == null) { KneadSetGet_kit(); Destroy(haveObj); } //出す else if (knead.createDone != null && HaveChildObj() == false && knead.CheckProgress() == 1) { KneadSetGet_kit(); knead.createDone = null; } break; //オーブン case TableType.BakingTable: bake = col.gameObject.GetComponent <BakingTable>(); //入れる if (KneadType() && bake.elemLis.Count <= 0 && bake.createDone == null) { OvenSetGet_kit(); Destroy(haveObj); } //出す else if (bake.createDone != null && HaveChildObj() == false && bake.CheckProgress() == 1) { OvenSetGet_kit(); bake.createDone = null; } break; //コンベア case TableType.ExitTable: ExitTable exit = col.gameObject.GetComponent <ExitTable>(); //入れる if (HaveChildObj() && BakingType(exit)) { exe.SetElement(haveObjMat); haveObjMat = null; Destroy(haveObj); } //出す else if (haveObjMat != null && BakingType(exit) == false) { exit.missImg.SetActive(true); } break; } } }
void Start() { enemyType = GetComponent <CookingMaterial>(); enemyMove = GetComponent <EnemyMove>(); }
public void SetElement(CookingMaterial mat) { }