游戏开发常见操作梳理之NPC药品商店系统(NGUI版)

2024-01-21

(后续会出UGUI+Json的版本,敬请期待!)

游戏开发中经常会出现药品商店,实际操作与武器商店类似,甚至根据实际情况可以简化设置,废话不多说,直接上代码:

药品商店的源码:

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

public class ShopDrug : MonoBehaviour
{
    public static ShopDrug _instance;
    private TweenPosition tween;
    private TweenPosition tween2;
    private bool isShow = false;
    //关联关闭按钮
    public UIButton uIButton;
    public GameObject numberDialog;
    public UIInput numberInput;
    public UIButton btn1001;
    public UIButton btn1002;
    public UIButton btn1003;
    public UIButton btnOk;
    public UISprite sprTip;
    //关联上面的文字
    public UILabel spriceTipText;

    private int buy_id = 0;
    Vector3 sprTrs;

    private void Awake()
    {
        _instance = this;
        tween = this.GetComponent<TweenPosition>();
        tween2 = sprTip.GetComponent<TweenPosition>();
    }
    public void Start()
    {
        sprTrs = new Vector3(2.4f,-8,0);
        uIButton.onClick.Add(new EventDelegate(() =>
        {
            TransformState();
        }));
        btn1001.onClick.Add(new EventDelegate(() =>
        {
            Buy(1001);
        }));
        btn1002.onClick.Add(new EventDelegate(() =>
        {
            Buy(1002);
        }));
        btn1003.onClick.Add(new EventDelegate(() =>
        {
            Buy(1003);
        }));
        btnOk.onClick.Add(new EventDelegate(() =>
        {
            int count = int.Parse(numberInput.value);
            ObjectInfo info = ObjectsInfo._instance.GetObjectInfoById(buy_id);
            int price = info.price_buy;
            int price_total = price * count;
            bool success = Inventory._instance.GetCoin(price_total);
            if(success)
            {
                //取款成功 可以购买
                if(count>0)
                {
                    Inventory._instance.GetId(buy_id, count);
                    spriceTipText.text = "购买成功";
                    sprTip.enabled=true;
                    spriceTipText.enabled=true;
                    tween2.PlayForward();
                    Invoke("SprTipHide", 1);
                }
            }
            else
            {
                //金币不足
                spriceTipText.text = "金币不足";
                sprTip.enabled = true;
                spriceTipText.enabled = true;
                tween2.PlayForward();
                Invoke("SprTipHide", 1);
            }
            numberDialog.SetActive(false);
        }));
    }
    void ShowNumberDialog()
    {
        numberDialog.SetActive(true);
        numberInput.value = "0";
    }
    void Buy(int id)
    {
        ShowNumberDialog();
        buy_id= id;
    }

    public void TransformState()
    {
        if(isShow==false)
        {
            tween.PlayForward();
            isShow = true;
        }
        else
        {
            tween.PlayReverse();
            isShow = false;
        }
    }
    void SprTipHide()
    {
        sprTip.enabled=false;
        spriceTipText.enabled=false;
        tween2.PlayReverse();
    }
}

药品商人的源码:

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

public class ShopDrugNPC :NPC
{
    public void OnMouseOver()
    {
        //鼠标在这个上面一直调用方法
        if(Input.GetMouseButtonDown(0)&&UICamera.isOverUI == false)
        {
            GetComponent<AudioSource>().Play();
            ShopDrug._instance.TransformState();
        }
    }
}

其中使用了UICamera.isOverUI主要是用于判断点击的是不是在UI上面,防止UI点击穿透(可能会点击到UI下面的NPC。其它的代码几乎不需要过多的解释,如果对于代码不明白的欢迎私聊问我。其中有一些代码可能关联了其它系统,直接复制使用可能会有些问题,可以直接删除修改即可,或者查看我的其它系统笔记补充该系统。

主要核心逻辑已经给出,(适用于21版Unity)希望我的笔记对你有些帮助,喜欢就点赞收藏吧!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

游戏开发常见操作梳理之NPC药品商店系统(NGUI版) 的相关文章

随机推荐

  • 【计算机毕业设计】趵突泉景区的智慧导游小程序_5ztvv

    当今社会已经步入了科学技术进步和经济社会快速发展的新时期 国际信息和学术交流也不断加强 计算机技术对经济社会发展和人民生活改善的影响也日益突出 人类的生存和思考方式也产生了变化 传统趵突泉景区的智慧导游采取了人工的管理方法 但这种管理方法存
  • 【计算机毕业设计】二手家电管理平台

    时代在飞速进步 每个行业都在努力发展现在先进技术 通过这些先进的技术来提高自己的水平和优势 二手家电管理平台当然不能排除在外 二手家电管理平台是在实际应用和软件工程的开发原理之上 运用java语言以及前台VUE框架 后台SpringBoot
  • 【计算机毕业设计】毕业生就业管理微信小程序_lm9q0

    腾讯公司在2017年1月19日发布了一款不需要下载 不需要卸载 不需要存储的软件叫微信小程序 受到了很多人的喜欢 微信小程序自2017年发布至今 依托微信的社交属性和庞大的用户基数 已经渗透到生活的方方面面 1 微信小程序可以将基于微信平台
  • 【计算机毕业设计】微信小程序反诈科普平台

    相比于以前的传统手工管理方式 智能化的管理方式可以大幅降低反诈科普平台的运营人员成本 实现了反诈科普平台的标准化 制度化 程序化的管理 有效地防止了反诈科普平台的随意管理 提高了信息的处理速度和精确度 能够及时 准确地查询和修正反诈科普 一
  • 【计算机毕业设计】SpringBoot+Vue.js协同过滤算法美食推荐小程序 _7tr93

    伴随着我国社会的发展 人民生活质量日益提高 于是对各种需求进行规范而严格是十分有必要的 所以许许多多的微信小程序应运而生 此时单靠人力应对这些事务就显得有些力不从心了 所以本论文将设计一套协同过滤算法美食推荐小程序 帮助美食推荐进行美食分类
  • 一直可以投到4月初的【央企】金融科技岗&;综合类岗位!

    题解 判断字母 include
  • 【计算机毕业设计】白优校园社团网站的设计与实现

    近些年 随着中国经济发展 人民的生活质量逐渐提高 对网络的依赖性越来越高 通过网络处理的事务越来越多 随着白优校园社团网站的常态化 如果依然采用传统的管理方式 将会为工作人员带来庞大的工作量 这将是一个巨大考验 需要投入大量人力开展对社团
  • 【计算机毕业设计】宝鸡文理学院学生成绩动态追踪系统

    研究开发宝鸡文理学院学生成绩动态追踪系统的目的是让使用者可以更方便的将人 设备和场景更立体的连接在一起 能让用户以更科幻的方式使用产品 体验高科技时代带给人们的方便 同时也能让用户体会到与以往常规产品不同的体验风格 与安卓 iOS相比较起来
  • 打造视听盛宴——Resolume Arena 7,一款强大的VJ音视频软件

    在当今数字时代 视觉艺术和音乐的融合已经成为了许多娱乐活动和演出的重要组成部分 而在这个领域中 Resolume Arena 7无疑是一款备受赞誉的VJ音视频软件 Resolume Arena 7具备强大的功能和直观的界面设计 使得用户能够
  • 打造完美人像,PixCake像素蛋糕助您一键修图

    您是否曾经为自己的人像照片需要进行繁琐的修图而感到困扰 是否曾经想要打造出完美的自拍照 却不知道该如何下手 现在 我们为您推荐一款强大的人像处理技术修图软件 PixCake像素蛋糕 PixCake像素蛋糕是一款基于AI人像处理技术的修图软件
  • 【计算机毕业设计】springbootstone音乐播放器的设计与实现

    随着我国经济的高速发展与人们生活水平的日益提高 人们对生活质量的追求也多种多样 尤其在人们生活节奏不断加快的当下 人们更趋向于足不出户解决生活上的问题 stone音乐播放器展现了其蓬勃生命力和广阔的前景 与此同时 为解决用户需求 stone
  • RubyMine for Mac/win:提升Ruby和Rails开发的强大IDE

    随着Ruby和Rails在Web开发领域的广泛应用 一款高效的开发工具对于提高生产力至关重要 JetBrains RubyMine正是这样一款值得信赖的集成开发环境 IDE 作为Mac和Windows平台上的强大工具 RubyMine为开发
  • U3D游戏开发中摇杆的制作(UGUI版)

    在PC端模拟摇杆 实现玩家通过控制摇杆让玩家移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine using Unity
  • U3D游戏开发中摇杆的制作(NGUI版)

    在PC端模拟摇杆 实现控制摇杆让玩家或者物体移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine public clas
  • 游戏开发常见操作梳理之NPC任务系统

    多数游戏存在任务系统 接下来介绍通过NPC触发任务的游戏制作代码 using System Collections using System Collections Generic using UnityEngine
  • 游戏开发创建操作之玩家信息系统的建立

    游戏一般都需要玩家信息系统 那么我们应该如何搭建玩家信息系统 接下来我将展示一种简单的方法 完整代码如下 using System Collections using System Collections Generic using Uni
  • iStat Menus:Mac用户的系统状态守护者

    iStat Menus 一款为Mac用户精心设计的系统状态监控工具 致力于为用户提供关于系统性能 硬件状态和网络活动的实时信息 它不仅是一个监控工具 更是一个守护者 始终守护着Mac系统的安全与稳定 通过直观的仪表盘风格 iStat Men
  • 游戏开发常见操作梳理系列之——玩家信息的显示系统

    在游戏中 有不少游戏在左上角会出现玩家的头像和等级以及血量 这就是玩家的信息显示系统 那么这些是如何制作的呢 接下来我将讲讲代码的操作 其它操作我会在其它笔记中一一说明 敬请期待 信息的显示相当简单就是控制一些UI 然后在其它系统里面填写相
  • 提升编程效率,Sublime Text 4 for Mac 让代码编辑更高效!

    作为一名开发人员或程序员 一个高效且功能强大的文本编辑器是必不可少的工具 而 Sublime Text 4 for Mac 正是为满足这一需求而设计的 无论你是初学者还是经验丰富的专业人士 Sublime Text 4 都将成为你编程生涯中
  • 游戏开发常见操作梳理之NPC药品商店系统(NGUI版)

    后续会出UGUI Json的版本 敬请期待 游戏开发中经常会出现药品商店 实际操作与武器商店类似 甚至根据实际情况可以简化设置 废话不多说 直接上代码 药品商店的源码 using System Collections using Syste