void Update()
{
//创建一个Vector2对象position,用来获取当前对象的位置
Vector2 position = transform.position;//此处的transform可认为是加载了该脚本的游戏对象的transform组件
//更改position的x坐标值,让其加上0.1
position.x = position.x + 0.1f;
//更新当前对象的位置到新位置
transform.position = position;
}以上代码可简单实现一个对象在x轴上移动
Vector2 二维向量
在数学中,Vector向量/矢量指的是带方向的线段
在Unity中,Transform值使用x表示水平位置,使用y表示垂直位置,使用z表示深度。这3个数值组成一个坐标。在2D游戏中,你无需储存z轴位置,因此你可以在此处使用Vector2来仅储存x和y位置。
Transform中position的类型,也是Vector2
C#这种强类型语言,赋值时,左右必须是同一类型才能进行
void Update()
{
//获取水平输入,按向左,会获得-1.0f;按向右,会获得1.0f;
float horizontal = Input.GetAxis("Horizontal");
//获取垂直输入,按向下,会获得-1.0f;按向上,会获得1.0f;
float vertical = Input.GetAxis("Vertical");
//获取对象当前位置
Vector2 position = transform.position;
//更改位置
position.x = position.x + 0.1f*horizontal;
position.y = position.y + 0.1f * vertical;
//新位置给游戏对象
transform.position = position;
}以上代码可简单实现用“上下左右”或“wasd”控制人物
Unity默认Input Manager设置
在Unity项目设置中,可以通过Input Manager进行默认的游戏输入控制设置
Edit > Project Setting > Input
键盘按键,以2个键来定义轴:
~负值键negative button,被按下时将轴设置为-1
~正值键position button,被按下时将轴设置为1
Axis轴Axes是2它的负数形式
~Horizontal Axis:水平轴对应X轴
~Vertical Axis:纵轴对应Y轴
在此处可调整按键设置。
void Update()
{
Vector2 position = transform.position;
if(Input.GetKey("d"))
{
position.x = position.x + 0.1f;
}
if (Input.GetKey("a"))
{
position.x = position.x - 0.1f;
}
if (Input.GetKey("s"))
{
position.y = position.y - 0.1f;
}
if (Input.GetKey("w"))
{
position.y = position.y + 0.1f;
}
}以上代码可起到相同效果。