public override void Interact(Action action, Clickable target) { if (action == Action.PICKUP_WATER) { CurrentState = Guy02State.WALKING_TO_WELL; } }
IEnumerator FillBucket() { AudioSource.PlayClipAtPoint(water, Camera.main.transform.position); yield return(new WaitForSeconds(1.5f)); bucketAtWell.SetActive(false); bucketHead.SetActive(true); NextState = Guy02State.COMING_BACK; }
private void OnTriggerStay2D(Collider2D collision) { if (CurrentState == Guy02State.WALKING_TO_WELL && collision.gameObject.GetInstanceID() == wellTarget.GetInstanceID()) { NextState = Guy02State.FILLING_BUCKET; } if (CurrentState == Guy02State.COMING_BACK && collision.gameObject.GetInstanceID() == cauldronTarget.GetInstanceID()) { NextState = Guy02State.DONE; } }
private void Update() { if (NextState == Guy02State.WALKING_TO_WELL || NextState == Guy02State.COMING_BACK) { RandomMovement rm = GetComponent <RandomMovement>(); if (rm) { rm.StopAllCoroutines(); } } if (NextState == Guy02State.FILLING_BUCKET) { StartCoroutine(FillBucket()); } if (NextState == Guy02State.DONE) { bucketHead.SetActive(false); bucketAtCauldron.SetActive(true); } if (NextState != Guy02State.NONE && NextState != CurrentState) { CurrentState = NextState; NextState = Guy02State.NONE; } if (CurrentState == Guy02State.WALKING_TO_WELL) { MoveTowardsTarget(wellTarget.transform.position); } if (CurrentState == Guy02State.COMING_BACK) { MoveTowardsTarget(cauldronTarget.transform.position); } WalkAnimation(); previousPosition = transform.position; }