PC平台用鼠标的方式在移动平台无效?
用法挂载到场景中的摄像机上
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MouseMove : MonoBehaviour
{
[SerializeField] private float moveSpeed = 0.1f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
//触摸个数
/*touchCount: 触摸次数。保证在整个帧期间不会更改。(只读)
Input.touchCount 提供当前屏幕触摸操作的次数, 每次触摸屏幕,都会使 Input.touchCount 增大
*/
if (Input.touchCount == 1)
{
//触摸类型为移动触摸
/*
GetTouch 返回 Touch 结构。用0来获得首次屏幕触摸, Touch 描述触摸屏
Touch.phase: 描述触摸阶段, 触摸 phase 指手指在最近的帧更新时采取的操作
因为设备在整个“生命周期”中对触摸进行跟踪,所以触摸的开始和结束以及之间的移动可以在发生触摸的帧上报告
TouchPhase: TouchPhase 是一个枚举类型,其中包含手指触摸状态。这些状态表示手指在最近的帧更新时采取的操作
TouchPhase.Moved: 手指在屏幕上进行了移动的状态
*/
if (Input.GetTouch(0).phase == TouchPhase.Moved)
{
//根据触摸点计算X与Y位置
/*
Input.GetAxis: 返回由参数标识的虚拟轴的值
轴映射到鼠标时,该值为当前鼠标增量乘以轴灵敏度
通常,正值表示鼠标向右/向下移动,负值表示鼠标向左/向上移动
该值与帧率无关
*/
float h = moveSpeed * Input.GetAxis("Mouse X");
float v = moveSpeed * Input.GetAxis("Mouse Y");
//移动摄像机
/*
Transform: 对象的位置、旋转和缩放
场景中的每个对象都有一个变换。 它用于存储和操作对象的位置、旋转和缩放
transform: 附加到此 GameObject 的 Transform
Transform.Translate: 根据 translation(参数) 的方向和距离移动变换
*/
transform.Translate(-h, -v, 0);
}
}
}
}
|