Rigidbody刚体组件:添加物理属性
上次为小球添加了Rigidbody刚体组件之后,将小球以y轴方向拖离地面,运行游戏后小球会相当于施加了重力一样掉到地面上。
C#脚本代码
将上次添加的脚本拖动到player上,这样代码就能控制游戏物体了。下面我们双击打开脚本。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class player : MonoBehaviour
{
private Rigidbody rd;
// Start is called before the first frame update
void Start()
{
rd = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
rd.AddForce(new Vector3(1,0,0));
}
}
上图的代码可以得到游戏物体上的刚体组件,并把它赋值给rd;向x的正轴方向施加一个力,大小为1。保存代码运行游戏,会发现小球缓慢地向右边移动(向左边移动,把代码中x位置的值修改为-1,前后修改z轴)。
以上是小球开局自己移动,那么我们想要用键盘控制小球的移动, 需要在update中添加和修改几行代码。如下,
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
rd.AddForce(new Vector3(h,0,v));
horizontal获取了用户的按键,可以控制左右的移动(用A D键控制);vertical可以控制前后移动(W S键控制)。如果觉得速度太慢,在后面*一个值,比如
rd.AddForce(new Vector3(h,0,v)*5);
这样移动速度就快很多了。
调整相机角度
选中Hierarchy窗口中的Main Camera,点击左上角第二个坐标图案的按钮,调整摄像机的位置,点击左上角第三个按钮,调整摄像机的角度。右下角小窗口是调整之后游戏运行的视角。
添加墙
新建一个cube游戏物体,Reset它的坐标,将它的z轴设置为地面的宽度,并且将它移动到地面的边界。调整好之后ctrl+D可以复制这个游戏物体,然后将这面墙拖动到地面的另一端。
接着继续复制两次,将它们旋转90度(右侧Rotation y轴输入90),将它们合理调整一下,让它们看起来规整美观。有了墙之后运行游戏小球就不会跳出边界了。
为保持界面整洁,将cube都放置到ground中。