国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

《火拼24》系列教程一(下):創(chuàng)建角色

0
分享至

在上一篇公眾號(hào)文章《》中,我們已通過(guò) Passport Login 實(shí)現(xiàn)了用戶登錄功能。本節(jié)教程將延續(xù)上一節(jié)的開(kāi)發(fā)脈絡(luò),基于已搭建的 Passport 服務(wù)器環(huán)境,繼續(xù)為你的游戲項(xiàng)目添加核心功能——從角色創(chuàng)建到角色管理的全流程實(shí)現(xiàn)。

從基礎(chǔ)功能搭建到角色體系擴(kuò)展,一步步為你的游戲角色「建立完整身份檔案」,讓角色系統(tǒng)真正「立起來(lái)」!

教程視頻

項(xiàng)目工程獲取與學(xué)習(xí)指引

1. 初始項(xiàng)目工程下載

  • 倉(cāng)庫(kù)地址:

https://cnb.cool/unity/uos/Rush24Tutorial/-/tree/lesson1-start

  • 分支名稱:lesson1-start 分支

  • 分支說(shuō)明:請(qǐng)先下載 lesson1-start 分支的項(xiàng)目工程,并確保您已經(jīng)按照《》中的步驟,成功實(shí)現(xiàn)了用戶登錄功能。然后,再接著學(xué)習(xí)本節(jié)教程的內(nèi)容。

2.完整示例工程參考
  • 倉(cāng)庫(kù)地址:

https://cnb.cool/unity/uos/Rush24Tutorial/-/tree/lesson1-end

  • 分支名稱:lesson1-end 分支

  • 分支說(shuō)明:lesson1-end 分支包含本節(jié)所有功能的完整實(shí)現(xiàn)代碼,建議在學(xué)習(xí)完成后參考或用于調(diào)試對(duì)照。

教程學(xué)習(xí)大綱

1.獲取 Passport 創(chuàng)建的域

2. 判斷域中是否已經(jīng)創(chuàng)建過(guò)角色

3. 域中如果無(wú)角色,則創(chuàng)建新角色

4. 域中如果已有角色,則直接獲取已創(chuàng)建過(guò)的角色

5. 在玩家信息界面上同步更新顯示角色的昵稱

教程操作步驟

接下來(lái)我們來(lái)看看,如何創(chuàng)建并管理你的角色!

1. 獲取 Passport 創(chuàng)建的域

登錄完成后,可以創(chuàng)建一個(gè)角色進(jìn)入游戲,需要先判斷指定的域下是否創(chuàng)建了角色。

域的概念:

域:對(duì)應(yīng)游戲中區(qū)服的概念,可以根據(jù)開(kāi)發(fā)者的需求來(lái)實(shí)現(xiàn)滾服或者合服。我們的游戲設(shè)計(jì)并不是強(qiáng)養(yǎng)成類型,不需要滾服,所以只需要?jiǎng)?chuàng)建一個(gè)默認(rèn)的域(Realm)就可以滿足需求。

在 Identity.cs 腳本中添加代碼

  • 定義變量 _defaultRealmID 用于緩存用戶所屬的默認(rèn)服務(wù)器的域 ID。

  • 定義變量 CurrentPersona 表示用戶的身份信息,如用戶名、頭像等,用于全局訪問(wèn)當(dāng)前登錄用戶的身份數(shù)據(jù)。

  • 添加方法 GetRealmID:在方法中,會(huì)先調(diào)用 PassportSDK 提供的 GetRealms 方法獲取已經(jīng)創(chuàng)建的域的列表,然后從域列表中根據(jù)需要選擇一個(gè)域,在這里我們暫時(shí)先使用域列表的第一個(gè)域。大家也可以根據(jù)自己的需求,選擇你想要使用的某一個(gè)域。

using System.Linq;
using Passport;
using Unity.Passport.Runtime;
using System.Threading.Tasks;

namespace TwentyFour.Scripts.Features.Player
{
    public class Identity
    {
        private static string _defaultRealmID = "";
        public static Persona CurrentPersona;

        public static async Task

  GetRealmID()         {             if (!string.IsNullOrEmpty(_defaultRealmID)) return _defaultRealmID;             var realms = await PassportSDK.Identity.GetRealms();             if (realms.Any())             {                 _defaultRealmID =  realms[0].RealmID;             }             return _defaultRealmID;         }     } } 

我們可以進(jìn)入 UOS 網(wǎng)頁(yè)端 Passport 的「服務(wù)器」模塊,可以看到默認(rèn)已經(jīng)幫我們創(chuàng)建了一個(gè)域了。大家也可以點(diǎn)擊按鈕「創(chuàng)建新的域」來(lái)實(shí)現(xiàn)構(gòu)建一個(gè)域。

2. 判斷域中是否創(chuàng)建過(guò)角色

在用戶進(jìn)入主頁(yè)時(shí),需要驗(yàn)證用戶是否已創(chuàng)建角色。所以在 LoadGameData.cs 腳本中,先注釋掉 Start 中對(duì) Init 方法的調(diào)用,然后創(chuàng)建協(xié)程方法 CheckPersona來(lái)判斷這個(gè)功能。

  • 調(diào)用之前定義的 Identity 腳本類中的方法 GetRealmID,來(lái)異步獲取用戶所屬的默認(rèn)域 ID,等待異步任務(wù)完成后,若獲取到有效的域 ID,則將其存入 realmID 變量,供下一步使用;

  • 然后再調(diào)用 Passport SDK 的接口 GetPersonaByRealm,異步獲取指定域 ID 下用戶的角色信息,在使用 WaitUntil 確保獲取角色數(shù)據(jù)的任務(wù)完成后,輸出打印下獲取到的 Persona 是否為 null,用于調(diào)試。若為 null,說(shuō)明用戶在該域下未創(chuàng)建角色。


using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using TwentyFour.Scripts.Features.Save;
using TwentyFour.Scripts.Gameplay.GameMode.StageMode;
using Passport;
using Unity.Passport.Runtime;
using System.Threading.Tasks;
using System;
using TwentyFour.Scripts.Features.Player;
using Logger = TwentyFour.Scripts.Utilities.Logger;

namespace TwentyFour.Scripts.Gameplay.HomePage
{
    public class LoadGameData : MonoBehaviour
    {
        public GameObject createPersonaDialog;
        public Text progressTextTmp;

        void Start()
        {    
            StartCoroutine(CheckPersona());
        }

        IEnumerator CheckPersona()
        {
            string realmID = String.Empty;
            Task

 task = Identity.GetRealmID();             yield return new WaitUntil(()=>task.IsCompleted);             if (!string.IsNullOrEmpty(task.Result))                 realmID = task.Result;             Task getPersonaTask = PassportSDK.Identity.GetPersonaByRealm(realmID);             yield return new WaitUntil(()=>getPersonaTask.IsCompleted);             Logger.Log("getPersonaTask.Result == null :" + (getPersonaTask.Result == null));         }         //......     } } 

運(yùn)行項(xiàng)目后,可以在控制臺(tái)看到輸出的日志信息:Result 為 null,說(shuō)明并沒(méi)有創(chuàng)建過(guò)角色。

3. 域中無(wú)角色,則創(chuàng)建新角色

3.1 激活創(chuàng)建角色的彈窗

如果 getPersonaTask.Result 為空,說(shuō)明域中沒(méi)有角色,我們需要先激活創(chuàng)建角色的彈窗。

在 LoadGameData.cs 腳本的 CheckPersona 方法中,則先激活創(chuàng)建角色的彈框?qū)ο?createPersonaDialog 。

public class LoadGameData : MonoBehaviour
{
    public GameObject createPersonaDialog;
    public Text progressTextTmp;

    //......

    IEnumerator CheckPersona()
    {
        string realmID = String.Empty;
        Task

 task = Identity.GetRealmID();         yield return new WaitUntil(()=>task.IsCompleted);         if (!string.IsNullOrEmpty(task.Result))             realmID = task.Result;         Task getPersonaTask = PassportSDK.Identity.GetPersonaByRealm(realmID);         yield return new WaitUntil(()=>getPersonaTask.IsCompleted);         Logger.Log("getPersonaTask.Result == null :" + (getPersonaTask.Result == null));         if (getPersonaTask.Result == null)         {             Logger.Log("當(dāng)前域無(wú)角色,請(qǐng)創(chuàng)建新角色");             createPersonaDialog.SetActive(true);         }     } } 

在 Hierarchy 窗口中,找到 LoadGameData 對(duì)象,為其身上的腳本 LoadGameData.cs 中的變量 createPersonaDialog 賦值:

然后運(yùn)行測(cè)試,在 Game 窗口中看到了 UI 的彈窗。

接著,我們要開(kāi)始創(chuàng)建角色了。

3.2 定義委托表示角色創(chuàng)建完成的回調(diào)

在 LoginController.cs 腳本中定義一個(gè)委托,來(lái)實(shí)現(xiàn)當(dāng)角色創(chuàng)建完成后,返回創(chuàng)建的角色的時(shí)候使用。

public class LoginController : MonoBehaviour
{
    //......

    public delegate void CreatePersonaCompleteCallback(Persona persona);
}

3.3 添加創(chuàng)建角色的腳本

在 Login 腳本文件夾下,再創(chuàng)建一個(gè)新的腳本 CreatePersona.cs,來(lái)實(shí)現(xiàn)創(chuàng)建角色的功能。

CreatePersona.cs 腳本代碼邏輯如下:

  • 定義變量 personaNameText,指向 UI 中用戶輸入角色名稱的輸入框組件;

  • 同時(shí)獲取下 LoginController.cs 腳本中的委托變量,用于觸發(fā)角色創(chuàng)建成功時(shí)的回調(diào);

  • 在 Create 方法中,先獲取到已經(jīng)創(chuàng)建好的域,存儲(chǔ)在 realmID 變量中。然后調(diào)用 PassportSDK 提供的 CreatePersona 方法,在指定的域 realmID 中來(lái)創(chuàng)建一個(gè)角色,并賦值給 persona 變量;

  • 角色創(chuàng)建成功后,將創(chuàng)建的角色 persona 通過(guò)委托返回;

  • 同時(shí)會(huì)使用 try...catch... 捕獲 Passport 遇到的異常,并在 UI 界面上顯示出錯(cuò)誤信息。


using Passport;
using Unity.Passport.Runtime;
using Unity.UOS.TwentyFour;
using UnityEngine.UI;
using UnityEngine;
using Unity.Passport.Runtime.UI;

namespace TwentyFour.Scripts.Features.Player
{
    public class CreatePersona : MonoBehaviour
    {
        public InputField personaNameText;
        public LoginController.CreatePersonaCompleteCallback OnCreatePersonaComplete;
        /// 

        /// 創(chuàng)建 Persona
        /// 
        public async void Create()
        {
            if (string.IsNullOrEmpty(personaNameText.text))
            {
                Debug.LogError("Empty Persona name");
            }
            try
            {
                var realmID = await Identity.GetRealmID();
                Persona persona =  await PassportSDK.Identity.CreatePersona(personaNameText.text, realmID);
                Debug.Log("成功創(chuàng)建角色");

                OnCreatePersonaComplete(persona);
            }
            catch (PassportException e)
            {
                Debug.Log(e.Code);
                UIMessage.Show(e.ErrorMessage, MessageType.Error);
            }
        }
    }
}

將 CreatePersona.cs 腳本拖拽給場(chǎng)景中的 CreatePersonaDialog 對(duì)象,并為面板上的 personaNameText 變量賦值:

找到創(chuàng)建角色的面板(CreatePersonaDialog)上的「確定」按鈕(Button_Ok):

給按鈕(Button_Ok)對(duì)象,綁定 CreatePersona.cs 腳本中的 Create 方法。

3.4 創(chuàng)建角色完成后加載游戲關(guān)卡

繼續(xù)在 LoadGameData.cs 腳本中添加代碼:

  • 創(chuàng)建角色框?qū)ο蠹せ铒@示以后,獲取到它身上的 CreatePersona.cs 腳本組件,并將之前定義的委托對(duì)象綁定到當(dāng)前腳本類中的 OnCreatePersonaComplete 方法;

  • 在回調(diào)方法 OnCreatePersonaComplete 中,將全局身份管理類 Identity.cs 的 CurrentPersona 屬性,設(shè)置為新創(chuàng)建的角色;

  • 同時(shí),在角色創(chuàng)建完成的回調(diào)方法中,還會(huì)調(diào)用新添加的協(xié)程方法 SelectPersonaAndInit。并在方法內(nèi)調(diào)用協(xié)程方法 Init() ,來(lái)加載關(guān)卡的數(shù)據(jù)進(jìn)行闖關(guān)。


public class LoadGameData : MonoBehaviour
{
    //......

    IEnumerator CheckPersona()
    {
        //......        
        if (getPersonaTask.Result == null)
        {
            Logger.Log("當(dāng)前域無(wú)角色,請(qǐng)創(chuàng)建新角色");
            createPersonaDialog.SetActive(true);
            var createPersonaController = createPersonaDialog.GetComponent ();
            createPersonaController.OnCreatePersonaComplete = OnCreatePersonaComplete;
        }
    }

    void OnCreatePersonaComplete(Persona p)
    {
        Identity.CurrentPersona = p;
        Logger.LogInfo($"創(chuàng)建角色成功,角色I(xiàn)D:{Identity.CurrentPersona.PersonaID}");
        StartCoroutine(SelectPersonaAndInit());
    }

    IEnumerator SelectPersonaAndInit()
    {
        yield return StartCoroutine(Init());
    }

    //......
}

3.5 運(yùn)行游戲進(jìn)行測(cè)試,開(kāi)啟敏感詞檢測(cè)

在 Game 窗口創(chuàng)建角色的彈窗中,輸入角色的昵稱。

開(kāi)通敏感詞檢測(cè)功能:

  • 在 Passport 的「用戶管理」頁(yè)面,可以開(kāi)啟角色對(duì)用戶名/角色名的敏感詞檢測(cè)。

開(kāi)啟敏感詞檢測(cè)后,在輸入了敏感詞信息時(shí),會(huì)在 Game 窗口和 Console 窗口看到提示的“無(wú)效的名字” 的錯(cuò)誤,表明所輸入的名稱并未通過(guò)敏感詞檢測(cè),可以重新輸入一個(gè)昵稱。

重新輸入昵稱點(diǎn)擊「確定」后,就可以進(jìn)入游戲主頁(yè)面,選擇闖關(guān)了。

在 Passport 的「角色管理」頁(yè)面,可以看到創(chuàng)建過(guò)的名稱為 Player1 的角色。

4. 域中已有角色,則直接獲取已創(chuàng)建的角色

在 LoadGameData.cs 腳本中繼續(xù)添加判斷:

  • 如果用戶已經(jīng)創(chuàng)建過(guò)角色,則通過(guò) getPersonaTask.Result 直接獲取創(chuàng)建好的角色;

  • 然后調(diào)用協(xié)程方法 SelectPersonaAndInit,直接來(lái)跳轉(zhuǎn)到游戲闖關(guān)頁(yè)面。


public class LoadGameData : MonoBehaviour
{
    //......

    IEnumerator CheckPersona()
    {       
        if (getPersonaTask.Result == null)
        {
            Logger.Log("當(dāng)前域無(wú)角色,請(qǐng)創(chuàng)建新角色");
            //......
        }
        else
        {
            Identity.CurrentPersona = getPersonaTask.Result;
            yield return StartCoroutine(SelectPersonaAndInit());
            Logger.Log($"當(dāng)前角色為:{Identity.CurrentPersona.DisplayName}");
        }
    }
}

大家可以自行再次運(yùn)行測(cè)試下,已經(jīng)有角色后,是不會(huì)再?gòu)棾鰟?chuàng)建角色的輸入框的。

5. 在玩家信息界面上同步更新顯示角色的昵稱

在下圖所示的路徑下,創(chuàng)建一個(gè)新的文件夾 PlayerInfo,并在該文件夾下創(chuàng)建一個(gè)新的腳本 PlayerInfoPanel.cs,來(lái)實(shí)現(xiàn)將用戶創(chuàng)建的角色昵稱同步顯示在玩家的信息面板上。

腳本中 PlayerInfoPanel.cs 代碼如下:

  • 定義變量 playerName,用來(lái)更新顯示昵稱;

  • 新添加一個(gè)方法 GetPlayerInfo,將 Identity.cs 腳本中之前存儲(chǔ)的角色( CurrentPersona) 的昵稱顯示在 UI 文本框上;

  • 同時(shí),會(huì)在 PlayerInfoPanel 面板打開(kāi)時(shí)自動(dòng)調(diào)用的 OnEnable 方法中,調(diào)用 GetPlayerInfo 方法,來(lái)更新 UI 的顯示。


using System;
using UnityEngine;
using UnityEngine.UI;

namespace TwentyFour.Scripts.Features.Player
{
    public class PlayerInfoPanel : MonoBehaviour
    {
        public Text playerName;

        private void OnEnable()
        {
            GetPlayerInfo();
        }

        private void GetPlayerInfo()
        {
            playerName.text = Identity.CurrentPersona?.DisplayName;
        }
    }
}

找到 MainScene 場(chǎng)景中的 PlayerInfoPanel 對(duì)象,將腳本 PlayerInfoPanel.cs 拖拽到它身上,并為 Inspector 面板上的 playerName 變量賦值:

運(yùn)行項(xiàng)目后,可以看到如下所示的效果,已經(jīng)可以更新顯示用戶昵稱了。

管理創(chuàng)建過(guò)的角色

  • 刪除角色

在 Passport 的「角色管理」頁(yè)面,可以看到所有已創(chuàng)建過(guò)的角色信息,以及該角色所屬的用戶 ID。如果想刪除某個(gè)角色的話,可以點(diǎn)擊角色信息最右側(cè)的「刪除角色」的按鈕。

大家在彈窗中,一定要仔細(xì)閱讀提示信息后,再點(diǎn)擊「確認(rèn)刪除」按鈕哦!剛才選中的角色就被成功刪除了。

  • 刪除用戶

接下來(lái),大家先看下我選中的這條角色信息,可以看到 1000001004 角色是屬于 1000001002 用戶的。

在 Passport 的「用戶管理」頁(yè)面,可以看到登錄過(guò)的所有用戶。我們點(diǎn)擊「用戶管理」頁(yè)面上的 1000001002 用戶最右側(cè)的「刪除用戶」按鈕:

會(huì)有彈窗再次提醒大家,是否真的要?jiǎng)h除該用戶的。因?yàn)閯h除用戶時(shí),也會(huì)把該用戶剛才創(chuàng)建的角色一起刪除的。如果你確定要?jiǎng)h除,就點(diǎn)擊「確認(rèn)刪除」的按鈕。

當(dāng)我們成功刪除了指定用戶 1000001002 后,在「用戶管理」頁(yè)面已經(jīng)沒(méi)有該用戶了,而且在「角色管理」頁(yè)面可以看到該用戶下的角色也已經(jīng)一起被刪除了。

下節(jié)教程預(yù)告


教程主題——《火拼24》系列教程二:動(dòng)態(tài)調(diào)控游戲關(guān)卡難度

《火拼24》下一篇教程,將聚焦使用 Remote Config 動(dòng)態(tài)調(diào)控游戲關(guān)卡難度的實(shí)戰(zhàn)技巧,教你如何通過(guò)遠(yuǎn)程配置靈活調(diào)整游戲關(guān)卡難度參數(shù),無(wú)需發(fā)布新版本即可優(yōu)化玩家體驗(yàn)!

小貼士:為方便大家提前學(xué)習(xí),教程二的分支代碼已同步更新,可提前下載查閱或本地調(diào)試。

  • 教程二:初始項(xiàng)目工程(供學(xué)習(xí)參考)

https://cnb.cool/unity/uos/Rush24Tutorial/-/tree/lesson2-start

  • 教程二:完整示例工程參考(可直接運(yùn)行)

https://cnb.cool/unity/uos/Rush24Tutorial/-/tree/lesson2-end

Unity Online Services (UOS) 是一個(gè)專為游戲開(kāi)發(fā)者設(shè)計(jì)的一站式游戲云服務(wù)平臺(tái),提供覆蓋游戲全生命周期的開(kāi)發(fā)、運(yùn)營(yíng)和推廣支持。

了解更多 UOS 相關(guān)信息:

官網(wǎng):https://uos.unity.cn

技術(shù)交流 QQ 群:823878269

Unity 官方微信

第一時(shí)間了解Unity引擎動(dòng)向,學(xué)習(xí)進(jìn)階開(kāi)發(fā)技能

每一個(gè)“點(diǎn)贊”、“在看”,都是我們前進(jìn)的動(dòng)力

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
70歲老太總覺(jué)得肚里有東西爬,兒子帶她檢查,診斷單讓醫(yī)生傻眼了

70歲老太總覺(jué)得肚里有東西爬,兒子帶她檢查,診斷單讓醫(yī)生傻眼了

徐俠客有話說(shuō)
2025-07-11 10:59:24
全球最小的發(fā)達(dá)國(guó)家,快被中國(guó)人“買”下了,中國(guó)移民占比87%!

全球最小的發(fā)達(dá)國(guó)家,快被中國(guó)人“買”下了,中國(guó)移民占比87%!

財(cái)叔
2025-12-28 22:59:30
香港下雪?網(wǎng)傳歐洲模型料“超級(jí)寒潮”月中襲港,最低跌至1°C,香港天文臺(tái)回應(yīng)

香港下雪?網(wǎng)傳歐洲模型料“超級(jí)寒潮”月中襲港,最低跌至1°C,香港天文臺(tái)回應(yīng)

星島記事
2026-01-07 22:16:11
臨近過(guò)年 問(wèn)界M7遭到大量投訴 銷量增多眾多問(wèn)題顯現(xiàn)

臨近過(guò)年 問(wèn)界M7遭到大量投訴 銷量增多眾多問(wèn)題顯現(xiàn)

中車網(wǎng)評(píng)
2026-01-05 19:23:51
洛杉磯迪士尼排隊(duì)沖突!守規(guī)則的游客遭暴打,只因一句“別插隊(duì)”

洛杉磯迪士尼排隊(duì)沖突!守規(guī)則的游客遭暴打,只因一句“別插隊(duì)”

北美省錢快報(bào)
2026-01-07 08:28:23
離譜!1個(gè)月前剛上演首秀 荷甲18歲小將宣布退役:我不想要這人生

離譜!1個(gè)月前剛上演首秀 荷甲18歲小將宣布退役:我不想要這人生

風(fēng)過(guò)鄉(xiāng)
2026-01-07 06:44:37
社會(huì)主義中國(guó)不能允許如此大規(guī)模當(dāng)?shù)?>
    </a>
        <h3>
      <a href=凱利經(jīng)濟(jì)觀察
2025-12-18 09:35:23
中國(guó)白忙活了?柬埔寨撕毀停火協(xié)議,洪森果然要“打到底”?

中國(guó)白忙活了?柬埔寨撕毀?;饏f(xié)議,洪森果然要“打到底”?

無(wú)情有思ss
2026-01-07 04:15:42
《紅白》驚見(jiàn)不雅畫面!女歌手肉色戰(zhàn)袍「像沒(méi)穿」正面開(kāi)腿…挨轟低俗

《紅白》驚見(jiàn)不雅畫面!女歌手肉色戰(zhàn)袍「像沒(méi)穿」正面開(kāi)腿…挨轟低俗

ETtoday星光云
2026-01-05 09:50:07
陽(yáng)壽即將耗盡的人,吃飯往往會(huì)有這3個(gè)特點(diǎn),其家屬要注意

陽(yáng)壽即將耗盡的人,吃飯往往會(huì)有這3個(gè)特點(diǎn),其家屬要注意

古怪奇談錄
2026-01-07 16:51:49
我國(guó)存款最安全的3大銀行,永遠(yuǎn)都不會(huì)倒閉,你知道是哪3家嗎?

我國(guó)存款最安全的3大銀行,永遠(yuǎn)都不會(huì)倒閉,你知道是哪3家嗎?

小熊侃史
2026-01-07 11:17:59
元旦結(jié)束后,社會(huì)卻出現(xiàn)4大“反常”現(xiàn)象,百姓的風(fēng)向徹底變了!

元旦結(jié)束后,社會(huì)卻出現(xiàn)4大“反?!爆F(xiàn)象,百姓的風(fēng)向徹底變了!

阿纂看事
2026-01-07 23:48:14
電力行業(yè)的朋友回來(lái),說(shuō)現(xiàn)在去國(guó)外搞工程,和以前完全不一樣了。

電力行業(yè)的朋友回來(lái),說(shuō)現(xiàn)在去國(guó)外搞工程,和以前完全不一樣了。

百態(tài)人間
2026-01-07 16:39:30
半場(chǎng)-巴薩暫4-0畢巴 費(fèi)爾明2傳1射拉菲尼亞、巴德吉傳射西蒙送禮

半場(chǎng)-巴薩暫4-0畢巴 費(fèi)爾明2傳1射拉菲尼亞、巴德吉傳射西蒙送禮

硯底沉香
2026-01-08 03:58:17
阿莫林下課前的瘋狂吐槽!點(diǎn)名三大名帥,竟戳破曼聯(lián)高層的秘密

阿莫林下課前的瘋狂吐槽!點(diǎn)名三大名帥,竟戳破曼聯(lián)高層的秘密

瀾歸序
2026-01-08 03:54:20
王岳倫送女返校!16歲王詩(shī)齡眼前一亮,終于不再穿的像個(gè)40歲婦女

王岳倫送女返校!16歲王詩(shī)齡眼前一亮,終于不再穿的像個(gè)40歲婦女

小娛樂(lè)悠悠
2026-01-07 13:31:24
上海華人大會(huì)竟用英文主持!獲獎(jiǎng)?wù)吲e動(dòng)不約而同,網(wǎng)友吵翻了

上海華人大會(huì)竟用英文主持!獲獎(jiǎng)?wù)吲e動(dòng)不約而同,網(wǎng)友吵翻了

Thurman在昆明
2026-01-06 12:41:37
解密抓捕馬杜羅驚心動(dòng)魄全過(guò)程,美國(guó)下個(gè)目標(biāo)是格陵蘭島?

解密抓捕馬杜羅驚心動(dòng)魄全過(guò)程,美國(guó)下個(gè)目標(biāo)是格陵蘭島?

碼頭青年
2026-01-05 17:37:12
陳志遣返!全球“殺豬盤”教父落網(wǎng)

陳志遣返!全球“殺豬盤”教父落網(wǎng)

不正確
2026-01-08 00:18:24
冰凍、大風(fēng)!江蘇氣溫即將大反轉(zhuǎn)!

冰凍、大風(fēng)!江蘇氣溫即將大反轉(zhuǎn)!

江南晚報(bào)
2026-01-08 03:36:26
2026-01-08 05:03:00
Unity incentive-icons
Unity
Unity中國(guó)官方帳戶
2415文章數(shù) 6729關(guān)注度
往期回顧 全部

科技要聞

精華!黃仁勛CES記者會(huì):揭秘新款大殺器

頭條要聞

美軍扣押俄潛艇護(hù)航的油輪 俄羅斯外交部回應(yīng)

頭條要聞

美軍扣押俄潛艇護(hù)航的油輪 俄羅斯外交部回應(yīng)

體育要聞

賣水果、搬磚的小伙,與哈蘭德?tīng)?zhēng)英超金靴

娛樂(lè)要聞

《馬背搖籃》首播,革命的樂(lè)觀主義故事

財(cái)經(jīng)要聞

農(nóng)大教授科普:無(wú)需過(guò)度擔(dān)憂蔬菜農(nóng)殘

汽車要聞

燃油駕趣+智能電感雙Buff 試駕全新奧迪Q5L

態(tài)度原創(chuàng)

健康
房產(chǎn)
旅游
公開(kāi)課
軍事航空

這些新療法,讓化療不再那么痛苦

房產(chǎn)要聞

最新!海口二手房,漲價(jià)房源突然猛增30%

旅游要聞

嗨到凌晨3點(diǎn)!仙游一網(wǎng)紅夜市即將啟用!0成本即可當(dāng)老板...

公開(kāi)課

李玫瑾:為什么性格比能力更重要?

軍事要聞

特朗普政府正在討論獲取格陵蘭島的方案 包括軍事選項(xiàng)

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版