【Unity3D开发小游戏】Unity3D开发《3D迷宫》小游戏_unity3d简单小游戏项目-程序员宅基地

技术标签: unity  3d  # Unity3D之日常开发  游戏引擎  

推荐阅读

大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前言

闲来无事,从零开始整个《3D迷宫》小游戏。

本篇文章会详细介绍构思、实现思路,希望可以帮助到有缘人。

二、构思

首先,要实现一个小游戏,心里肯定要有一个大概的想法,然后就是将想法完善起来。

我的想法就是一个用立体的墙搭建的迷宫,然后控制人物在迷宫中移动,最后找到出口,就这么简单。

当然,这是一个雏形,比如可以加点音效、背景、关卡、解密等。

那么整理一下实现思路就是:

  • 构建3D迷宫
  • 实现人物移动
  • 实现出入口逻辑

OK,下面就正式开发。

三、正式开发

3-1、搭建场景

首先,新建个项目,我用了Unity 2019.4.7f1版本,项目名称跟位置按照自己的喜好设置即可:
在这里插入图片描述
接下来构建迷宫,先新建一个Plane,让它最够大,扩大10倍:在这里插入图片描述
新建Cube,调整大小缩放,让它看起来像是一堵墙,然后构建迷宫:

在这里插入图片描述

3-2、设置出入口

在这里插入图片描述
放两个Cube,设置缩放,将出口名字改成Exit,这样就行了,到时候通过碰撞检测检测小球是否到达出口即可。

3-3、添加角色

在Hierarchy视图,右击选择3D Objcet→Capsule,新建一个球体,添加Rigibody组件:

在这里插入图片描述

设置Drag抓地力为1。

就这样设置就行了,在实际运行中如果参数不合适还可以再调整。
将小球移动到入口的位置。

3-4、实现角色移动

首先,导入官方的资源包:

https://download.csdn.net/download/qq_37513835/62122829

然后将Assets\Standard Assets\Characters\FirstPersonCharacter\Prefabs文件夹下面的RigidBodyFPSController拖入到场景中:

在这里插入图片描述

最后将所有的墙的父物体设置为地板。

运行程序:
在这里插入图片描述

3-5、出入口逻辑

出口用碰撞检测,新建脚本ExitControl.cs,编辑代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class ExitControl : MonoBehaviour
{
    
    void OnCollisionEnter(Collider col)
    {
    
        if (col.gameObject.name == "Capsule")
        {
    
            SceneManager.LoadScene(SceneManager.GetActiveScene().name);
        }
    }
}

将代码附给Exit对象。

结束了。

四、总结

本文实现了一个《3D迷宫》小游戏。

首先,搭建场景,然后实现角色移动,出入口逻辑。

整天代码比较简单,官方的移动代码也可以学习一下。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/q764424567/article/details/123197462

智能推荐

CSS Vue 中使用标签 i 设置图标和hover样式(小技巧)_vue i标签-程序员宅基地

文章浏览阅读7.3k次,点赞4次,收藏6次。样式如下:方式一:使用图片<template> <div class="main"> <div class="win"> <div class="title"> <i class="icon close-icon"/> </div> </div> </div></t_vue i标签

JDK15新特性概述-程序员宅基地

文章浏览阅读3.3k次。Java的现状2020 年是 Java 诞生的第 25 个年头。Oracle表示,目前java仍然流行编程语言,广泛使用在企业中。目前全世界有超过69%的专职开发人员使用Java,全世界有510亿台活动Java虚拟机(JVM)在部署中,目前Java主要被用于分析,数据管理,大数据,DevOps,移动,持续开发工具和聊天机器人等服务。历史版本的主要新特性在过去的这些年中,Java ..._jdk15概述

网易云歌单添加到php,给自己的网站添加网易云音乐歌单吧^ ^-程序员宅基地

文章浏览阅读630次。这个是怎么实现的?一起来看看吧APlayer首先我们需要一个音频播放器,这里我用到了APlayer,这是由bilibili前端大神DIYgod开源的播放器,有兴趣的可以去TA的主页看看,非常惊艳,这里我就不多说了我们看一下APlayer的官方文档,方法很简单const ap = new APlayer({container: document.getElementById('aplayer'),a..._php嵌入网易云动态

ListView的用法_listview 享学-程序员宅基地

文章浏览阅读107次。package com.enjoy.leo_listview;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import java.util.ArrayList;_listview 享学

docker 下安装consul_docker 单机版 consul agent -server -bootstrap -ui -cl-程序员宅基地

文章浏览阅读180次。1.获取consul镜像docker pull consul2.Docker运行consuldocker run --name consule -d -p 8500:8500 -p 8600:8600/udp consul3.访问管理页面http://127.0.0.1:8500/ui_docker 单机版 consul agent -server -bootstrap -ui -client='0.0.0.0

struts之DynaActionform动态表单创建_struts dynaactionform oracle clob-程序员宅基地

文章浏览阅读751次。 具体DynaActionform含义说明另文1)什么是动态ActionForm 动态ActionForm是struts从1.1版本开始引入一项新的技术,即在创建ActionForm时 可以不用通过编程的方式而只要通过struts-config.xml文件中进行配置,以后在struts运行时,会自动_struts dynaactionform oracle clob

随便推点

netns命名空间使用_net ns-程序员宅基地

文章浏览阅读607次。在linux系统中通过netns创建虚拟主机,作用同VM,相比于VM其优势是随时创建,随时删除,操作方便增加虚拟网络命名空间vm,vm是命名空间的名字,可以随意起,就创建了一台虚拟nsip netns add vm显示物理机里的命名空间,加不加list都行,显示刚创建的vmip netns (list)进入netns,也可以不进入但执行每一个ip link都需要在前面加上ip..._net ns

sql 分组查询及格不及格人数-程序员宅基地

文章浏览阅读2k次。select score as 类别,count(*) as 人数 from (select case when fen>=60 then '及格' else '不及格' end as score from fen ) fen group by score转载于:https://www.cnblogs.com/b422/p/3725903.html..._工序 分组求和 合格和不合格的数量 sql

HTML5之WebSocket_html5websocket 多服务器-程序员宅基地

文章浏览阅读199次。WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。现在,很多网站为了实现推送技术,所用_html5websocket 多服务器

Qt使用xlnt操作Excel(二):导入Excel_qt6 xlnt-程序员宅基地

文章浏览阅读2.5k次,点赞4次,收藏9次。这篇讲如何使用xlnt导入excel,虽然xlnt比Qt自带的ActiveQt库操作更简单,但是使用过程中还是存在一些bug。我当前用的分支是8f39375,导入时有个bug会导致有些情况下编写的Excel文件导入时会报错,不知道官方后面会不会修复,现在我们来重现这个bug并做一个临时的处理办法。继续用上一篇配置好的XlntTest工程,在工程目录下新建2个xlsx文件,1.xlsx和2.xls..._qt6 xlnt

Android之framework修改底部导航栏NavigationBar动态显示和隐藏_top_app_window_changed-程序员宅基地

文章浏览阅读1.1w次,点赞3次,收藏14次。转载自:http://blog.csdn.net/way_ping_li/article/details/45727335 大家都知道,Android从3.0版本开始就加入了NavigationBar,主要是为那些没有实体按键的设备提供虚拟按键,但是,它始终固定在底部,占用48dp的像素高度,尽管从android 4.4开始可以全透明,使用这一部分像素,但三个按钮始终悬浮在屏幕上,这对于_top_app_window_changed

MTK WIFI小笔记_高通查看wifi fw固件版本号-程序员宅基地

文章浏览阅读7.6k次。一、前言 这几天一直在修改WIFI,把自己遇到的问题以及相关知识做一个小小的笔记,毕竟好记性不如烂博文。二、WIFI相关问题注意事项 在遇到WIFI问题的时候,要注意以下事项: 1.天线:首先我们要确认测试机和对比机的天线是否一样,如果不一样就没有可对比性。 2.WIFI的FW版本:FW指的是Firmware,WIFI的FW版本号怎么看呢,进入MTK的工程模式-Conn_高通查看wifi fw固件版本号