Unity3D制作3维立体小游戏

Unity3D制作3维立体小游戏Unity3D报告,纯属个人兴趣

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

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!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux 使用外部设备的(光盘) 安装和更新库

    linux 使用外部设备的(光盘) 安装和更新库

    2022年1月7日
    50
  • javascript断点调试

    javascript断点调试一、方法11.断点文件位置打开chrome,找到Sources,在一堆的文件夹里面找到你要调试的js文件,打开它:下面是html前端展示:2.打断点当你运行代码的时候,例如:操作搜索按钮点击事件,出现未知问题。首先,给Sources里面的js文件打断点。点击你要调试的代码的行数,发现行数会被标记为蓝色(chrome),这说明已经成功打断点了,恭喜你成功了第一步。3.断点调试对断点进行调试,首

    2022年5月21日
    44
  • idea2019激活码(已测有效)

    idea2019激活码(已测有效),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    2.1K
  • 一些常用的yum安装卸载的命令

    一些常用的yum安装卸载的命令

    2021年5月31日
    137
  • CAN 接口测试[通俗易懂]

    CAN 接口测试[通俗易懂]CAN测试收发程序can发送测试#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<net/if.h>#include<sys/ioctl.h>#include<sys/socket…

    2022年6月29日
    27
  • matlab物理碰撞建模_opencascade 碰撞检测

    matlab物理碰撞建模_opencascade 碰撞检测碰撞检测Note本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。当试图判断两个物体之间是否有碰撞发生时,我们通常不使用物体本身的数据,因为这些物体常常会很复杂,这将导致碰撞检测变得很复杂。正因这一点,使用重叠在物体上的更简单的外形(通常有较简单明确的数学定义)来进行碰撞检测成为常用的方法。我们基于这些简单的外形来检测碰撞,…

    2025年7月14日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号