Unity百游修炼(11)——寻宝游戏

一.最终效果:

unity视频


二.游戏概述

        游戏核心玩法围绕角色在场景内的探索与金币收集展开。玩家控制的角色能够在场景中自由移动,而场景内分布着木桶和宝箱等元素。玩家需要开启这些木桶和宝箱,从中获取金币。当成功收集到 3 枚金币时,游戏判定玩家胜利,并播放胜利特效,给予玩家反馈。本文将基于《印象 Unity 2020 游戏开发基础与实战》中的实例.


三.项目资源

场景和角色资源:Ultimate Low Poly Dungeon | 3D 地下城 | Unity Asset Store

音乐资源:Retro Games Sound FX | 音频 音效 | Unity Asset Store

Free Fantasy Adventure Music Pack | 交响乐 音乐 | Unity Asset Store

特效资源:Procedural fire | 火焰与爆炸 | Unity Asset Store

这些资源为游戏提供了丰富的视觉和听觉素材,极大地增强了游戏的沉浸感


四.详细操作步骤

1.项目准备:

(1)下载资源

        从上述提供的 Unity Asset Store 链接进入对应页面,点击下载按钮,将所需的场景、角色、音乐和特效资源下载到本地。

(2)导入资源

        打开 Unity 编辑器,依次点击 “Assets”->“Import Package”->“Custom Package”,选择下载好的资源文件进行导入。导入过程中,根据提示选择需要导入的文件内容,确保资源完整导入项目。

(3)双击图示中的项目(项目场景内包含一个角色)

        在项目面板中找到包含角色的项目场景文件,双击打开该场景。此时,场景内将显示一个角色,为后续游戏开发操作提供基础。


2.播放背景音乐:

(1)创建一个空物体BGMplayer。添加Audio source组件。

        在 Hierarchy 面板中,右键点击空白处,选择 “Create Empty”,创建一个新的空物体,并将其命名为 “BGMplayer”。  选中 “BGMplayer” 物体,在 Inspector 面板中点击 “Add Component”,搜索并添加 “Audio Source” 组件。

(2)将Free Fantasy Adventure Music Pack/挂载到组件上面。

      在 “Audio Source” 组件的 “AudioClip” 属性处,展开 “Free Fantasy Adventure Music Pack” 文件夹,选择合适的音乐文件进行挂载。


3.创建金币特效

(1)创建名为 “CoinControl” 的 C# 脚本。

        在 Project 面板中,右键点击创建 C# 脚本,命名为 “CoinControl”。该脚本将用于控制金币的生成、显示以及与玩家的交互逻辑

代码内容:
 

(2)将指定预制件拖入场景并命名为 “Coin”,挂载 “CoinControl” 脚本,并为其添加 Audio Source 组件 。

        在 Project 面板中找到金币的预制件(可能位于导入的资源文件夹内),将其拖入 Hierarchy 面板中的场景内,并命名为“Coin”。选中 “Coin” 物体,在 Inspector 面板中点击 “Add Component”,先添加之前创建的 “CoinControl” 脚本,再添加 “Audio Source” 组件。“Audio Source” 组件用于播放金币相关的音效,如收集金币时的音效。

4.编写宝箱脚本:(可写可不写)

(1)在项目面板中创建金币预制件,删除层级面板中的 “Coin” 物体。

 

(2)创建名为 “ChestControl” 的 C# 脚本,关联制作好的金币预制件和玩家角色,用于实现宝箱与金币、玩家之间的交互逻辑:当宝箱与角色的距离小于 1.5m 时,角色可进行相关操作。当宝箱与角色的距离小于 2m 时,随机产生一枚金币,同时播放吃金币音效;当获得金币数量达到或等于 3 时,播放游戏胜利特效。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CoinControl : MonoBehaviour
{
    public GameObject effect;// 特效 
    public GameObject player;
    public static int count = 0;//金币数量
    public AudioSource audiosourse;
    // Start is called before the first frame update
    void Start()
    {
        audiosourse=GetComponent<AudioSource>();
        Debug.Log("player:"+player.gameObject);
    }

    // Update is called once per frame
    void Update()
    {
        float dis=Vector3.Distance(transform.position, player.transform.position);
        if (dis < 1.5f)
        {
            count++;
            audiosourse.Play();
            Debug.Log("获得金币,当前的金币为:" + count);
            if (count > 3)
            {
                GameObject go = Instantiate(effect, transform.position, transform.rotation);
                Destroy(go, 8f);//8s后删除特效
            }
            Destroy(this);//删除脚本
            Destroy(gameObject, 0.3f);//销毁自身
        }
    }
}

五.结语

        通过以上详细步骤,你可以逐步完成基于 Unity 的金币收集游戏的开发,实现角色在场景中自由走动、收集金币、触发特效等丰富的游戏功能。希望本教程能帮助你顺利开启游戏开发之旅,创造出更多精彩有趣的游戏作品。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值