public void stopWalk() { if (target == home || target == waterbank || target == plate) { angelAction = AngelAction.Idle; } agent.isStopped = true; agent.ResetPath(); anim.SetBool("Walk", false); anim.SetBool("Run", false); anim.SetBool("Idle", true); isWalk = false; target = null; }
// Start is called before the first frame update void Start() { agent = GetComponent <NavMeshAgent>(); anim = GetComponent <Animator>(); SleepAngel.GetComponent <Animator>().SetBool("Sleep", true); SkinnedMeshRenderer[] comps = SleepAngel.GetComponentsInChildren <SkinnedMeshRenderer>(); foreach (SkinnedMeshRenderer comp in comps) { comp.enabled = false; } #region creat angelAtHome angelAtHome = new List <AngelAction>(); angelAtHome.Add(AngelAction.Idle); angelAtHome.Add(AngelAction.Idle); angelAtHome.Add(AngelAction.Idle); angelAtHome.Add(AngelAction.FeedChicken); angelAtHome.Add(AngelAction.FeedChicken); angelAtHome.Add(AngelAction.Harvest); angelAtHome.Add(AngelAction.Harvest); angelAtHome.Add(AngelAction.PlayQin); angelAtHome.Add(AngelAction.SeeFish); angelAtHome.Add(AngelAction.SeeFish); #endregion #region creat angelAtHomeScare angelAtHomeScare = new List <AngelAction>(); angelAtHomeScare.Add(AngelAction.Idle); angelAtHomeScare.Add(AngelAction.Idle); angelAtHomeScare.Add(AngelAction.Idle); angelAtHomeScare.Add(AngelAction.Idle); angelAtHomeScare.Add(AngelAction.FeedChicken); angelAtHomeScare.Add(AngelAction.Harvest); angelAtHomeScare.Add(AngelAction.PlayQin); angelAtHomeScare.Add(AngelAction.PlayQin); angelAtHomeScare.Add(AngelAction.PlayQin); angelAtHomeScare.Add(AngelAction.SeeFish); #endregion angelAction = AngelAction.Idle; }
public void calculateProb() { if (gameManager.chapter == GameManager.Chapter.Tree && angelAction != AngelAction.GoOut) { if (chickenOut) { target = ChickenPos; angelAction = AngelAction.GoOut; anim.Play("Idle"); walk(); } else if (goOut_tree / Random.Range(30.0f, 100.0f) >= 1.0f) { target = tree; goOut_tree = 0.0f; angelAction = AngelAction.GoOut; anim.Play("Idle"); walk(); } else if (goOut_plateshop / Random.Range(30.0f, 100.0f) >= 1.0f) { target = plateshop; goOut_plateshop = 0.0f; angelAction = AngelAction.GoOut; anim.Play("Idle"); walk(); } else if (goOut_water / Random.Range(30.0f, 100.0f) >= 1.0f) { target = well; goOut_water = 0.0f; angelAction = AngelAction.GoOut; anim.Play("Idle"); walk(); } } }
// Update is called once per frame void Update() { #region ensure love & scare if (love < 0.0f) { love = 0.0f; } if (love > uIManager.loveMax) { love = uIManager.loveMax; } if (scare < 0.0f) { scare = 0.0f; } if (scare > uIManager.scareMax) { scare = uIManager.scareMax; } #endregion if (fruit != null) { if (!fruit.activeSelf || fruit.tag != "Fruit") { fruit = null; stopWalk(); } else { target = fruit.transform; walk(); } } if (isWalk) { Vector3 dis = target.position - gameObject.transform.position; dis.y = 0.0f; if (dis.magnitude < 0.3) { Debug.Log(angelAction); if (target == tree) { anim.Play("Sit_ground"); } else if (target == well) { getwater = true; wellBGM.Play(); pickfruit.SetActive(false); StartCoroutine(wellBGMPlay()); } else if (target == plateshop) { getplate = true; } else if (target == waterbank) { getwater = false; fillwater = true; } else if (target == plate) { getplate = false; fillplate = true; } stopWalk(); if (gameManager.chapter == GameManager.Chapter.Tree && gameManager.pcPlayer.day) { if (angelAction == AngelAction.FeedChicken || angelAction == AngelAction.Harvest) { anim.Play("Grab_from_floor"); return; } else if (angelAction == AngelAction.SeeFish) { gameObject.transform.rotation = pool.rotation; anim.Play("Sit_chair"); return; } else if (angelAction == AngelAction.PlayQin) { gameObject.transform.rotation = qin.rotation; anim.Play("Play_piano"); GuzhengBGM.Play(); scare -= 40.0f; return; } else if (angelAction == AngelAction.Idle) { anim.Play("Stand"); return; } } if (chickenOut) { chickenOut = false; pickChicken = true; } if (fruit != null) { anim.Play("Grab_from_floor"); if (fruit.name == "Apple") { love += 3.0f; uIManager.showFeeling = UIManager.Emoji.Happy; } else if (fruit.name == "Banana") { love -= 1.0f; uIManager.showFeeling = UIManager.Emoji.Dissatisfied; } else if (fruit.name == "Kiwi") { love += 1.0f; uIManager.showFeeling = UIManager.Emoji.Happy; } else if (fruit.name == "Pear") { love += 5.0f; uIManager.showFeeling = UIManager.Emoji.Happy; } else if (fruit.name == "Strawberry") { uIManager.showFeeling = UIManager.Emoji.Confused; } fruit.SetActive(false); fruit = null; } if (gameManager.chapter == GameManager.Chapter.Tree_night || gameManager.chapter == GameManager.Chapter.Parrot_night) { setSleep(true); } if (gameManager.chapter == GameManager.Chapter.Tree && angelAction == AngelAction.GoOut) { StartCoroutine("Leave"); } } } #region IF Angle at home and Idle if (gameManager.chapter == GameManager.Chapter.Tree && anim.GetCurrentAnimatorStateInfo(0).IsName("Idle") && !isWalk && angelAction != AngelAction.GoOut && !getwater && !getplate) { AngelAction newAction; if (scare < 100) { angelAtHome = RandomSortList(angelAtHome); newAction = angelAtHome[0]; } else { angelAtHomeScare = RandomSortList(angelAtHomeScare); newAction = angelAtHomeScare[0]; } if (newAction == angelAction && newAction != AngelAction.Idle) { return; } //Debug.Log(newAction); if (newAction == AngelAction.FeedChicken) { target = chicken; walk(); } else if (newAction == AngelAction.Harvest) { target = farm; walk(); } else if (newAction == AngelAction.SeeFish) { target = pool; walk(); } else if (newAction == AngelAction.PlayQin) { target = qin; walk(); } else if (newAction != angelAction) { target = idle; walk(); } else { anim.Play("Stand"); return; } angelAction = newAction; } #endregion if (!anim.GetCurrentAnimatorStateInfo(0).IsName("Play_piano")) { GuzhengBGM.Stop(); } if (anim.GetBool("Sleep")) { scare -= 0.1f; } }