unity-简单小游戏 控制小球(2)

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中。

猜你喜欢

转载自blog.csdn.net/qq_64573579/article/details/127521908