using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityGameFramework.Runtime; public class SceneEventStoneLogic : MonoBehaviour { float _updateTime; float _countTime; float oldY; bool _isAttack; // Start is called before the first frame update void Start() { _updateTime = 0.3f; _countTime = 0; oldY = transform.position.y; SceneCmptManager.Instance.AddMechanism(this.gameObject); } // Update is called once per frame void Update() { _countTime += Time.deltaTime; if(_countTime > _updateTime) { _countTime -= _updateTime; if(Mathf.Abs(this.transform.position.y - oldY) > 0.01f ) { _isAttack = true; } else { _isAttack = false; } } } public void OnTriggerEnter(Collider collider) { if(!_isAttack) { return; } Role role = collider.GetComponent(); int layer = LayerMask.NameToLayer("Player"); if (role != null && role.gameObject.layer == layer) { role.UpdateHP(-120); _isAttack = false; _updateTime = 1000; SceneCmptManager.Instance.OpenMechanism(this.gameObject); } } public void OnTriggerExit(Collider collider) { } //public void OnTriggerStay(Collider collider) //{ // LogHelper.Log("--------------------- OnTriggerStay -----------------------"); //} }