用户输入- Unity3D游戏开发培训

 

作者:Jesai

时间:2018-02-12 14:28:45

用户输入Input

鼠标按键:

-方法:GetMouseButton();

-方法:GetMouseButtonDown()

-方法:GetMouseButtonUp()

-参数为int,0表示左键,1表示右键,2表示滚轮

键盘输入

-方法:GetKey()

-方法:GetKeyDown()

-方法:GetKeyUp()

-参数为KeyCode枚举,表示按的某个键

控制对象

控制对象的位置、旋转、缩放

位置:属性position,方法Translate()

旋转:方法Rotate() ,方法RotateAround()

缩放:属性localScale

类Vector3:表示三维向量,可以理解为三维空间中的点

-成员up、down、left、fight、forward、back、zero、one

Entity3D API

点击Help->Unity Manual

图 3-1

会在浏览器打开API文档.

图 3-2

图 3-3

新建两个场景.File->new Sence

图 3-4

 

新建一个空对象create->create Empty,命名script,reset一下Tranform

 

 

新建一个C#脚本,双击打开脚本

图 3-5

 

脚本原始的样子是这样的,什么也没有,只有两个方法:

 using UnityEngine;

 using System.Collections;

 /// 作者:邓家海

 /// 用户:DengJiaHai

 /// 创建日期:2017-01-10 22:50:52

 /// 修改:

 /// 版本:V 1.0.0.0

 //添加菜单名字

 [AddComponentMenu("Demo2/InputTest1")]

 public class InputTest : MonoBehaviour {

     // Use this for initialization

     void Start () {

     }

     // Update is called once per frame

     void Update () {

         if (Input.GetButton("Fire1"))

         {

             print("button");

         }

         if (Input.GetButtonDown("Fire1"))

         {

             print("down");

         }

         if (Input.GetButtonUp("Fire1"))

         {

             print("up");

         }

     }

 }

选中新建的script场景,然后Edit->Project Settings ->input,然后设置input的属性。

图 3-6

图 3-7

Window->Console  打开控制台,控制台一般用于打印错误消息或者调试。

调试一下

图 3-8

vector3

图 3-9

图 3-10

图 3-11

 using UnityEngine;
using System.Collections; public class ExampleClass : MonoBehaviour {
void Slide(Transform target, Vector3 railDirection) {
Vector3 heading = target.position - transform.position;
Vector3 force = Vector3.Project(heading, railDirection);
GetComponent<Rigidbody>().AddForce(force);
}
}

图 3-12

 using UnityEngine;
using System.Collections; public class ExampleClass : MonoBehaviour {
public Transform startMarker;
public Transform endMarker;
public float speed = 1.0F;
private float startTime;
private float journeyLength;
void Start() {
startTime = Time.time;
journeyLength = Vector3.Distance(startMarker.position, endMarker.position);
}
void Update() {
float distCovered = (Time.time - startTime) * speed;
float fracJourney = distCovered / journeyLength;
transform.position = Vector3.Lerp(startMarker.position, endMarker.position, fracJourney);
}
}
 
 

用户输入- Unity3D游戏开发培训的更多相关文章

  1. Unity3D游戏开发培训

    Unity3D游戏开发培训 作者:Jesai 时间:2017-01-08 修改:2017-01-09 12:36:15 1         项目的构成 图1-1 如图1-1所示,Unity3D的项目构 ...

  2. 投影方式- Unity3D游戏开发培训

    投影方式- Unity3D游戏开发培训   作者:Jesai 2018-02-12 20:33:13 摘  要 透视投影是3D渲染的基本概念,也是3D程序设计的基础.掌握透视投影的原理对于深入理解其他 ...

  3. 内置3D对象-Unity3D游戏开发培训

    内置3D对象-Unity3D游戏开发培训 作者:Jesai 2018-02-12 19:21:58 五大面板: -Hierachy:当前场景中的物体 图 1-1 -Project:项目中的所有资源 图 ...

  4. Unity3D游戏开发初探—2.初步了解3D模型基础

    一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被. ...

  5. Unity3D游戏开发从零单排(四) - 制作一个iOS游戏

    提要 此篇是一个国外教程的翻译,尽管有点老,可是适合新手入门. 自己去写代码.debug,布置场景,能够收获到非常多.游戏邦上已经有前面两部分的译文,这里翻译的是游戏的最后一个部分. 欢迎回来 在第一 ...

  6. [Unity3D]Unity3D游戏开发之异步记载场景并实现进度条读取效果

    大家好,我是秦元培.欢迎大家关注我的博客,我的博客地址是:blog.csdn.net/qinyuanpei.终于在各种无语的论文作业中解脱了,所以立即抓紧时间来这里更新博客.博主本来计划在Unity3 ...

  7. 2019年Unity3D游戏开发前景预测及总结

    由于现在随着互联网时代的到来,人们上网玩游戏的越来越多,导致游戏开发人才供不应求,如果你想成为一名优秀的开发者,那么掌握Unity3D开发技术是不可跳过的一环.随着移动互联网的发展,移动端游戏日益盛行 ...

  8. 从一点儿不会开始——Unity3D游戏开发学习(一)

    一些废话 我是一个windows phone.windows 8的忠实粉丝,也是一个开发者,开发数个windows phone应用和两个windows 8应用.对开发游戏一直抱有强烈兴趣和愿望,但奈何 ...

  9. Unity3D游戏开发之连续滚动背景

    Unity3D游戏开发之连续滚动背景 原文  http://blog.csdn.net/qinyuanpei/article/details/22983421 在诸如天天跑酷等2D游戏中,因为游戏须要 ...

随机推荐

  1. java 获得Class对象

    如何得到各个字节码对应的实例对象? 每个类被加载后,系统会为该类生成对应的Class对象,通过Class对象可以访问到JVM中的这个类, 3种方式: 1.调用某个类的class属性获取Class对象, ...

  2. 解决从旧格式的 csproj 迁移到新格式的 csproj 格式 AssemblyInfo 文件值重复问题

    现在很多小伙伴开始使用了 dotnet core 项目,但是如果是从以前的 dotnet framework 的项目修改为 dotnet core 项目格式,会发现编译的时候出现了 AssemblyI ...

  3. linux测试 scullpipe 驱动

    我们已经见到了 scullpipe 驱动如何实现阻塞 I/O. 如果你想试一试, 这个驱动的源码 可在剩下的本书例子中找到. 阻塞 I/O 的动作可通过打开 2 个窗口见到. 第一个可运行 一个命令诸 ...

  4. k8s的持久化存储

    本例使用nfs 创建pv [root@k8s-master data]# vi pv.yaml apiVersion: v1kind: PersistentVolumemetadata: name: ...

  5. Qt StyleSheet皮肤css源码(黑色,超详细) 乌合之众 good

    使用方式如下 //设置皮肤样式 static void SetStyle(const QString &styleName) { QFile file(QString(":/imag ...

  6. Python4_数据库相关操作

    ====================================================== 参考链接: PyCharm IDE 链接sqlite.建表.添加.查询数据:https:/ ...

  7. Visio模具与模版

    yy 这些形状就是模具 点击更多形状 然后新建模具 也可以打开已有的模具 模具名字右边有星号 代表模具未保存 鼠标右键单击可以选择保存 选择属性可以进行设置(信息之类的)也可以进行关闭 模具文件三种打 ...

  8. mysql:创建新库,新表,查看character

    创建新库create database wenda; 创建新表drop table if exists `user`;create table `user`( `id` int(11) unsigne ...

  9. 我的 2019 年 Python 文章榜单

    现在是 2020 年的第一天,我相信从昨天开始,各位的信息流里肯定充斥了各式各样的年度盘点/回顾/总结/记录之类的内容.虽然来得稍晚了,但我还是想给诸位送上这一篇文章. 我将在本文中列出自己于 201 ...

  10. 再见,Python2。你好,Python3

     文章首发自我的公众号,转载请注明出处~ ​ Python2的退场,意味着一个时代的结束 ​ 我们这一代程序员基本都接触过python2,很多人也是从python2时代一路走来的.但是,是时候说再见了 ...