I want to touch a gameobject based on collider, when I touch the collider, the gameobject change their color, and when my finger leave the area of collider but my finger still touch the screen, color of gameobject back to normally, how I can do this?
foreach (Touch touch in Input.touches)
{
if (touch.phase == TouchPhase.Began)
{
Ray ray = Camera.main.ScreenPointToRay(touch.position);
RaycastHit hit = new RaycastHit();
if (Physics.Raycast(ray, out hit, 1000.0f))
{
if (hit.collider.gameObject.name == "1")
{
hit.collider.gameObject.renderer.material.color = Color.red;
}
if (hit.collider.gameObject.name == "2")
{
hit.collider.gameObject.renderer.material.color = Color.green;
}
if (hit.collider.gameObject.name == "3")
{
hit.collider.gameObject.renderer.material.color = Color.blue;
}
if (hit.collider.gameObject.name == "4")
{
hit.collider.gameObject.renderer.material.color = Color.yellow;
}
}
}
if (touch.phase == TouchPhase.Ended)
{
Ray ray = Camera.main.ScreenPointToRay(touch.position);
RaycastHit hit = new RaycastHit();
if (Physics.Raycast(ray, out hit, 1000.0f))
{
if (hit.collider.gameObject.name == "1")
{
hit.collider.gameObject.renderer.material.color = Color.black;
}
if (hit.collider.gameObject.name == "2")
{
hit.collider.gameObject.renderer.material.color = Color.black;
}
if (hit.collider.gameObject.name == "3")
{
hit.collider.gameObject.renderer.material.color = Color.black;
}
if (hit.collider.gameObject.name == "4")
{
hit.collider.gameObject.renderer.material.color = Color.black;
}
}
}
}
but in my script, the gameobject back to the normal color, when I release my finger from screen…
thanks all, sorry for my bad english
thanks @robertbu, I will try your code now, I'll tell you the result
– refsus