12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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<Role>();
- 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 -----------------------");
- //}
- }
|