【Unity3D实战项目:疯狂杀戮】角色模型的行走控制(一)
来源:互联网 发布:vb自动化编程 编辑:程序博客网 时间:2024/05/16 19:06
原文地址: http://www.cocos2dev.com/?p=342
我选的项目第一篇教学是控制角色的移动,这是最基本的游戏控制。
OK,开场白结束,开始咯~
第一步:简单场景的搭建:
1、首先请打开Unity,新建一个Unity工程。
2、新建的工程默认会加入Main Camera,我们加入一个地形Terrain,Terrain->create Terrain。
这时你发现场景都是黑黑的,我们在加一个方向光光源(可以理解成太阳)Directional light,选中工程的Hierarchy面板,Create->Directional light。
3、导入角色模型文件,可以直接把模型人物文件复制到工程的Assets目录下,Unity会自己刷新并加载模型文件。
4、在Project面板,选中我们导入的模型文件,拖拽到Scene场景中,并调节好位置,起码让自己能看到它在哪。
OK,一个最简单的场景搭建完毕。
Scene面板:
Hierarchy面板、Project面板:
第二步:脚本控制角色移动:
1、选中Project面板,新建一个文件夹Create->Folder,命名为MyScript,这个文件夹用来存放我们自己写的脚本文件。良好的编程习惯还是需要滴…
2、选中MyScript文件夹,Create->C# Script,命名为BarbariansControl。当然你也可以使用js脚本。API都是一样的。
3、双击打开创建的BarbariansControl脚本文件,Unity会默认使用MomoDevelop编辑器进行编辑。(你也可以选择使用自己熟悉的IDE)。
4、代码的编写:
Unity对新建的文件会自动创建一些函数。
最常见的Update,系统每一帧都会自己调用。(点击查看更多详细介绍)
代码:
using UnityEngine;using System.Collections;public class BarbariansControl : 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 = 10; public void Awake() { state = HERO_UP; } void Update () { float KeyVertical = Input.GetAxis ("Vertical") ; float KeyHorizontal = Input.GetAxis ("Horizontal"); if(KeyVertical == 1){ //up setHeroState(HERO_UP); }else if(KeyVertical == -1){ //down setHeroState(HERO_DOWN); } if(KeyHorizontal == 1){ //right setHeroState(HERO_RIGHT); }else if(KeyHorizontal == -1){ //left setHeroState(HERO_LEFT); }if(KeyVertical == 0 && KeyHorizontal ==0){ animation.Play(); } } public 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); //move transform.Translate(transformValue * moveSpeed, Space.World); state = newState; }}
编写完毕后,回到Unity工程,选中Project面板中的BarbariansControl脚本文件,鼠标拖拽到Hierarchy面板中的角色模型上,进行脚本绑定。
OK,Run一个工程,看看效果:
- 【Unity3D实战项目:疯狂杀戮】角色模型的行走控制(一)
- unity3D之鼠标控制角色行走
- Unity3D自学笔记——有限状态机(二)角色行走控制
- unity3d 鼠标点击或触摸 控制角色对象行走
- unity3d 鼠标点击或触摸 控制角色对象行走
- unity3d 鼠标点击或触摸 控制角色对象行走
- Unity3D-RPG项目实战(4):角色性能测试
- Unity3D-RPG项目实战(4):角色性能测试
- yii2项目实战-了解一下基于角色的访问控制
- yii2项目实战-了解一下基于角色的访问控制
- Unity3D游戏制作(一)——3D横版场景的角色移动控制
- Unity3D游戏制作(一)——3D横版场景的角色移动控制
- 角色的自动行走
- 【Unity3D自学记录】Unity3D游戏开发之自由视角状态下的角色控制(一)
- Unity3D 游戏引擎之FBX模型的载入与人物行走动画的播放(十二)
- Unity3D研究院之FBX模型的载入与人物行走动画的播放(十二)
- unity3d仿仙剑角色控制
- Unity3D - 控制角色移动
- another
- undefined reference to 'pthread_create'问题解决
- Theatre Square
- jsp+java 仿google日历样式显示数据
- SQL语句5——索引
- 【Unity3D实战项目:疯狂杀戮】角色模型的行走控制(一)
- DLL
- Java 学习笔记13:Spring JSTL 核心标签库 使用
- dispatch onintercept
- ASP.NET 调用模式窗体
- No goals have been specified for this build. You must specify a valid li fecycle phase or a goal in
- Event mapper EA新制作
- i/o设备小结
- Excel转为MySQL语句的方法