public void TriggerScar(Collider2D collider, bool isCut, ColliderTool tool = null) { if (!collider) { return; } RectTransform scar = collider.GetComponent <RectTransform>(); if (true == isCut && false == _toolScraper.GetColliderTriggerState(collider)) { _toolBandage.SetColliderTriggerState(collider, false); _toolScraper.SetColliderTriggerState(collider, true); _toolRazor.SetColliderTriggerState(collider, true); _toolGrower.SetColliderTriggerState(collider, false); collider.enabled = false; _model.InsertSad(); Image image = scar.GetComponent <Image>(); image.color = new Color(1, 1, 1, 0); image.enabled = true; image.DOFade(1, 0.1f).SetEase(Ease.Linear); } else if (false == isCut && false == _toolBandage.GetColliderTriggerState(collider)) { _toolBandage.SetColliderTriggerState(collider, true); _toolScraper.SetColliderTriggerState(collider, false); _toolRazor.SetColliderTriggerState(collider, false); _toolGrower.SetColliderTriggerState(collider, true); scar.GetComponent <Image>().enabled = false; if (null != tool) { tool._drag.SetEnabled(false); tool._drag.BackPosition(UGUIDrag.DragBackEffect.TweenScale); GameObject bandage = Instantiate(_prefabBandage); bandage.transform.SetParent(_fixArea); bandage.transform.position = scar.transform.position; bandage.transform.localScale = scar.transform.localScale; AudioManager.PlaySound(_soundPutIn); Sequence sequence = DOTween.Sequence(); sequence.AppendInterval(0.5f); sequence.AppendCallback(() => { tool._drag.SetEnabled(true); }); sequence.AppendInterval(1.5f); sequence.AppendCallback(() => { AudioManager.PlaySound(_soundTakeOff); }); sequence.Append(bandage.GetComponent <Image>().DOFade(0f, 0.8f).SetEase(Ease.Linear)); sequence.OnComplete(() => { DestroyImmediate(bandage, true); }); } } }
public void TriggerRed(Collider2D collider, bool isCut, ColliderTool tool = null) { if (!collider) { return; } RectTransform red = collider.GetComponent <RectTransform>(); if (true == isCut && false == _toolScraper.GetColliderTriggerState(collider)) { _toolUnguent.SetColliderTriggerState(collider, false); _toolScraper.SetColliderTriggerState(collider, true); _toolRazor.SetColliderTriggerState(collider, true); _toolGrower.SetColliderTriggerState(collider, false); collider.enabled = false; _model.InsertSad(); Image image = red.GetComponent <Image>(); image.color = new Color(1, 1, 1, 0); image.enabled = true; image.DOFade(1, 0.1f).SetEase(Ease.Linear); } else if (false == isCut && false == _toolUnguent.GetColliderTriggerState(collider)) { _toolUnguent.SetColliderTriggerState(collider, true); _toolScraper.SetColliderTriggerState(collider, false); _toolRazor.SetColliderTriggerState(collider, false); _toolGrower.SetColliderTriggerState(collider, true); red.GetComponent <Image>().enabled = false; if (null != tool) { GameObject cream = Instantiate(_prefabCream); cream.transform.SetParent(_fixArea); cream.transform.position = red.transform.position; cream.transform.localScale = red.transform.localScale; AudioManager.PlaySound(_soundPutIn); Image image = cream.GetComponent <Image>(); Sequence sequence = DOTween.Sequence(); sequence.AppendInterval(2f); sequence.Append(cream.GetComponent <Image>().DOFade(0f, 0.8f).SetEase(Ease.Linear)); sequence.OnComplete(() => { DestroyImmediate(cream, true); }); } } }
private void TriggerAnim(Collider2D collider2d) { if (true == _isAnimating) { return; } _isAnimating = true; if (null != _soundTrigger) { AudioManager.PlaySound(_soundTrigger); } _state1.enabled = false; _state2.enabled = true; _model.InsertSad(); _faceFur.TriggerFur(collider2d, true); Sequence sequence = DOTween.Sequence(); sequence.AppendInterval(0.5f); sequence.AppendCallback(() => { _state1.enabled = true; _state2.enabled = false; _isAnimating = false; }); }