MeshUIController.cs
using UnityEngine;
public class MeshUIController : MonoBehaviour
{
public Animator animator;
public float rayDirection = 50f;
private Ray ray;
private RaycastHit hit;
void Update()
{
#if !UNITY_EDITOR
// touch
GetTouchInput();
#else
// mouse
GetMouseInput();
#endif
}
private void GetTouchInput()
{
if (Input.touchCount == 0)
{
return;
}
if (Input.GetTouch(0).phase == TouchPhase.Began)
{
ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
CheckRaycast(ray);
}
}
private void GetMouseInput()
{
if (Input.GetMouseButtonDown(0))
{
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
CheckRaycast(ray);
}
}
private void CheckRaycast(Ray ray)
{
Debug.DrawRay(ray.origin, ray.direction * rayDirection, Color.red);
if (Physics.Raycast(ray.origin, ray.direction * rayDirection, out hit))
{
CheckUIMesh(hit.collider.tag);
}
}
private void CheckUIMesh(string tag)
{
switch (tag)
{
case "WalkUI" :
animator.SetBool("isWalk", true);
break;
case "IdleUI" :
animator.SetBool("isWalk", false);
break;
}
}
}
NO GAME NO DREAM !!!!