王者榮耀是怎樣煉成的(三)unity組件與腳本

2021-01-18 dotNET跨平臺

上回書王者榮耀是怎樣煉成的(二)《王者榮耀》unity安裝及使用的小白零基礎入門 說到了unity的基本操作。這回我們來侃侃unity中的組件與腳本。

一.組件與腳本簡介

1.組件

組件(Component),顧名思義,就是遊戲物體的組成部件。

這和我們對現實生活的認識是一致的。就比如說一臺主機,是有CPU,顯卡,主板,內存條等等組成的。這些部件就是主機的「組件」。這些組件一旦有不滿意的,隨時可以增刪改查。

Unity3D就是一個「組件式」的遊戲引擎,它使用各種各樣的的組件「拼裝」了遊戲物體,最終再把遊戲物體拼裝成遊戲。

上圖是一個Plane的自帶組件。

Unity3D為我們提供了許多種類的組件。後期其實就是各種組件的使用和特性,以及它們能實現的功能和效果。

按照我們老祖宗的理論,五行是組成世界的最基本元素。那麼在Unity3D中,組件就是組成遊戲世界的最基本元素。

我總結出了上面一幅圖,這幅圖相當重要,大家需要認真看看。因為這涉及到了遊戲物體與腳本中類和對象的聯繫。

 

2.Transform組件

在這裡提一個最最基本的組件之一——Transform組件。

Transform,中文為「變換」,這個組件有三大基本屬性,Position(世界位置坐標),Rotation(相對自身坐標系的旋轉角度),Scale(相對於初始的縮放比例)。

這個組件是每一個遊戲物體都有的屬性,並且不能刪除。其實想想也是,在現實生活中,只要是一個物體必定有方位、旋轉、縮放的屬性。

通過修改這三大屬性的X\Y\Z值,我們就可以控制物體的「變換」信息了。這裡有一個小技巧,當把滑鼠放到X\Y\Z上時,滑鼠變成了可以左右拖動的標誌,可以直接左右拖動改變值,當然直接修改值也是ok的。

3.腳本

腳本(Script),也就是給遊戲物體寫的代碼,用來控制遊戲的邏輯。在Unity3D 5.x版本後,只支持C#腳本和JavaScript腳本。在國內開發的主流的C#。

4.創建與管理腳本

我們說過,Assets文件夾是總管,所以我們在Assets中新建一個Scripts文件夾,用來管理腳本資源。

在Scripts文件夾中右鍵-->Create-->C# Script。C#腳本文件的後綴是「.cs」。雙擊腳本文件,可以調用代碼編輯器進行編輯。

5.原始腳本代碼組成

在上一步我們新建了一個腳本,這次打開它看看究竟是什麼東東。

ok,我們看到這次unity幫我們新建立了一個類,類名就是我們的腳本文件名。然後它繼承自MonoBehaviour類,這個類呢,在unity的地位和作用,類似於在java中的Object類,所以重要性不言而喻。有興趣的童鞋可以去看看這個類的實現。可以看一下這篇文章:http://blog.csdn.net/yuyueliuliu/article/details/43795333。還能看到,這個腳本using了UnityEngine的引擎。然後unity還幫我們寫了兩個方法Start()和Update()。

Start():當遊戲運行起來,這個方法就會馬上執行且只執行一次。由此看來,這個方法非常適合做初始化的工作。事實上也是這樣的,我們常常在這個方法中做一些GetComponent()的操作。

Update():循環調用,每一幀就調用一次。我大致測了一下,一般的場景大概是每秒60次的樣子。

這裡還要介紹一個方法:Debug.Log()。這個用來輸出調試。如果你的目標是「helloworld」,ok,這個方法正好就是這樣。

順便提一句,Start()和Update()都是unity內部的「事件方法」,不需要我們人工調用,系統會自動調用和管理這些方法的。

6.使用腳本

直接將腳本拖拽到Hiearchy面板的物體上

直接將腳本拖拽到物體的Inspector面板上

 運行遊戲,腳本自動執行。

這是一個first.cs腳本:


using UnityEngine;
using System.Collections;

public class first : MonoBehaviour {  

 void Start () {        Debug.Log("這是Start方法");    }        void Update () {        Debug.Log("這是Update方法");    }}

 

把它添加到燈光上,運行遊戲,控制臺效果:

 

 

 

二.滑鼠與鍵盤輸入

上面我們已經知道了C#腳本的大致套路。說到寫代碼就是各位童鞋的長處了。這次我們實現一下讓遊戲讀出我們的輸入。

unity很友好地為我們都寫好了方法,我們只需要調用這些接口就ok了。

1.獲取鍵盤輸入

 

案例如下:

1 using UnityEngine;
2 using System.Collections;
3
4 public class InputTest : MonoBehaviour {
5
6 void Update () {
7 if (Input.GetKey(KeyCode.A))
8        {
9 Debug.Log("按下了A鍵");
10        }
11 if (Input.GetKeyDown(KeyCode.A))
12        {
13 Debug.Log("GetKeyDown");
14        }
15 if (Input.GetKeyUp(KeyCode.A))
16        {
17 Debug.Log("GetKeyUp");
18        }
19    }
20 }

 2.獲取滑鼠輸入

直接上方法。

 

用法和監聽鍵盤輸入類似,在這裡就不再寫代碼舉例了(笑~)。

 

三.使用變換組件移動遊戲物體

上面提到了滑鼠鍵盤監聽控制,也提到了Transform組件,我們利用腳本,可以把兩者組合起來,實現通過鍵盤讓遊戲物體動起來!

 

備註:腳本也可以看成組件,一般是要控制哪個遊戲物體就把腳本掛載到哪個物體上。

下面就是一個例子:

1 using UnityEngine;
2 using System.Collections;
3
4 public class StudentMove : MonoBehaviour
5 {
6 private Transform trans;
7
8 // Use this for initialization
9 void Start()
10    {
11 trans = gameObject.GetComponent<Transform>();
12    }
13
14 // Update is called once per fram
15 void Update()
16    {
17 if (Input.GetKey(KeyCode.W))
18        {
19 trans.Translate(Vector3.forward * 0.1f, Space.World);
20        }
21 if (Input.GetKey(KeyCode.A))
22        {
23 trans.Translate(Vector3.left * 0.1f, Space.World);
24        }
25 if (Input.GetKey(KeyCode.S))
26        {
27 trans.Translate(Vector3.back * 0.1f, Space.World);
28        }
29 if (Input.GetKey(KeyCode.D))
30        {
31 trans.Translate(Vector3.right * 0.1f, Space.World);
32        }
33    }
34 }

 

把這個腳本,拖到遊戲物體的Inspector面板上,然後點擊遊戲的「運行」按鈕,可以發現我們已經可以通過鍵盤的W\A\S\D鍵控制物體的前左後右的移動了!amazing!

 

 

 

 

四.物理組件之剛體

在上面我們通過Transform組件實現了物體位置的移動,但是仔細研究一下發現了以下幾個特點:

 這樣看起來物體動是動了,但是不太真實,和我們現實生活中有很大差別。

大家應該都聽過或者玩過《憤怒的小鳥》,小鳥的拋物線運動,石頭的坍塌,都是符合物理規律的。

我們說過,組件是構成遊戲物體的基礎。所以,我們需要其他組件來使物體符合物理規律。

1.剛體

 剛體(Rigidbody),屬於物理類組件。添加了剛體組件的遊戲物體,就有了重力,就會做自由落體運動,也就實現了現實物體的物理運動。

選擇遊戲物體-->菜單欄點擊Componment-->Physics-->Rigidbody,給物體添加剛體組件成功!

2.常用屬性

看著上圖,我們了解一下它的幾個常用屬性。

Mass[質量],可以設置物體的質量,你可以認為單位是KG。

Drag[阻力],一般是指空氣阻力,0表示沒有空氣阻力,空氣阻力越大,物體自由落體越慢。當值很大時,物體甚至會停止運動,漂浮在空中。

Angular Drag[角阻力],收到扭曲力時候的空氣阻力,0表示沒有阻力,當值很大時,物體甚至會停止運動。

Use Gravity[使用重力]。當勾選之後,如果物體掉入場景之外,會落入「深淵」。

 

3.在腳本中使用剛體組件移動遊戲物體

直接上腳本:

1 using UnityEngine;
2 using System.Collections;
3
4 public class RigidbodyMove : MonoBehaviour
5 {
6 private Transform trans;
7 private Rigidbody rigid;
8
9 // Use this for initialization
10 void Start()
11    {
12 trans = gameObject.GetComponent<Transform>();
13 rigid = gameObject.GetComponent<Rigidbody>();
14    }
15
16 // Update is called once per frame
17 void Update()
18    {
19 if (Input.GetKey(KeyCode.W))
20        {
21 rigid.MovePosition(trans.position + Vector3.forward * 0.1f);
22        }
23 if (Input.GetKey(KeyCode.A))
24        {
25 rigid.MovePosition(trans.position + Vector3.left * 0.1f);
26        }
27 if (Input.GetKey(KeyCode.S))
28        {   
29 rigid.MovePosition(trans.position + Vector3.back * 0.1f);
30        }
31 if (Input.GetKey(KeyCode.D))
32        {
33 rigid.MovePosition(trans.position + Vector3.right * 0.1f);
34        }
35    }
36 }

 代碼很簡略,但是卻實現了像現實物體一樣的物理運動,很神奇。

 

 

五.物理組件之碰撞體

 1.碰撞體

上面使用剛體組件的物體,在場景中其他物體可以產生碰撞的效果。其實碰撞目標物體的,是專門有一個組件來負責的,就是碰撞體組件(Collider)。

換個說法,我們控制的物體A與物體B的碰撞,實質上是物體A與物體B的碰撞體組件發生了作用關係。 

碰撞體可以理解成我們模型的「外骨骼」。

這是一個什麼也沒有動的原來的Cube。

 把物體的渲染器(上面的Renderer的勾選去掉)屏蔽,可以發現物體的碰撞體長得什麼樣子:

顯示的就是Cube外層的碰撞體組件。

只要我們創建了物體,unity就默認為我們加上了碰撞體組件,沒有碰撞體的剛體是沒有意義的,就失去了剛體本該有的物理特性。

換句話說,物理特性是剛體組件和碰撞體組件一起表現出來的。

其實這一對「好基友」有很多很多的故事,大致總結了一下。

 

碰撞體組件按照它們的形狀,大致可以分為以下幾類。

2.Box Collider

盒子碰撞體,形狀是立方體,用來包裹盒子狀的模型,比如箱子、門、房子,等等。有幾個常用屬性:

Is Trigger:設置是否為觸發器。這個屬性非常重要,在後面講觸發器會經常使用。

Material:物理材質。

Center:碰撞體也可以設置中心點。一般來說碰撞體中心點就是物體的幾何中心點。

Size:設置物體的「外骨骼」的尺寸。

 3.Sphere Collider

球形碰撞體,和上面的盒子碰撞體基本類似,Radius是半徑。

4.Capsule Collider

膠囊碰撞體,屬性和球形碰撞體類似,Direction是指設置它的高度的方向。

5.Mesh Collider

網格碰撞體,用來包裹複雜結構的模型

Mesh:根據指定的網格,生成碰撞體。

 

 

六.剛體常用方法介紹

有了組件,必然有新帶來的方法。

1.AddForce()

作用:給剛體一個力,使剛體按照「世界坐標系」進行運動。

其中的ForceMode是力的模式,是一個枚舉類型,決定以什麼樣的方式添加力給剛體。

1 using UnityEngine;
2 using System.Collections;
3
4 public class ForceTest : MonoBehaviour
5 {
6 private Rigidbody rigid;
7 void Start()
8 { //獲取物體的剛體組件
9 rigid = gameObject.GetComponent<Rigidbody>();
10    }
11 void Update()
12 { //給剛體施加一個相對世界坐標系向前的力
13        rigid.AddForce(Vector3.forward, ForceMode.Force);
14    }
15 }

2.AddRelativeForce()

作用:給剛體添加一個力,讓剛體按照「自身坐標系」進行運動。

由此可以知道,AddForce()和AddRelativeForce()是非常像的,這倆其實就是雙胞胎,只不過一個是相對世界坐標系,另一個是相對自身坐標系罷了。

3.FixedUpdate()

這個是固定的更新方法。這個方法值得說道說道。一查網上資料還真不少,那就不獻醜了~

Update()方法是每一幀刷新一次,但是時間間隔是不確定的。而FixedUpdate()方法是固定時間間隔(默認0.02秒)刷新一次。

這個值是可以自己設定的。Edit-->Project Settings-->Time-->Fixed Timestep。

基本上和物理相關的操作,代碼都是寫在FixedUpdate()方法裡面。如果你寫在了Update()裡,會出現卡頓的現象。

 

 

七.剛體碰撞事件監測與處理

1.碰撞事件簡介

啥叫「碰撞事件」呢?當一個用剛體控制的物體與另外一個物體碰撞時,就會觸發碰撞事件。

註:目標物體必須帶有Collider組件。

碰撞 Collision

比如,一個射擊類遊戲,我們發射了子彈,子彈是一個由剛體控制運動的物體。子彈射中了敵人,我們怎麼監測這個碰撞呢?

2.碰撞事件監測方法

OnCollisionEnter(Collision)   //當碰撞開始時調用,只會調用該方法一次

OnCollisionExit(Collision)     //當碰撞結束時調用,只會調用該方法一次

OnCollisionStay(Collision)     //當碰撞進行中時,會持續調用該方法

這個Collision參數是什麼呢?

這個是「碰撞」的一個類,用來傳遞碰撞信息。

Collision.gameObject屬性,與當前物體碰撞的物體的引用。

gameObject.name屬性,當前物體的名字。

上代碼示例:

1 using UnityEngine;
2 using System.Collections;
3
4 public class CollisionCube : MonoBehaviour {
5
6 void OnCollisionEnter(Collision coll)
7    {
8 if(coll.gameObject.name != "Ground")
9 Debug.Log ("Enter " + coll.gameObject.name);
10    }
11
12 void OnCollisionExit(Collision coll)
13    {
14 if(coll.gameObject.name != "Ground")
15 Debug.Log ("Exit " + coll.gameObject.name);        16 }    
17
18 void OnCollisionStay(Collision coll)
19    {
20 if(coll.gameObject.name != "Ground")
21 Debug.Log ("Stay " + coll.gameObject.name);                22    }
23
24 }

八.剛體觸發事件監測與處理

1.觸發事件簡介

將碰撞體組件上的Is Trigger選項選中,當前的遊戲物體的碰撞體組件就變成了觸發器。

我想大家應該都理解「觸發器」的概念。

註:移動的剛體物體都會穿透碰撞體勾選了「Is Trigger」選項的物體。

當一個用剛體控制的物體進入到另一個物體的觸發器範圍內,就產生了觸發事件。

這個不與目標物體發生直接的碰撞(接觸),而是只要進入目標物體的「觸發範圍」就能執行某些操作。

那怎麼設定「觸發範圍」呢?其實和我們上面設置碰撞體範圍的方法是一致的。

2.觸發事件監測方法

OnTriggerEnter(Collider)  //當進入觸發範圍開始時調用,只會調用該方法一次

OnTriggerExit(Collider)   //當退出觸發範圍開始時調用,只會調用該方法一次

OnTriggerStay(Collider)     //在觸發範圍內,會持續調用該方法

這個Collider參數是什麼呢?

這個是「碰撞體」的一個類,用來傳遞觸發信息。

Collision.gameObject屬性,進入觸發範圍內的目標物體的引用。

gameObject.name屬性,當前物體的名字。

1 using UnityEngine;
2 using System.Collections;
3
4 public class TriggerCube : MonoBehaviour {
5
6 void OnTriggerEnter(Collider coll)
7    {
8 Debug.Log (coll.gameObject.name+"on trigger enter");
9    }    
10 void OnTriggerStay(Collider coll)
11    {
12 Debug.Log (coll.gameObject.name+"on trigger stay");
13    }
14 void OnTriggerExit(Collider coll)
15    {
16 Debug.Log (coll.gameObject.name+"on trigger exit");
17    }
18 }


九.遊戲打包與發布

好了,當我們製作好了一個遊戲,怎麼把它發布到各個平臺呢?

其實很簡單。untiy已經幫我們做好了絕大部分事情。

我們要做的事情:

1.Build Settings[生成設置]

 

 

2.Player Settings[詳細設置]

3.成品介紹

一個exe文件,一個data數據文件夾,兩者缺一不可。

  

十.入門總結

這個階段我們從最簡單的組件與腳本學起,介紹了滑鼠鍵盤的交互,怎麼移動物體,了解了剛體、碰撞體以及常用的幾個方法,還學習了怎麼打包發布。那麼unity的基本操作差不多告一段落。雖然還有很多沒有介紹到,那我們在做demo的過程中再學再用吧。我還把上面介紹到的所有的方法和屬性寫了一個思維導圖文件,縮略圖:

 

詳細的地址:連結:http://pan.baidu.com/s/1dFMXvpf 密碼:8xq0

ok,今天告一段落。


相關文章:

原文地址:http://www.cnblogs.com/yuxiuyan/p/7533392.html

.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

相關焦點

  • 自製王者榮耀一鍵換裝宏 遊戲蜂窩自由錄製腳本
    《王者榮耀》新賽季開始了,MOBA類手遊的「扛把子」之作,雖然相比電腦上的MOBA類手遊來的簡單許多,但是各種套路、對線技巧、出裝思路依然在《王者榮耀》的玩家中存在了巨大的差異。最近流傳一個職業玩家和普通玩家的各類差異,其中最讓人瞠目結舌的一個操作莫過於一秒換裝,或者又叫做秒換三裝。
  • mac版Unity Pro遊戲開發工具如何創建和使用腳本
    Unity Pro 2018 for mac是遊戲開發必備的軟體之一,unity mac版主要用於創建2D和3D跨平臺遊戲,比如三維視頻遊戲、實時三維動畫、建築可視化等類型,儘管Unity的內置組件可以實現多種用途,但是您很快就會發現,您需要超越它們提供的功能來實現自己的遊戲功能。
  • Unity編碼篇 Rigidbody類
    Rigidbogy組件可以使遊戲對象在物理系統的控制下運動 , 發射一顆子彈 ,如果子彈沒有命中任何物體 ,最後 子彈會因為重力落下 , 此時就可以利用 Rigidbody 組件實現 , 但是使用該組件一般在 FixedUpdate 函數中執行 , 因為物理仿真一般都在固定頻率下進行計算的 .
  • Unity 實用技巧 - 物理系統初識
    Unity中如果想要GO擁有重力,可以發生碰撞反饋等,那就必不可少需要添加一個組件Rigidbody。由於該組件代替了它本身的運動,所以不應該通過Transform來改變位置,旋轉;相反應該使用Forces來推動GO並讓物理引擎計算結果。Rigidbody組件擁有一個Is Kinematic 的屬性,該屬性可以將其從引擎的控制中移除,從而可以用腳本控制GO的運動。注意:儘量不要使用腳本控制該屬性的開關。
  • 王者榮耀藍光雲手機掛機刷金攻略
    一 下載和安裝雲手機藍光雲手機的官網是:http://lgair.cn/index.php 打開後下載安裝apk二在雲手機界面找到王者榮耀和需要用的輔助 下載和安裝,具體步驟如下圖所示。
  • 王者榮耀各類外掛,透視腳本一鍵換裝封號90天,這種行為封號十年!
    王者榮耀可以說是手遊中最為熱門的遊戲,雖然只是一個手遊,但各種外掛腳本自然也是無法避免的。而官方每過一段時間就會處理一批開掛的玩家,大部分都是分好90天到一年不等,現在趕緊來看看都有哪些比較常見的外掛吧!
  • 如果看完《王者榮耀》中英雄的背景故事,你認為世界觀是怎樣的?
    如果看完《王者榮耀》中英雄的背景故事,你認為世界觀是怎樣的?又一個屬於《王者榮耀》的夜晚,在一場白金局的晉級賽中,我方李白開場打字說道:「這把節奏快一點」。這句話看不出語氣,甚至沒有標點符號,直覺告訴小編這是一位大神,這把穩了。
  • Unity3D 尋路系統
    給需尋路的物體添加NavMeshAgent組件(Unity主要通過NavMeshAgent組件實現自動尋路的功能,角色添加NavMeshAgent組件後,就可以在NavMesh尋路網格上尋找最優路徑找到目標)選中物體,然後在屬性面板中點擊Add Component,搜索Nav Mesh Algent,添加此組件。
  • 王者榮耀2020名字空白代碼 最新重複名字代碼
    今天小編給大家帶來的是王者榮耀最新重複名字代碼哦!想知道的小夥伴就和小編一起來看看吧!
  • 巧用Unity 2D功能:只需六步開發簡單的2D UFO遊戲
    新建2D項目,在Assets文件夾下新建三個文件夾:Prefabs、Scripts、Scenes。將下載的資源導入項目,會看到Sprites文件夾。第二步 添加控制主角的腳本首先為Player遊戲對象添加Rigibody 2D組件。
  • 記錄《王者榮耀》真實玩家故事,《百態王者》預告片驚豔亮相
    近日,由《王者榮耀》策劃拍攝的紀錄片欄目《百態王者》曝光了一支預告片。預告片以蒙太奇的手法展現了四位不同身份、職業的玩家的生活,一幀幀畫面閃現著他們的信仰與掙扎,也給觀眾留下了不斷生長的懸念:京劇傳承人如何去平衡創新傳統文化?街頭塗鴉師有著怎樣不為人知的人生?潛水教練對海洋有著怎樣的感情?
  • 王者榮耀:王者榮耀「榮耀戰區」更改玩法
    《王者榮耀》榮耀戰區玩法詳解 榮耀稱號獲取攻略#王者榮耀#王者榮耀現在可謂是火遍大街小巷 而玩王者的人都知道一個排名 那就是榮耀戰區 想要別具一格的稱號 那麼榮耀戰區就會給你排名 國服稱號 以及省級排名
  • 王者榮耀:這些名字代碼是怎樣的?最新名字代碼大全
    王者榮耀:這些名字代碼是怎樣的?最新名字代碼大全 在王者榮耀變態網頁遊戲中,一個炫酷的名字,往往也是一種引人注目的好辦法,而且在遊戲中名字往往是交友的第一映象,一個與眾不同的名字能使人更快的記住你。
  • unity業餘愛好者說一下
    unity業餘愛好者說一下,這幾天傳的關於《太吾繪卷》代碼的事幾乎都是無中生有的事...一群用.net和vs做工程的人談論第三方引擎做的遊戲...真是雞同鴨講。太吾繪卷現在針對幾個常見誤會說一下1.只有一個main (x)unity的腳本都是依附於各個精靈的,沒有main,只有update2.沒有注釋(x)你反編譯出來的代碼有注釋
  • 王者榮耀曜全部語音臺詞 王者榮耀曜語音臺詞有哪些
    王者榮耀東方曜是個活力滿滿的少年,作為稷下星之隊的隊長,曜有不少的話要說。那麼小夥伴們知道曜的語音臺詞有哪些嗎?那麼下面就和小編一起來欣賞一下曜的全部語音臺詞吧!王者榮耀曜語音臺詞有哪些?
  • 王者榮耀好看的暱稱 王者榮耀暱稱特殊符號
    王者榮耀好看的暱稱有哪些?今天小編就根據之前網傳的豎著的名字的起名方法來一一試驗下,下面就一起來看看王者榮耀暱稱特殊符號怎麼起——豎著的暱稱教程吧!  比如:銀魂  問號裡面是空白字,去網上找空白字或者複製上面三個字,再把字改成自己想要的,就是最長只能三個字,如果說長了,你就刪前面字空白一點每個字都刪一點保持一條線,但是你取的名字看不到的,到遊戲裡面看的到,自己現到信息或者文檔裡面編輯好你想要的網名再複製。
  • 《王者榮耀》三個異常點在哪 調查虛影任務完成攻略
    導 讀 王者榮耀調查虛影任務三個異常點怎麼找到?
  • 王者榮耀活躍係數怎麼算 王者榮耀活躍係數簡介
    王者榮耀活躍係數怎麼算?王者榮耀在最近的更新中上線了新遊戲系統活躍係數。這次的玩法是算在我們的戰鬥力裡的,很多玩家就因為這個係數影響了自己的戰力。那麼這個係數多久不打就會掉呢,本期就為大家帶來介紹。
  • 【大咖專欄】Unity AR Foundation 平面檢測實戰
    ARSession 和 ARSession Origin遊戲對象自帶了對應的腳本組件,並有默認的設置。  ARSession  ARSession遊戲對象中的ARSession組件管理AR的開啟和關閉,  ARSession組件可以掛在任意的GameObject上。
  • 官方帶你上王者,《王者榮耀》官方專業遊戲社區APP——《王者營地...
    團在王者,聚在營地!由《王者榮耀助手》升級而來、《王者榮耀》全新官方專業遊戲社區APP——《王者營地》新鮮上線!在《王者營地》中,資訊、賽事、社區、戰績、遊戲工具等全方位的內容集合一站,《王者榮耀》最新資訊與最全面攻略全get,讓官方帶你一路上王者!