public void Update() { if (isGrabbed && eatBoundingBox.gameObject.activeSelf) { #if UNITY_EDITOR if (Input.GetMouseButtonDown(0)) { Grab(); } #else if (Input.touchCount > 0) { if (Input.GetTouch(0).phase == TouchPhase.Ended) { Grab(); } } #endif RaycastHit hit; if (RaycastProvider.GetRaycastHit(eatBoundingBox.raycastTargetLayer, out hit)) { if (hit.point.y > transform.parent.position.y) { transform.position = hit.point; } } } }
// Update is called once per frame void Update() { if (washToggle.isOn) { if (Input.touchCount > 0 || Input.GetMouseButton(0)) { RaycastHit hit; if (RaycastProvider.GetRaycastHit(touchablesLayer, out hit)) { if (hit.collider.GetComponentInParent <PenguinBehavior>() == penguin) { _cleaningObject.transform.GetComponentInChildren <ParticleSystem>(true).gameObject.SetActive(true); penguin.higiene += Time.deltaTime * higieneIncreaseSpeed; _cleaningObject.position = hit.point; _cleaningObject.forward = hit.normal; penguin.audioSource.UnPause(); if (!penguin.audioSource.isPlaying) { penguin.audioSource.PlayOneShot(penguin.washAudioClip); } } } } else { _cleaningObject.transform.GetComponentInChildren <ParticleSystem>(true).gameObject.SetActive(false); penguin.audioSource.Pause(); } } if ((Input.touchCount > 0 || Input.GetMouseButtonUp(0)) && !penguinBusy) { Transform touchedGOTransform = RaycastProvider.GetRaycastedTouchable(touchablesLayer.value); if (touchedGOTransform) { if (touchedGOTransform.GetComponentInParent <Fish>()) { touchedGOTransform.GetComponentInParent <Fish>().Grab(); } else { touchedGOTransform.GetComponentInParent <Animator>().SetTrigger("touch"); if (!penguin) { penguin = touchedGOTransform.GetComponent <PenguinBehavior>(); // if there is no such component, null will be set if (penguin) { penguin.initialize(initialHunger, initialHappiness, initialHigiene); washToggle.gameObject.SetActive(true); } } else { penguin.audioSource.PlayOneShot(touchedGOTransform.GetComponent <PenguinBehavior>() ? penguin.greetingAudioClip : penguin.sealAudioClip); } } } } if (penguin) { penguin.updateState(); } }