【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏5(附项目源码)

简介: 【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏5(附项目源码)

前言

欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇中,我们将探索如何制作一个类似于七日杀和森林的生存游戏。


本篇内容会比较多,我会分几篇来实现,感兴趣的可以关注一下,以免错过内容更新。


本节主要实现了一个修改鼠标光标和中心提示图,并添加拾取提示弹窗的功能。


修改鼠标光标和中心提示图

鼠标光标素材

可以使用我准备的,也可以使用自己喜欢的

修改默认鼠标光标

效果

修改中心提示图

修改SelectionManager

public Image centerDotlmage;//中心圆点
public Image handlcon;//手图标

void Update()
{
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); // 从鼠标位置创建射线
    RaycastHit hit;

    if (Physics.Raycast(ray, out hit, maxDistance, layerMask)) // 检测射线是否击中物体
    {
        var selectionTransform = hit.transform;

        if (selectionTransform.GetComponent<InteractableObject>())
        {
            //。。。

            
            if(selectionTransform.GetComponent<InteractableObject>().isPickUp){
                centerDotlmage.gameObject.SetActive(false);
                handlcon.gameObject.SetActive(true);
            }
        }
    }
    else
    {
        interactionInfoUI.SetActive(false); // 鼠标未点击任何物体,隐藏交互信息UI

        centerDotlmage.gameObject.SetActive(true);
        handlcon.gameObject.SetActive(false);
    }
}

效果

image.png

拾取提示弹窗

简单绘制UI

拾取弹窗功能

修改InventorySystem

[Header("拾取弹窗信息")]
public GameObject pickupAlert;
public TextMeshProUGUI pickupName;
public Image pickuplmage;

//添加物品
public void AddToInventory(string itemName)
{
    // .。。

    TriggerPickupPopUp(itemName, itemToAdd.GetComponent<Image>().sprite);
}

//拾取弹窗信息
void TriggerPickupPopUp(string itemName, Sprite itemSprite)
{
    pickupAlert.SetActive(true);
    pickupName.text = itemName;
    pickuplmage.sprite = itemSprite;

    CancelInvoke("ClosePickupAlert");
    Invoke("ClosePickupAlert", 3f);
}

void ClosePickupAlert()
{
    pickupAlert.SetActive(false);
}

挂载脚本,配置参数

效果

image.png

源码

源码不出意外的话我会放在最后一节

目录
相关文章
|
2天前
|
存储 JSON 关系型数据库
【unity实战】制作unity数据保存和加载系统——大型游戏存储的最优解
【unity实战】制作unity数据保存和加载系统——大型游戏存储的最优解
11 2
|
2天前
|
图形学
【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)(上)
【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)
10 2
|
2天前
|
存储 JSON 图形学
【unity实战】制作unity数据保存和加载系统——小型游戏存储的最优解
【unity实战】制作unity数据保存和加载系统——小型游戏存储的最优解
6 0
|
2天前
|
图形学
【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)(下)
【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)(下)
8 0
|
2天前
|
图形学
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版3(附带项目源码)
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版3(附带项目源码)
13 2
|
2天前
|
图形学
【制作100个unity游戏之28】花半天时间用unity复刻童年4399经典小游戏《黄金矿工》(附带项目源码)
【制作100个unity游戏之28】花半天时间用unity复刻童年4399经典小游戏《黄金矿工》(附带项目源码)
10 0
|
2天前
|
图形学
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版2(附带项目源码)
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版2(附带项目源码)
8 1
|
2天前
|
存储 JSON 关系型数据库
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版13(完结,附带项目源码)
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版13(完结,附带项目源码)
9 0
|
2天前
|
图形学
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版12(附带项目源码)
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版12(附带项目源码)
8 0
|
2天前
|
存储 图形学
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版11(附带项目源码)
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版11(附带项目源码)
6 0