Unity3D制作3维立体小游戏

2022-08-24 20:27:54 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

Unity3D制作3维立体小游戏

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

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

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

GameGo

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

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

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

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

物体及特性

项目

特征

数量

圆形

Rigidbody

1

立方体

none

n

摄像机

follow

1 or n

小球以及其特性

代码语言:javascript复制
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();
        }
}

摄像机及其动作

代码语言:javascript复制
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;
    }
}
... 

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

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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141529.html原文链接:https://javaforall.cn

0 人点赞