Unity3D上下左右 键控制人移动
出自Unity3D开发一书,
这个脚本式只是简单的控制人物移动,不是很理想,但是可以学习 通过 上 、下、左、右 按键怎么实现任务的移动
![](https://code.csdn.net/assets/CODE_ico.png)
- using UnityEngine;
- using System.Collections;
- public class MoveByADSW : MonoBehaviour {
- public const int HERO_UP = 0;
- public const int HERO_RIGHT = 1;
- public const int HERO_DOWN = 2;
- public const int HERO_LEFT = 3;
- //人物当前行走的方向状态
- public int state = 0;
- //人物移动速度
- public int moveSpeed = 2;
- //初始化人物位置
- public void Awake()
- {
- state = HERO_UP;
- }
- // Use this for initialization
- void Start () {
- }
- // Update is called once per frame
- void Update () {
- //获取控制的方向, 上下左右,
- float KeyVertical = Input.GetAxis("Vertical");
- float KeyHorizontal = Input.GetAxis("Horizontal");
- Debug.Log("keyVertical" + KeyVertical);
- Debug.Log("keyHorizontal" + KeyHorizontal);
- if(KeyVertical == -1)
- {
- setHeroState(HERO_DOWN);
- }
- else if(KeyVertical == 1)
- {
- setHeroState(HERO_UP);
- }
- if(KeyHorizontal == 1)
- {
- setHeroState(HERO_RIGHT);
- }
- else if(KeyHorizontal == -1)
- {
- setHeroState(HERO_LEFT);
- }
- if(KeyVertical == 0 && KeyHorizontal == 0)
- {
- animation.Play("idle");
- }
- }
- void setHeroState(int newState)
- {
- //根据当前人物方向与上一次备份的方向计算出模型旋转的角度
- int rotateValue = (newState - state) * 90;
- Vector3 transformValue = new Vector3();
- //播放行走动画
- animation.Play("walk");
- //模型移动的位置数值
- switch(newState)
- {
- case HERO_UP:
- transformValue = Vector3.forward * Time.deltaTime;
- break;
- case HERO_DOWN:
- transformValue = (-Vector3.forward) * Time.deltaTime;
- break;
- case HERO_LEFT:
- transformValue = Vector3.left * Time.deltaTime;
- break;
- case HERO_RIGHT:
- transformValue = (-Vector3.left) * Time.deltaTime;
- break;
- }
- transform.Rotate(Vector3.up, rotateValue);
- //移动人物
- transform.Translate(transformValue * moveSpeed, Space.World);
- state = newState;
- }
- }
Unity3D上下左右 键控制人移动相关推荐
- 用键盘上下左右键和ctrl键移动TreeView节点
/// <summary>/// 用键盘上下左右键和ctrl键移动节点 /// 思路:现复制2个选中的节点.1.为了记住第一次选中节点位置,2在上移过程中现将令一个插入指定位置,/// 然 ...
- ArcEngine中使用上下左右键移动地图
转自愿文ArcEngine中使用上下左右键移动地图 因项目需要,需对mapcontrol控件响应上下左右键,从网上找的方法都一样,都值提到了需要设置axMapControl1的KeyIntercept ...
- vim上下左右键输出A B
(转)vim上下左右键不能用 把下面这段话存到~/.vimrc就可以了. " An example for a vimrc file. " " Maintainer: B ...
- RK键盘出现上下左右键对应890←输出,Del键输出q,q键有删除功能解决
问题描述 RK920C键盘出现按Q会执行Del键的功能,按Del键会执行Q键的功能,上下左右键会输出890←数字的问题 问题分析 首先怀疑是硬件出了问题,但是实测发现很多键都绑定或者互换了,所以就怀疑 ...
- 上下左右键的ASCII
case 72://上break; case 80://下 break; case 75://左break; case 77://右break: case 32: //空格是暂停getch(); br ...
- Ubuntu 上下左右键变成ABCD
遇到了一个在Ubuntu系统上,vi上下左右键显示为ABCD的问题. 百度了下解决方法: 只要依次执行以下两个命令即可解决: 第一步: sudo apt-get remove vim-common 第 ...
- 如何解除计算机方向键问题,笔记本键盘上下左右键怎么解锁_笔记本电脑的上下左右键被锁住了如何解决-win7之家...
我们在电脑中玩游戏的时候,经常会使用到键盘上下左右键来进行操作,不过有不少笔记本用户反映说键盘上下左右键被锁住了,导致无法操作,但是这种情况不多见,如果被锁定的话.一般是数字区域,方向键基本上没有被锁 ...
- java 上下键_用键盘的上下左右键控制JAVA SWING UI中的组件的移动等事件 | 学步园...
用键盘的上下左右键控制JAVA SWING UI中的组件的移动等事件 import java.awt.*; import java.awt.event.*; import javax.swing.*; ...
- Linux vi中按上下左右键出现ABCD及Backspace键失灵
按上下左右键出现ABCD解决方法: 在命令行中执行: echo "set nocp" >> ~/.vimrc (千万要注意,是>>, 而不是>, 否则 ...
最新文章
- jquery .parents(), .parent() 和 closest()方法
- python五十五:__getattribute__内置函数
- 【推荐实践】模型化召回在陌陌社交推荐的探索和应用.pdf(附下载链接)
- 【恋上数据结构】快速排序
- 熬了整整30天,java工作流开发
- request转发,response重定向,异步请求json数据输出到页面
- 《深入应用C++11:代码优化与工程级应用》勘误表
- 力扣-451 根据字符出现频率排序
- 原来 GitHub 网红是这么混出来的 如何以正确的姿势参与开源项目
- linux查询rpm包详细信息
- 文件系统 和 网络附接存储(NAS: Network Attached Storage)
- python 随机分组
- 解决浏览器被劫持的一些方法
- 练习-任意输入n个从小到大的整数的数列,然后输入一个整数插入到数列中,使数列保持从小到大的顺序
- IoT黑板报:美允许4G技术与WiFi共享5G频段
- 稻城亚丁神州租车自驾游,一生一定要去一次的地方
- iphone.android下载,如何在iPhone和Android上删除下载
- 详解图像二值化 函数threshold
- 卡尔曼滤波Q、R如何调节?
- 日常用语--警告/劝解
热门文章
- 2BizBox 如何配置资产负债表和利润表(中国财务)
- 无线信号的传输与接收(operating-band,Channel-bandwidth)
- 怎么高考考入清华大学计算机系,看牛人考研 通过何种手段考取清华计算机系...
- 【假捻发加工生产工单下达】
- 年少无知的我也被python课程割了韭菜,分享被割全过程
- AT+CSQ信号质量指示含义
- java 成员变量调用其他类方法6_方法内部类中不能访问外部类的成员变量。
- MySQL(解压版)下载、安装与配置
- 买房等额本息和等额本金的区别
- 腾讯从社群端整治淘宝客,90%的淘客群被封