From Unify Community Wiki
Revision as of 15:59, 6 September 2018 by Isaiah Kelly (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Spin Off: OnTouch

This script sends OnMouseDown messages based on taps, so you can use OnMouseDown callbacks. Attach the script to the camera that is rendering the clickable (tappable) objects. Add a layer argument to the Raycast call if you need to avoid unnecessary intersections. A similar script can be implemented for OnMouseUp (an exercise for the reader). This is only for 3D objects with colliders (e.g. this is used for the 3D menus in HyperBowl), not for GUIText and GUITexture.

C Sharp (C#) Script

using UnityEngine;
/// <summary>
//	Allows "OnMouseDown()" events to work on touch devices.
/// </summary>
public class MouseDownTouch : MonoBehaviour
    private void Update ()
        var hit = new RaycastHit ();
        for (int i = 0; i < Input.touchCount; ++i)
            if (Input.GetTouch (i).phase.Equals (TouchPhase.Began))
                // Construct a ray from the current touch coordinates.
                Ray ray = Camera.main.ScreenPointToRay (Input.GetTouch (i).position);
                if (Physics.Raycast (ray, out hit))
                    hit.transform.gameObject.SendMessage ("OnMouseDown");

UnityScript / JavaScript

function Update () {
   var hit : RaycastHit;
   for (var i = 0; i < iPhoneInput.touchCount; ++i) {
      if (iPhoneInput.GetTouch(i).phase == iPhoneTouchPhase.Began) {
      // Construct a ray from the current touch coordinates
      var ray = camera.ScreenPointToRay (iPhoneInput.GetTouch(i).position);
      if (Physics.Raycast (ray,hit)) {
Personal tools