原文地址: 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一个工程,看看效果: