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!

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • vue 往数组添加数据

    vue 往数组添加数据constnum1=[a,s,d]constnum2=[n,i,hao]for(letnofnum1){num2.push(n)}num2.push(…num1)

  • or1200于IMMU分析

    or1200于IMMU分析

  • 美元共有几种面值_日元的面值有哪几种

    美元共有几种面值_日元的面值有哪几种美元面值纸币有1美元、2美元、5美元、10美元、20美元、50美元、100美元。以前曾发行过500和1000元面额的大面额钞票,现在已不再流通。美元是美利坚合众国的官方货币。目前流通的美元纸币是自19

  • bat中使用mshta调用vbs语句获取精准计算的日期

    bat中使用mshta调用vbs语句获取精准计算的日期1.在bat中,获取指定的日期格式是比较麻烦的。因为cmd环境中,日期格式随着系统的时间格式设置而变化,通常系统默认的时间格式是“\’”符号作为连接符。日期通常用在文件名上,比如日志的文件名。那么日期的格式就只能用“-”符号代替,更改系统日期格式会显得容易被外界因素改变,导致不稳定。当然也可以用bat中的set来进行替换,但这样费代码量。2.对于计算日期来说,bat是难以准确做到的,也需要堆积代码量才能完成。特别是到了每个月的一号时,无法确定昨天是否是31号还是30号还是28号。那么bat就只能陷入迷茫

  • 互联网公司程序员和外包公司程序员有什么区别?

    互联网公司程序员和外包公司程序员有什么区别?互联网的到来就注定会有外包公司的诞生,起初外包公司给一些不愿意花高代价招程序员的创业型小企业做独立外包,后来渐渐的大型的互联网公司开始出现,他们愿意把一些自己不熟悉或者繁琐的的领域和功能模块外包给专业能力更强的外包团队。从本质上讲,互联网公司和外包公司都是以盈利为己任。但…

  • RabbitMQ 七战 Kafka,差异立现!

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 译者丨王欢,Golang后端工程师,DockOne社区译者 来源 | 分布式实验室(ID:dockeron…

发表回复

您的电子邮箱地址不会被公开。

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