出自Unity3D开发一书,

这个脚本式只是简单的控制人物移动,不是很理想,但是可以学习 通过 上 、下、左、右  按键怎么实现任务的移动

[csharp]  view plain copy
  1. using UnityEngine;
  2. using System.Collections;
  3. public class MoveByADSW : MonoBehaviour {
  4. public const int HERO_UP = 0;
  5. public const int HERO_RIGHT = 1;
  6. public const int HERO_DOWN = 2;
  7. public const int HERO_LEFT = 3;
  8. //人物当前行走的方向状态
  9. public int state = 0;
  10. //人物移动速度
  11. public int moveSpeed = 2;
  12. //初始化人物位置
  13. public void Awake()
  14. {
  15. state = HERO_UP;
  16. }
  17. // Use this for initialization
  18. void Start () {
  19. }
  20. // Update is called once per frame
  21. void Update () {
  22. //获取控制的方向, 上下左右,
  23. float KeyVertical = Input.GetAxis("Vertical");
  24. float KeyHorizontal = Input.GetAxis("Horizontal");
  25. Debug.Log("keyVertical" + KeyVertical);
  26. Debug.Log("keyHorizontal" + KeyHorizontal);
  27. if(KeyVertical == -1)
  28. {
  29. setHeroState(HERO_DOWN);
  30. }
  31. else if(KeyVertical == 1)
  32. {
  33. setHeroState(HERO_UP);
  34. }
  35. if(KeyHorizontal == 1)
  36. {
  37. setHeroState(HERO_RIGHT);
  38. }
  39. else if(KeyHorizontal == -1)
  40. {
  41. setHeroState(HERO_LEFT);
  42. }
  43. if(KeyVertical == 0 && KeyHorizontal == 0)
  44. {
  45. animation.Play("idle");
  46. }
  47. }
  48. void setHeroState(int newState)
  49. {
  50. //根据当前人物方向与上一次备份的方向计算出模型旋转的角度
  51. int rotateValue = (newState - state) * 90;
  52. Vector3 transformValue = new Vector3();
  53. //播放行走动画
  54. animation.Play("walk");
  55. //模型移动的位置数值
  56. switch(newState)
  57. {
  58. case HERO_UP:
  59. transformValue = Vector3.forward * Time.deltaTime;
  60. break;
  61. case HERO_DOWN:
  62. transformValue = (-Vector3.forward) * Time.deltaTime;
  63. break;
  64. case HERO_LEFT:
  65. transformValue = Vector3.left * Time.deltaTime;
  66. break;
  67. case HERO_RIGHT:
  68. transformValue = (-Vector3.left) * Time.deltaTime;
  69. break;
  70. }
  71. transform.Rotate(Vector3.up, rotateValue);
  72. //移动人物
  73. transform.Translate(transformValue * moveSpeed, Space.World);
  74. state = newState;
  75. }
  76. }

Unity3D上下左右 键控制人移动相关推荐

  1. 用键盘上下左右键和ctrl键移动TreeView节点

    /// <summary>/// 用键盘上下左右键和ctrl键移动节点 /// 思路:现复制2个选中的节点.1.为了记住第一次选中节点位置,2在上移过程中现将令一个插入指定位置,/// 然 ...

  2. ArcEngine中使用上下左右键移动地图

    转自愿文ArcEngine中使用上下左右键移动地图 因项目需要,需对mapcontrol控件响应上下左右键,从网上找的方法都一样,都值提到了需要设置axMapControl1的KeyIntercept ...

  3. vim上下左右键输出A B

    (转)vim上下左右键不能用 把下面这段话存到~/.vimrc就可以了. " An example for a vimrc file. " " Maintainer: B ...

  4. RK键盘出现上下左右键对应890←输出,Del键输出q,q键有删除功能解决

    问题描述 RK920C键盘出现按Q会执行Del键的功能,按Del键会执行Q键的功能,上下左右键会输出890←数字的问题 问题分析 首先怀疑是硬件出了问题,但是实测发现很多键都绑定或者互换了,所以就怀疑 ...

  5. 上下左右键的ASCII

    case 72://上break; case 80://下 break; case 75://左break; case 77://右break: case 32: //空格是暂停getch(); br ...

  6. Ubuntu 上下左右键变成ABCD

    遇到了一个在Ubuntu系统上,vi上下左右键显示为ABCD的问题. 百度了下解决方法: 只要依次执行以下两个命令即可解决: 第一步: sudo apt-get remove vim-common 第 ...

  7. 如何解除计算机方向键问题,笔记本键盘上下左右键怎么解锁_笔记本电脑的上下左右键被锁住了如何解决-win7之家...

    我们在电脑中玩游戏的时候,经常会使用到键盘上下左右键来进行操作,不过有不少笔记本用户反映说键盘上下左右键被锁住了,导致无法操作,但是这种情况不多见,如果被锁定的话.一般是数字区域,方向键基本上没有被锁 ...

  8. java 上下键_用键盘的上下左右键控制JAVA SWING UI中的组件的移动等事件 | 学步园...

    用键盘的上下左右键控制JAVA SWING UI中的组件的移动等事件 import java.awt.*; import java.awt.event.*; import javax.swing.*; ...

  9. Linux vi中按上下左右键出现ABCD及Backspace键失灵

    按上下左右键出现ABCD解决方法: 在命令行中执行: echo "set nocp" >> ~/.vimrc (千万要注意,是>>, 而不是>, 否则 ...

最新文章

  1. jquery .parents(), .parent() 和 closest()方法
  2. python五十五:__getattribute__内置函数
  3. 【推荐实践】模型化召回在陌陌社交推荐的探索和应用.pdf(附下载链接)
  4. 【恋上数据结构】快速排序
  5. 熬了整整30天,java工作流开发
  6. request转发,response重定向,异步请求json数据输出到页面
  7. 《深入应用C++11:代码优化与工程级应用》勘误表
  8. 力扣-451 根据字符出现频率排序
  9. 原来 GitHub 网红是这么混出来的 如何以正确的姿势参与开源项目
  10. linux查询rpm包详细信息
  11. 文件系统 和 网络附接存储(NAS: Network Attached Storage)
  12. python 随机分组
  13. 解决浏览器被劫持的一些方法
  14. 练习-任意输入n个从小到大的整数的数列,然后输入一个整数插入到数列中,使数列保持从小到大的顺序
  15. IoT黑板报:美允许4G技术与WiFi共享5G频段
  16. 稻城亚丁神州租车自驾游,一生一定要去一次的地方
  17. iphone.android下载,如何在iPhone和Android上删除下载
  18. 详解图像二值化 函数threshold
  19. 卡尔曼滤波Q、R如何调节?
  20. 日常用语--警告/劝解

热门文章

  1. 2BizBox 如何配置资产负债表和利润表(中国财务)
  2. 无线信号的传输与接收(operating-band,Channel-bandwidth)
  3. 怎么高考考入清华大学计算机系,看牛人考研 通过何种手段考取清华计算机系...
  4. 【假捻发加工生产工单下达】
  5. 年少无知的我也被python课程割了韭菜,分享被割全过程
  6. AT+CSQ信号质量指示含义
  7. java 成员变量调用其他类方法6_方法内部类中不能访问外部类的成员变量。
  8. MySQL(解压版)下载、安装与配置
  9. 买房等额本息和等额本金的区别
  10. 腾讯从社群端整治淘宝客,90%的淘客群被封