using System;
using UnityEngine;
namespace Assets.Scripts
{
public class ObjectDisabler : MonoBehaviour, IDeactivatable
{
public event Action Deactivated;
public event Action Activated;
public void Activate()
{
gameObject.SetActive(true);
Activated?.Invoke();
}
public void Deactivate()
{
gameObject.SetActive(false);
Deactivated?.Invoke();
}
}
public interface IDeactivatable
{
event Action Deactivated;
event Action Activated;
void Activate();
void Deactivate();
}
}
using UnityEngine;
namespace Assets.Scripts
{
public class TriggerTest : MonoBehaviour
{
private IDeactivatable _deactivatable;
private void OnTriggerEnter(Collider other)
{
if (other.TryGetComponent(out IDeactivatable deactivatable))
{
_deactivatable = deactivatable;
_deactivatable.Deactivated += ExitTrigger;
}
}
private void OnTriggerStay(Collider other)
{
Debug.Log("TriggerStay");
}
private void OnTriggerExit(Collider other)
{
ExitTrigger();
}
private void ExitTrigger()
{
Debug.Log("TriggerExit");
_deactivatable.Deactivated -= ExitTrigger;
}
}
}
var position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
position.z = transform.position.z;
transform.position = position;
Debug.Log("1> (" + _transforms[0].transform.position.x + ", " + _transforms[0].transform.position.y + ")");// 1> (1, 1)
Vector3 TV = _transforms[0].transform.position;
TV.x -= 0.000001f;
TV.y -= 0.000001f;
Debug.Log("2> (" + TV.x + ", " + TV.y + ")");//2> (0.999999, 0.999999)
_transforms[0].transform.position = TV;
Debug.Log("3> (" + _transforms[0].transform.position.x + ", " + _transforms[0].transform.position.y + ")");//3> (0.999999, 0.999999)