关于移动端触屏输入控制的API的使用汇总(一)

本文档总结了移动端触屏输入控制的API使用,包括官方文档和代码示例,适用于26/11/2017的技术背景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于移动端触屏输入控制的API的使用汇总(一)<26/11/2017>

官方文档:


官方代码示例:

var startPos: Vector2;
var direction: Vector2;
var directionChosen: boolean;

function Update () {
		// Track a single touch as a direction control.
		if (Input.touchCount > 0) {
		var touch = Input.GetTouch(0);
		
		// Handle finger movements based on touch phase.
		switch (touch.phase) {
			// Record initial touch position.
			case TouchPhase.Began:
				startPos = touch.position;
				directionChosen = false;
				break;
			
			// Determine direction by comparing the current touch
			// position with the initial one.
			case TouchPhase.Moved:
				direction = touch.position - startPos;
				break;
			
			// Report that a direction has been chosen when the finger is lifted.
			case TouchPhase.Ended:
				directionChosen = true;
				break;
			}
		}
	
		if (directionChosen) {
		// Something that uses the chosen direction...
		}
	}
移动物体示例:

using UnityEngine;  
using System.Collections;  
  
public class example : MonoBehaviour {  
    public float speed = 0.1F;  
    void Update() {  
        if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved) {  
            Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;  
            transform.Translate(-touchDeltaPosition.x * speed, -touchDeltaPosition.y * speed, 0);  
        }  
    }  
}  
点击碰撞克隆:

using UnityEngine;  
using System.Collections;  
  
public class example : MonoBehaviour {  
    public GameObject projectile;  
    void Update() {  
        int i = 0;  
        while (i < Input.touchCount) {  
            if (Input.GetTouch(i).phase == TouchPhase.Began)  
                clone = Instantiate(projectile, transform.position, transform.rotation) as GameObject;  
              
            ++i;  
        }  
    }  
}  
又或者

using UnityEngine;  
using System.Collections;  
  
public class example : MonoBehaviour {  
    public GameObject particle;  
    void Update() {  
        int i = 0;  
        while (i < Input.touchCount) {  
            if (Input.GetTouch(i).phase == TouchPhase.Began) {  
                Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(i).position);  
                if (Physics.Raycast(ray))  
                    Instantiate(particle, transform.position, transform.rotation) as GameObject;  
                  
            }  
            ++i;  
        }  
    }  
}  




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值