实验一个最简单的二维平面上物体的移动,通过键盘的WASD来控制物体。先建立二维平面,摄像机是默认出来的。我们导入一个圆形(Circle),然后给Circle添加组件(Add Component),New Script,通过在脚本中输入不同按键,来达到控制圆形的目的。
脚本名叫做Movement,这个放到Scripts文件夹下单独自己自定义一个文件夹,存放自己的脚本。不要和系统默认生成的模板混用。
也可以单独在自己这个存放脚本的文件夹下,建立一个Movement的C#文件,然后将此文件拖入Circle这个物体,从而达到对物体的控制。
Movement.cs的文件内容如下:
using System.Collections.Generic;
using UnityEngine;
public class Movement : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetKey(KeyCode.W))
{
this.gameObject.transform.Translate(Vector3.up*Time.deltaTime);
}
if (Input.GetKey(KeyCode.S))
{
this.gameObject.transform.Translate(Vector3.down * Time.deltaTime);
}
if (Input.GetKey(KeyCode.A))
{
this.gameObject.transform.Translate(Vector3.left * Time.deltaTime);
}
if (Input.GetKey(KeyCode.D))
{
this.gameObject.transform.Translate(Vector3.right * Time.deltaTime);
}
}
}
这里面主要是引用游戏对象的当前位置来根据键盘操作方向进行移动。我们看下Unity的官方手册,deltaTime代表一次一秒移动一个单元。
// Move the object forward along its z axis 1 unit/second.
transform.Translate(Vector3.forward * Time.deltaTime);
// Move the object upward in world space 1 unit/second.
transform.Translate(Vector3.up * Time.deltaTime, Space.World);
看一下运行效果
移动二维平面物体效果20221008
好了,到此游戏对象就能被我们使用键盘控制了。
下一次我们将放置两个物体看看如何分区游戏对象1和游戏对象2。