Unity:实现手游中的根据时间获得体力

60 篇文章 2 订阅
6 篇文章 0 订阅

GameManager代码:(C#单例,不需要加载到场景)

public class GameManager
{
    //单例
    private static GameManager main;

    public static GameManager Main
    {
        get
        {
            if (main == null)
            {
                main = new GameManager();
            }
            return main;
        }
    }

    private int main_vitality = -1;
    /// <summary>
    /// 玩家拥有的体力数量
    /// </summary>
    public int mainVitality
    {
        get
        {
            if (main_vitality == -1)
            {
                main_vitality = PlayerPrefs.GetInt("mainVitality");
            }
            return main_vitality;
        }
        set
        {
            main_vitality = value;
            PlayerPrefs.SetInt("mainVitality",main_vitality);
            PlayerPrefs.Save();
        }
    }
    /// <summary>
    /// 体力的上限值是多少
    /// </summary>
    public int mainVitalityMax = 100;
    /// <summary>
    /// 多少秒恢复一个体力
    /// </summary>
    public int mainVitalityRestoreSecond = 180;
    private string get_vitality_time = "";
    /// <summary>
    /// 上次获得体力的时间
    /// </summary>
    public string getVitalityTime
    {
        get
        {
            if (get_vitality_time == "")
            {
                get_vitality_time = PlayerPrefs.GetString("GetVitalityTime");
            }
            return get_vitality_time;
        }
        set
        {
            get_vitality_time = value;
            PlayerPrefs.SetString("GetVitalityTime", get_vitality_time);
        }
    }
    /// <summary>
    /// 下一次恢复体力的时间
    /// </summary>
    public TimeSpan nextVitalityRestoreTime;


    /// <summary>
    /// 根据时间自然恢复体力
    /// </summary>
    /// <param name="number">恢复的体力量</param>
    public void AddVitalityByTime(int number)
    {
        if (mainVitality + number > mainVitalityMax)
        {
            mainVitality = mainVitalityMax;
        }
        else
        {
            mainVitality += number;
        }
    }

}

然后是用来计算时间的类TimeManager,为Unity单例,需要挂载在空物体上并且设定为切换场景时不消失

using System;
using UnityEngine;


public class TimeManager : MonoBehaviour
{
    private TimeSpan timeSpan;
    void Start()
    {
        if (PlayerPrefs.GetInt("FirstValueGet") == 0)
        {
            GameManager.Main.mainVitality = GameManager.Main.mainVitalityMax;
            GameManager.Main.getVitalityTime = DateTime.Now.ToString("");
            PlayerPrefs.SetInt("FirstValueGet",1);
            PlayerPrefs.Save();
        }
    }
    private void Update()
    {
        RestoreVitality();
    }
    /// <summary>
    /// 获得体力的方法
    /// </summary>
    void RestoreVitality()
    {
        timeSpan = DateTime.Now - Convert.ToDateTime(GameManager.Main.getVitalityTime);
        if (timeSpan.TotalSeconds > GameManager.Main.mainVitalityRestoreSecond)
        {
            GameManager.Main.AddVitalityByTime((int)timeSpan.TotalSeconds/GameManager.Main.mainVitalityRestoreSecond);
            GameManager.Main.getVitalityTime = DateTime.Now.ToString("");
        }
        else
        {
            GameManager.Main.nextVitalityRestoreTime = timeSpan;
        }
    }
}

将这两个代码设定好就可以访问GameManager里的变量实现体力随时间增加的功能

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unity2D RPG手游源码是一种可用于制作角色扮演类手游代码基础。Unity是一款游戏引擎,而2D RPG则代表游戏类型为二维角色扮演。通过使用Unity2D RPG手游源码,开发者可以快速搭建一个具备角色选择、剧情交互、战斗系统、升级系统等基本要素的手游。 该源码通常包含了游戏的各种元素和功能的实现代码,如角色控制、任务系统、道具系统、技能系统等。使用源码可以节省开发时间,同时也便于开发者进行二次开发和定制。 对于想要制作二维角色扮演类手游的开发者来说,Unity2D RPG手游源码是一个很好的起点。通过学习和修改源码,开发者可以根据自己的需求来制作出具备独特特色的游戏。 值得一提的是,源码只是游戏开发的一部分,还需要配合各种素材和资源进行开发。开发者需要设计游戏世界的地图、角色、怪物和场景,同时编写数值平衡和游戏逻辑等。所以除了掌握源码,开发者还需要具备一定的美术和设计能力。 总之,Unity2D RPG手游源码是制作二维角色扮演类手游的基础代码。通过学习和修改源码,开发者可以制作出符合自己需求的游戏,并需要配合素材和资源进行完整的开发工作。 ### 回答2: Unity2D RPG 手游源码是用于开发二维角色扮演游戏的解决方案。该源码提供了一系列游戏开发所需的基本功能和特性,以便开发者能够快速搭建和定制自己的RPG游戏。 在Unity2D RPG 手游源码,通常会包括以下主要功能: 1. 角色控制:该源码提供了用于角色移动、跳跃、攻击和技能释放等动作控制的功能。开发者可以根据游戏需求进行自定义调整。 2. 物品系统:该源码通常包含物品的管理系统,可以实现物品的获取、使用和存储。开发者可以轻松添加各种装备、道具和消耗品。 3. NPC 交互:该源码提供了与非玩家角色(NPC)进行对话、任务接取和完成等交互功能。开发者可以添加自己的任务和对话系统。 4. 角色属性:该源码通常包括角色的属性系统,例如生命值、魔法值、攻击力和防御力等。开发者可以调整属性数值来平衡游戏玩法。 5. 场景管理:该源码提供了场景之间的切换和加载功能,使得开发者可以构建出一个连贯的游戏世界。 6. 性能优化:该源码通常会包含一些优化技巧,以确保游戏在不同设备上有平稳的运行体验。 总体来说,Unity2D RPG 手游源码是一个强大且灵活的解决方案,可以帮助开发者更轻松地构建自己的角色扮演游戏。通过使用该源码,开发者可以加速开发进程,同时还可以根据自身需求对游戏系统进行自定义和扩展。 ### 回答3: Unity2D RPG 手游源码是一套用于制作角色扮演类手游代码资源。Unity是一款流行的游戏开发引擎,2D表示游戏是以平面的方式进行展示,RPG是角色扮演游戏的缩写。 这套源码提供了一些基础的游戏功能,比如角色的移动、攻击、升级、装备等。通过使用这些源码,开发者可以快速搭建起一个简单的RPG手游框架,并在此基础上添加更多自定义的功能和内容。 源码通常包含了角色的属性和能力系统,游戏地图的编辑器,角色控制脚本,敌人AI脚本等。开发者可以在此基础上进行扩展和修改,以适应自己的游戏需求。 使用Unity2D RPG 手游源码可以大大节省游戏开发的时间和精力,因为它提供了一个已经实现了一些常见功能的蓝图。同时,它还可以作为学习游戏开发的工具,通过研究源码实现方式和逻辑,开发者能够更好地理解和掌握游戏开发的技术。 然而,使用源码也需要具备一定的编程知识和经验。开发者需要熟悉Unity引擎以及C#编程语言,才能使用源码进行修改和定制。 总之,Unity2D RPG 手游源码是一种快速开发角色扮演类手游的解决方案,它提供了基础功能和框架,可以帮助开发者节省时间和精力。但在使用之前需要具备一定的编程知识和经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值