IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity3D -> 正文阅读

[游戏开发]Unity3D

(1)Input类的使用

  1. 鼠标事件

GetMouseButton(0):按下鼠标左键不动,程序会一直运行,松开左键程序停止运行。

GetMouseButton(2):按下鼠标中键不动,程序会一直运行,松开中键程序停止运行。

GetMouseButton(1):按下鼠标右键不动,程序会一直运行,松开右键程序停止运行。

GetMouseButtonDown(0):按下鼠标左键时,程序运行一次

GetMouseButtonDown(1):按下鼠标右键时,程序运行一次

GetMouseButtonUp(2):按下鼠标中键时,程序不运行,松开中键时,程序运行一次。

if(Input.GetMouseButton(0)){

?? 执行语句;

}

  1. 键盘事件

GetKey? ???当通过名称指定的按键被用户按住时返回true

GetKeyDown?? 当用户按下指定名称的按键时的那一帧返回true。

GetKeyUp??? 在用户释放给定名字的按键的那一帧返回true。

GetAxis("Horizontal")和GetAxis("Vertical")??? 水平轴和垂直轴

if(Input.GetKey("Down")){

?? 执行语句;

}

案例:用方向键或WASD键来模拟物体移动

float speed = 3f;

???

??? void Update () {

??? ??? //float h = Time.deltaTime * speed;

??? ??? //按下WSAD键使游戏对象前后左右移动

??? ??? /*if (Input.GetKey(KeyCode.A))

??? ??? {

??? ??? ??? transform.Translate(new Vector3(-h, 0, 0));

??? ??? }

??? ??? if (Input.GetKey(KeyCode.D))

??? ??? {

??? ??? ??? transform.Translate(new Vector3(h, 0, 0));

??? ??? }

??? ??? if (Input.GetKey(KeyCode.W))

??? ??? {

??? ??? ??? transform.Translate(new Vector3(0, 0, h));

??? ??? }

??? ??? if (Input.GetKey(KeyCode.S))

??? ??? {

??? ??? ??? transform.Translate(new Vector3(0, 0, -h));

??? ??? }*/

??? ??? //Horizontal

??? ??? //Vertical

??? ??? float h= Input.GetAxis("Horizontal")*Time.deltaTime*speed;

??? ??? float v = Input.GetAxis("Vertical") * Time.deltaTime * speed;

??? ??? //transform.Translate(h, 0, v);

??? ??? transform.Translate(new Vector3(h, 0, v));

??? }

  1. 自定义按钮

GetButton?? 根据按钮名称返回true当对应的虚拟按钮被按住时。

GetButtonDown? 在给定名称的虚拟按钮被按下的那一帧返回true。

GetButtonUp??? 在用户释放指定名称的虚拟按钮时返回true。

案例:点击鼠标左键,给物体加一个力

if (Input.GetButtonDown("Fire1"))

??? ??? {

??? ??? ??? GameObject go = Instantiate(cube);

??? ??? ??? Rigidbody r = go.GetComponent<Rigidbody>();//从预设体身上获取刚体组件

??? ??? ??? r.AddForce(0,0,10000);//给预设体加力

??? }

  1. 手指触屏

首先android手机下载unityRmote便于测试,然后在unity上做相应设置。

案例1:单双击屏幕

public Text txt;

??? void Update () {

??????? //TouchPhase.Began:一个手指按下?? TouchPhase.Move:一个手指移动? TouchPhase.Stationary:一个手指按着不动

????? ??//TouchPhase.Ended:一个手指离开屏幕

??????? if (Input.touchCount > 0)//单击屏幕

??????? {

??????????? Touch t = Input.GetTouch(0);//获得第一根手指

??????????? if(Input.touchCount==1 && t.phase == TouchPhase.Began)

??????????? {

??????????????? txt.text = "单击了屏幕";

???????? ???}

??????????? if (Input.touchCount ==2)

??????????? {

??????????????? txt.text = "双击了屏幕";

??????????? }

??????? }

??? }

案例2:触摸屏幕手指控制物体移动(跟随手指移动)

public Transform currTouchObj;

??? float touchObjMoveSpeed = 3f;

??? void Update()

??? {

??????? if (Input.touchCount == 1)

??????? {

??????????? Touch firstTouch = Input.GetTouch(0);

??????????? if (firstTouch.phase == TouchPhase.Began)

??????????? {

??????????????? Ray ray = Camera.main.ScreenPointToRay(firstTouch.position);

??????????????? RaycastHit hit;

??????????????? if (Physics.Raycast(ray, out hit))

??????????????? {

??????????????????? //获取当前触摸到的物体

??????????????????? currTouchObj = hit.collider.transform;

??????????????? }

??????????? }

??????????? if (Input.GetTouch(0).phase == TouchPhase.Moved)

??????????? {

??????????????? if (currTouchObj)

??????????????? {

??????????????????? Vector3 touchDeltaPos = Input.GetTouch(0).deltaPosition;

??????????????????? currTouchObj.Translate(touchDeltaPos.x * touchObjMoveSpeed, touchDeltaPos.y * touchObjMoveSpeed, 0, Space.World);

???????? ???????}

??????????? }

??????? }

??? }

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-11-09 19:56:40  更:2021-11-09 19:56:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 0:55:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码