例えばFloorというGameObject上に立つキャラクターをタッチした位置に移動するときなどに。
ScreenToWorldPositionというのはあるけど、Z軸の値を使うときはどうするか考える必要がある。それよりもタッチした座標からRayを作ってとFloorオブジェクトと交差するか調べてその座標をキャラクターの座標にセットするほうが良さそう。
色々なオブジェクトが転がっているようであれば、RaycasのlayerMaskで特定のlayerを指定してRaycastすれば良い。
using UnityEngine; using System.Collections; public class TouchDetector: MonoBehaviour { public GameObject targetObject; // Use this for initialization void Start () { } // Update is called once per frame void Update () { if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast (ray, out hit, Mathf.Infinity)) { var targetPos = new Vector3(hit.point.x, hit.point.y, hit.point.z); targetObject.transform.position = targetPos; } } } }