- Home /
Question by
vitokvachadze_unity · May 24, 2021 at 12:09 PM ·
collisiontriggerinput.touch
Detecting a mouse click While in a Trigger
Why does the following code not working? (weird, sometimes it works sometimes not )
I want to move player by touching on the screen and change the color of gameObject when detect trigger and release mouse click.
"Drag and move" script works correctly I just add following code and sometimes it works sometimes not
private void OnTriggerStay2D(Collider2D colider)
{
if (Input.GetMouseButtonUp(0) & colider != null)
{
colider.gameObject.GetComponent<SpriteRenderer>().material.color = Color.blue;
}
}
There is a full script :
private Camera _cam;
private Vector3 _daragOfset;
[SerializeField] private float _speed = 4.55f;
private bool isEntered = false;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
_daragOfset = transform.position - GetMousePos();
}
}
private void OnTriggerStay2D(Collider2D colider)
{
if (Input.GetMouseButtonUp(0) & colider != null)
{
colider.gameObject.GetComponent<SpriteRenderer>().material.color = Color.blue;
}
}
void Awake()
{
_cam = Camera.main;
}
void OnMouseDrag()
{
transform.position = Vector3.MoveTowards(transform.position, GetMousePos() + _daragOfset,_speed * Time.deltaTime);
}
Vector3 GetMousePos()
{
var mousePos = _cam.ScreenToWorldPoint(Input.mousePosition);
mousePos.z = 0;
return mousePos;
}
Comment
Your answer
Follow this Question
Related Questions
My trigger is called twice 1 Answer
Trigger or Colission not work if inside volume 2 Answers
Detecting Trigger Collision for Mecanim Animator 0 Answers
Trigger script does not work. 1 Answer