Unity3D制作3维立体小游戏

Unity3D制作3维立体小游戏

Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化的多平台综合游戏开发工具,是一个全面整合的专业的游戏引擎,Unity类似Director,Blender game engine,Virtools或Torque Game Builder等利用交互的图形化开发环境为首要方式的软件。下面通过Unity做这2件事:

- Unity编写一个图形化小球游戏

- Unity制作“宏大”探险场景(next chapter)

GameGo

  • Unity编写一个图形化小球游戏

核心思想:登录Unity后创建一个Project,后创建几个立方体以及一个圆形小球,圆形小球作为一个立方体来作为一个触发性物体,而立方体作为一个事情触发物质。

圆形作为一个触发性物体,故实例化图形以及一个地形,为地形丰富其地貌,如下图所示:

图1.制作对象、触发器以及地形

后开始编写 触发器行为 ,扩展功能并实行部署。

物体及特性

项目 特征 数量
圆形 Rigidbody 1
立方体 none n
摄像机 follow 1 or n

小球以及其特性

public class PlayerController : MonoBehaviour{
public float speed;
    private Rigidbody rb;
    public GameManager gameManger;

    // Use this for initialization
    void Start () {
        rb = GetComponent<Rigidbody>(); 
    }

    void FixedUpdate () {

        float moveHorizontala = Input.GetAxis("Horizontal");  
        float moveVertical = Input.GetAxis("Vertical");
        Vector3 movement = new Vector3(moveHorizontala, 0.0f, moveVertical) * speed;
        rb.AddForce(movement);
    }

    void OnTriggerEnter(Collider other){
        if (other.gameObject.CompareTag("Cube")){
            float newX = Random.value * 46.0f - 23.0f;
            float newZ = Random.value * 46.0f - 23.0f;
            other.gameObject.transform.position = new Vector3(newX, 1.0f, newZ);   
            //other.gameObject.transform.position = new Vector3(newX, 1.0f, newZ);
            gameManger.AddScore();
        }
}

摄像机及其动作

public class CameraController : MonoBehaviour {

    public Transform player;
    private Vector3 offset;

    // Use this for initialization
    void Start () {
        offset = transform.position - player.position;
    }

    // Update is called once per frame
    void LateUpdate () {
        transform.position = offset + player.position;
    }
}
... 

后形成这样的场景,增加一个平面计分器,如下图所示:

加入计分器后效果

这样就可以开始我们愉快的游戏了!

happy game!

猜你喜欢

转载自blog.csdn.net/qq_35495233/article/details/78906517