首先,我们创建一个新场景。

我们需要实现的效果就是移动该小球,移动操作需要借助脚本实现。

我们创建一个Move脚本,同时将其附加给小球。同时移动操作,需要借助刚体组件实现,所以我们还需要创建一个刚体组件,将该刚体附加给小球。

实现上述步骤以后,我们开始编写脚本。
由于移动小球需要借助刚体组件,所以我们第一步是获取刚体组件,并且对刚体组件进行赋值操作,最后只需要给刚体组件施加一个力即可。

public class Move : MonoBehaviour {//定义一个刚体对象private Rigidbody rb;void Start () {//接收刚体组件rb = GetComponent<Rigidbody>();}void Update () {//添加一个力,Vector3为一个三维向量,参数分别为x,y,z,当x = 1时,表示当前x方向发生偏移rb.AddForce(new Vector3(1, 0, 0));}
}

我们运行后发现其只能在一个固定的方向运动,有没有能够根据按键控制运动呢?
我们需要在Update中引入Input进行判断。

void Update () {//Input.GetAxis用于检测是否按下键盘按键//Horizontal表示水平按键float h = Input.GetAxis("Horizontal");//Vertical表示垂直按键float v = Input.GetAxis("Vertical");//添加一个力rb.AddForce(new Vector3(h, 0, v));}

但是我们发现小球移动的速度特别慢。我们只需要定义一个参数即可。

public class Move : MonoBehaviour {//定义一个刚体对象private Rigidbody rb;//定义小球移动的速度public int speed = 5;// Use this for initializationvoid Start () {//接收刚体组件rb = GetComponent<Rigidbody>();}void Update () {//Input.GetAxis用于检测是否按下键盘按键//Horizontal表示水平按键float h = Input.GetAxis("Horizontal");//Vertical表示垂直按键float v = Input.GetAxis("Vertical");//添加一个力rb.AddForce(new Vector3(1, 0, 0) * speed);}
}

为什么需要将speed设置为一个共有的变量呢?

后期我们只需要在这里设置小球移动的速度即可,不需要再脚本中设置。

我们控制了小球发生移动,但是小球会消失再摄像机的视角范围内,如果需要小球一直在视野范围内,则需要通过脚本设置摄像机的移动即可。(即摄像机于小球的相对距离不变)
我们创建一个FollowMove脚本,同时申请一个transform组件。


将该脚本赋值给主摄像机,由于我们transform组件设置为共有的,所以我们可以在外部对其进行赋值,我们将小球赋值给它。

public class FollowMove : MonoBehaviour {public Transform SphereTransform;//设置一个距离的三维变量,用于保存摄像机于小球之间的距离。private Vector3 distance;// Use this for initializationvoid Start () {//由于当前脚本添加到主摄像机上,所以transform.position表示主摄像机的位置//由于我们给SphereTransform赋值为小球,所以SphereTransform.position为小球的位置distance = transform.position - SphereTransform.position;}// Update is called once per framevoid Update () {//主摄像机的位置为每次小球移动的位置+之间的距离transform.position = SphereTransform.position + distance;}
}

Unity通过键盘按键控制小球移动相关推荐

  1. ARM开发(4)基于STM32的矩阵键盘按键控制TM1629A LED显示

    一 矩阵键盘按键控制TM1629ALED显示原理: 1.1 本实验实现矩阵键盘按键控制TM1629ALED显示1.2 实验思路:共阴极数码管,掌握数码管段选位选原理 熟悉TM1629A芯片手册1.3 ...

  2. c++用键盘按键控制光标移动_如何在Windows10中用键盘控制鼠标光标

    如果你的鼠标突然坏掉了,此时找不到替代鼠标,或者你使用的鼠标是电池供电的,此时电量耗尽,那么你可以将键盘配置为鼠标暂时缓解燃眉之急. 设置步骤 键盘鼠标控制功能内置于Windows10中.首先进入设置 ...

  3. js:两种方法实现键盘按键控制

    第一步:先获取按键的键码(按下哪个键) 使用DOM(文档对象模型)或者jQuery(js常用框架)实现 完整代码(之后只给js部分): <!DOCTYPE html> <html&g ...

  4. Unity使用键盘wasd控制绑定角色和第一人称摄像机随鼠标移动

    首先创建一个物体,然后里面加上摄像机并且调整到相应的位置 在创建的物体上添加一个组件character controller 键盘控制移动代码 public float speed = 6.0F; p ...

  5. Unity 模拟键盘按键

    1:本人是在使用HTCVive时,使用了InputField组件,发现不知道如何模拟键盘中使用回车键就直接就代表输入完成,回调输入完成事件.于是找了各种InputFieldAPI,发现底层没有对输入完 ...

  6. (1)鼠标键盘按键控制人物

    1.input.getkey()获取键:当用户按下由name名称确定的按键时,然后true. input.getkeyup()获取键抬起:在用户释放给定名字的按键的那一帧返回true. //长按W播放 ...

  7. Unity+Pico 手柄按键控制

    一.定义手柄按键API 1.InputDevices.GetDeviceAtXRNode,通过XRNode获取对应的设备: 2.XRNode是一个枚举类型,包含LeftEye.RightEye.Cen ...

  8. Unity—实现通过按键控制2D游戏物体的移动

    控制游戏物体的移动 using System.Collections; using System.Collections.Generic; using UnityEngine;public class ...

  9. unity检测键盘的按键名称-JS

    建立JS文档 var currentKey:KeyCode; function Start () {currentKey = KeyCode.Space; }function OnGUI(){if ( ...

最新文章

  1. 肏蛋的Loadrunner脚本
  2. linux 处理 BOM头 ^M 方法
  3. 人社部:截至三季度9757亿元养老保险基金到账运营
  4. 多领导者改进算法的MATLAB仿真
  5. 碎片化学前端,促进技术提升,我推荐这些
  6. MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established
  7. laravel 队列学习
  8. [hackinglab][CTF][脚本关][2020] hackinglab 脚本关 writeup
  9. 反垃圾江湖风云纪事 | 技术头条
  10. 揭秘新的供应链攻击:一研究员靠它成功入侵微软、苹果等 35 家科技公司
  11. asp.net 2.0中的defaultulr属性
  12. SharePoint 2010工作流系列(2):SharePoint Designer 2010中工作流的条件和操作概览
  13. 图书管理系统基于MYSQL
  14. shp地图如何导入奥维地图手机_如何将CAD图导入到手机版奥维互动地图
  15. 智能家居无线组网技术,WiFi芯片模组连接应用,物联网无线技术发展
  16. 电脑网速慢怎么办?手把手教你提升网速
  17. 【2020牛客多校】第九场 K The Flee Plan of Groundhog——BFS
  18. 对比不同主流存储格式(csv, feather, jay, h5, parquet, pickle)的读取效率
  19. c758f52e87.html,查看源码: rainsoft_200372295849.rar_AboutFrm.dfm - VerySource
  20. Web前端开发主要做什么

热门文章

  1. html+css面试题 行内元素padding和margin
  2. 细谈getRequestDispatcher()与sendRedirect()的区别
  3. 关于jQuery获取html标签自定义属性值或data值
  4. 算法(Algorithms)第4版 练习 2.1.24
  5. HDU - 5493 Queue 2015 ACM/ICPC Asia Regional Hefei Online(线段树)
  6. NoSQL 数据库 简介
  7. java 静态缓存_JAVA缓存的实现
  8. 数组中的键值对去重_javascript利用对象键值对中键的唯一性实现数组去重
  9. Linux 0.11内核分析02:系统启动
  10. 【实用工具】eclipse mac安装