1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- using System;
- using ExtensionMethods;
- using UnityEngine;
- [RequireComponent(typeof(Collider2D))]
- public class SetZAxisByPlayerInCollision : BaseBehaviour
- {
- public void Awake()
- {
- this._zOrigin = base.transform.localPosition.z;
- }
- public void OnTriggerEnter2D(Collider2D collision)
- {
- if (!collision.CompareTag("Player"))
- {
- return;
- }
- if (!this._out)
- {
- this._zOrigin = base.transform.localPosition.z;
- base.transform.localPosition = base.transform.localPosition.SetZ(this._z);
- }
- else
- {
- base.transform.localPosition = base.transform.localPosition.SetZ(this._zOrigin);
- }
- }
- public void OnTriggerExit2D(Collider2D collision)
- {
- if (!collision.CompareTag("Player"))
- {
- return;
- }
- if (!this._out)
- {
- base.transform.localPosition = base.transform.localPosition.SetZ(this._zOrigin);
- }
- else
- {
- this._zOrigin = base.transform.localPosition.z;
- base.transform.localPosition = base.transform.localPosition.SetZ(this._z);
- }
- }
- private float _zOrigin;
- [Header("需要设置的 LocalPosition z")]
- [SerializeField]
- private float _z;
- [Header("离开碰撞区域设值")]
- [SerializeField]
- private bool _out;
- }
|