返回顶部
首页 > 资讯 > 精选 >unity如何实现动态排行榜
  • 379
分享到

unity如何实现动态排行榜

2023-06-20 17:06:52 379人浏览 八月长安
摘要

这篇文章给大家分享的是有关Unity如何实现动态排行榜的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在做2048游戏的时候要实现排行榜的功能:超出显示范围可以通过滑动滚动条来上下查看2.动态插入行3.每次插入自动

这篇文章给大家分享的是有关Unity如何实现动态排行榜的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在做2048游戏的时候要实现排行榜的功能:

超出显示范围可以通过滑动滚动条来上下查看
2.动态插入行
3.每次插入自动更新排名信息

其实和滑页效果类似,只不过需要再加入排序的元素。

1.超出显示范围可以通过滑动滚动条来上下查看

滑页效果(也就是超出显示范围如何显示)见Unity实现滑动更换界面的效果
排行榜的rank、Viewport、content同滑页中的组件配置。

unity如何实现动态排行榜

排行榜是由排名、名字、分数组成的。

unity如何实现动态排行榜

滚动条的滑动是每一行每一行形式的,所以给容器Content加水平布局组件和容器大小的自适应。
参数都是一点点试出来的,没别的办法==

unity如何实现动态排行榜

2.动态插入行

动态插入当然要用预制件了:也就是上图中的line
关于line,每一行显然是竖直的布局(排名、名字、分数),所以加竖直布局组件,line是image,其下有三个Text(排名、名字、分数):
参数都是一点点试出来的,没别的办法==

unity如何实现动态排行榜

接下来就要用代码插入了,插入的调用在3中(因为游戏中的需求是输入名称点登陆后再在排行榜中插入),并且更新排行榜(更新的代码在3中,其实就是找到当前分数在排行榜中的位置,然后插入,在遍历其后元素让他们的排名都比前一位+1,最后只需要更新排名、名字、分数即可,并不用destroy)

 /// <summary>    /// 生成UI元素    /// </summary>    public void CreateNewLine(Playernode tmp)    {        //法1:通过GameObject        //法2:通过预制件        GameObject l = Instantiate(line);        l.transfORM.SetParent(transform);        l.transform.GetChild(0).GetComponent<Text>().text = tmp.Rank.ToString();        l.transform.GetChild(1).GetComponent<Text>().text = tmp.Name;        l.transform.GetChild(2).GetComponent<Text>().text = tmp.Score.ToString();    }    public void updateRank(List<PlayerNode> players)    {        for(int i = 0; i < transform.childCount; i++)        {            //Destroy(transform.GetChild(i).gameObject);            Transform l = transform.GetChild(i);            l.GetChild(0).GetComponent<Text>().text = players[i].Rank.ToString();            l.GetChild(1).GetComponent<Text>().text = players[i].Name;            l.GetChild(2).GetComponent<Text>().text = players[i].Score.ToString();        }        //for(int i = 0; i < players.Count; i++)        //{        //    CreateNewLine(players[i]);        //}}

3.每次插入自动更新排名信息

public class PlayerNode    {        public string Name { get; set; }        public int Score { get; set; }        public int Rank { get; set; }        public PlayerNode(string name, int score, int rank) : this()        {            this.Name = name;            this.Score = score;            this.Rank = rank;        }        public PlayerNode()        {        }}

然后存在容器中,每次插入新行就更新所有行的排名:

public List<PlayerNode> players = new List<PlayerNode>();  /// <summary>    /// 当点击登录时    /// </summary>    public void Load()    {        if (inputField.text != null)        {            PlayerNode tmp = new PlayerNode(inputField.text, int.Parse(GC.NowScore.text), 1);            rc.CreateNewLine(tmp);            if (isFirst)//如果是第一次插入            {                players.Add(tmp);                isFirst = false;            }            else            {                int rankIndex = 0;                for (int i = 0; i < players.Count; i++)                {                    if (tmp.Score > players[i].Score)                    {                        rankIndex = i;                        tmp.Rank = i + 1;                        players.Insert(rankIndex, tmp);                        rankIndex = i + 1;                        break;                    }                }                if (rankIndex == 0)                {                    tmp.Rank = players.Count + 1;                    players.Insert(players.Count, tmp);                }                else                {                    for (int i = rankIndex; i < players.Count; i++)                    {                        players[i].Rank = players[i - 1].Rank + 1;                    }                }            }            rc.updateRank(players);        }        //if (players.Count > 2)        //{        //    for(int i = 0; i < players.Count; i++)        //    {        //        print(players[i].Rank + "-" + players[i].Name + "-" + players[i].Score);        //    }        //}        gameObject.SetActive(false);    }}

感谢各位的阅读!关于“unity如何实现动态排行榜”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: unity如何实现动态排行榜

本文链接: https://lsjlt.com/news/298803.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • unity如何实现动态排行榜
    这篇文章给大家分享的是有关unity如何实现动态排行榜的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在做2048游戏的时候要实现排行榜的功能:超出显示范围可以通过滑动滚动条来上下查看2.动态插入行3.每次插入自动...
    99+
    2023-06-20
  • unity实现动态排行榜
    本文实例为大家分享了unity实现动态排行榜的具体代码,供大家参考,具体内容如下 在做2048游戏的时候要实现排行榜的功能: 1.超出显示范围可以通过滑动滚动条来上下查看 2.动态插...
    99+
    2024-04-02
  • Unity排行榜优化滚动效果
    本文实例为大家分享了Unity排行榜优化滚动效果的具体代码,供大家参考,具体内容如下 自己做的一个优化排行榜的功能,当有大量的数据需要在scroolRect中可以通过只夹在几个ite...
    99+
    2024-04-02
  • redis如何实现排行榜
    这篇文章将为大家详细讲解有关redis如何实现排行榜,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1 前言实现一个排版榜,我们通常想到的就是mysql的order by ...
    99+
    2024-04-02
  • redis实现排行榜功能
    redis的zset可以很方便地用来实现排行榜功能,下面简单介绍python如何使用redis实现排行榜功能 加入排行榜 获取redis实例 import redis mai...
    99+
    2024-04-02
  • redis如何实现世界杯排行榜功能
    这篇文章主要介绍了redis如何实现世界杯排行榜功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。题外话:小编先给大家推荐一个不错的微信公众...
    99+
    2024-04-02
  • Redis如何实现微信步数排行榜功能
    小编这次要给大家分享的是Redis如何实现微信步数排行榜功能,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。1. 前言之前写过一篇博客,讲解的是Redis的5种数据结构...
    99+
    2024-04-02
  • 如何利用redis实现排行榜的小秘诀
    这篇文章给大家分享的是有关如何利用redis实现排行榜的小秘诀的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言排行榜作为互联网应用中几乎必不可少的一个元素,其能够勾起人类自身对...
    99+
    2024-04-02
  • WordPress 实现文章评论排行榜
    用到了WordPress功能函数Query_post()的一种高级用法,就是获取本周或当月或最近30天评论最多的一定数量的日志。 使用方法是将以下各段代码放置到需要显示最热日志的主题模板文件中适当的位置即可,如边栏(si...
    99+
    2022-06-12
    WordPress 评论 排行榜
  • mongodb怎么实现时间排行榜
    要实现时间排行榜,可以使用MongoDB的聚合管道和索引来完成。首先,你需要在文档中加入一个时间字段,例如`created_at`,...
    99+
    2023-09-01
    mongodb
  • java基于redis有序集合如何实现排行榜
    小编给大家分享一下java基于redis有序集合如何实现排行榜,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言排行榜作为互联网...
    99+
    2024-04-02
  • 使用Redis实现实时排行榜功能
    游戏中存在各种各样的排行榜,比如玩家的等级排名、分数排名等。玩家在排行榜中的名次是其实力的象征,位于榜单前列的玩家在虚拟世界中拥有无尚荣耀,所以名次也就成了核心玩家的追求目标。 一个...
    99+
    2024-04-02
  • Vue使用Echarts实现排行榜效果
    Vue使用 Echarts 做出排行榜的感觉,供大家参考,具体内容如下 其实这不算是一篇技术文的,就是单纯的echarts调样式就可以,但是有的地方设置还是不好设置的,所以说嘞,就保...
    99+
    2024-04-02
  • Redis如何实现排行榜及相同积分按时间排序功能
    这篇“Redis如何实现排行榜及相同积分按时间排序功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来...
    99+
    2024-04-02
  • 如何使用Redis的有序集合实现排行榜功能
    这篇文章给大家分享的是有关如何使用Redis的有序集合实现排行榜功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一个典型的游戏排行榜包括以下常见功能:能够记录每个玩家的分数;能...
    99+
    2024-04-02
  • 如何用Redis实现排行榜及相同积分按时间排序功能
    本篇内容主要讲解“如何用Redis实现排行榜及相同积分按时间排序功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用Redis实现排行榜及相同积分按时间排序...
    99+
    2024-04-02
  • 【Redis面试题】如何使用Redis实现微信步数排行榜?
    1. 前言 之前写过一篇博客,讲解的是Redis的5种数据结构及其常用命令,当时有读者评论,说希望了解下这5种数据结构各自的使用场景,不过一直也没来得及写。 碰巧,在3月份找工作面试时,有个面试官先问了我Redis有哪几种数据结构...
    99+
    2018-04-12
    【Redis面试题】如何使用Redis实现微信步数排行榜?
  • 使用Redis实现排行榜功能的方法
    这篇文章给大家分享的是有关使用Redis实现排行榜功能的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。下面由Redis教程栏目给大家介绍使用Redis实现排行榜功能的方法,希...
    99+
    2024-04-02
  • Redis笔记点赞排行榜的实现示例
    目录一、发布探店笔记二、实现查看笔记接口三、点赞功能四、点赞排行榜 1、修改点赞逻辑2、点赞排行榜功能一、发布探店笔记 探店笔记类似点评网站的评价,往往是图文结合。对应的表有两个 探店笔记表(主键、商户id、用...
    99+
    2023-01-29
    Redis笔记点赞 Redis点赞排行榜
  • 使用redis怎么实现一个排行榜功能
    使用redis怎么实现一个排行榜功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。加入排行榜获取redis实例import redismain_rds...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作