截止2021年5月17日,从5.6到2021所有的unity版本下载地址。

 

首先,unity3d 2021版本確實從一些方面進行了更新,但是unity HUB的安裝也確實挺麻煩。聽說有大神可以繞過HUB,但我沒有成功。

其次,unity3d從2018開始,國內外用著兩個不同的版本。國內版本主文件加殼,PJ帶來困難。國外版本不好獲得。你可以嘗試進入英文官網,發現下載頁面打不開,因爲我們國內的IP被屏蔽了,包括部分台灣的IP。HUB內部安裝並沒有國外的版本。你用科學上網的方法可以下載,但科學上網是違法的哦。

另外,PJ的方法在這篇中就不再提及了,我分開文章說明。

所以,這篇筆記,我留下一些對大家有用的資料。下載地址複制到浏覽器,打開後自動連接HUB安裝相應版本。雖然是國外版本,但是是可以選擇下載中文語言的。

大家安裝時有什麽問題,可以加入我的qq群636131416。

unityhub://2021.1.7f1/d91830b65d9b 
unityhub://2021.1.6f1/c0fade0cc7e9 
unityhub://2021.1.5f1/3737af19df53 
unityhub://2021.1.4f1/4cd64a618c1b 
unityhub://2021.1.3f1/4bef613afd59 
unityhub://2021.1.2f1/e5d502d80fbb 
unityhub://2021.1.1f1/6fdc41dfa55a 
unityhub://2021.1.0f1/61a549675243 
unityhub://2020.3.8f1/507919d4fff5 
unityhub://2020.3.7f1/dd97f2c94397 
unityhub://2020.3.6f1/338bb68529b2 
unityhub://2020.3.5f1/8095aa901b9b 
unityhub://2020.3.4f1/0abb6314276a 
unityhub://2020.3.3f1/76626098c1c4 
unityhub://2020.3.2f1/8fd9074bf66c 
unityhub://2020.3.1f1/77a89f25062f 
unityhub://2020.3.0f1/c7b5465681fb 
unityhub://2020.2.7f1/c53830e277f1 
unityhub://2020.2.6f1/8a2143876886 
unityhub://2020.2.5f1/e2c53f129de5 
unityhub://2020.2.4f1/becced5a802b 
unityhub://2020.2.3f1/8ff31bc5bf5b 
unityhub://2020.2.2f1/068178b99f32 
unityhub://2020.2.1f1/270dd8c3da1c 
unityhub://2020.2.0f1/3721df5a8b28 
unityhub://2020.1.17f1/9957aee8edc2 
unityhub://2020.1.16f1/f483ad6465d6 
unityhub://2020.1.15f1/97d0ae02d19d 
unityhub://2020.1.14f1/d81f64f5201d 
unityhub://2020.1.13f1/5e24f28bfbc0 
unityhub://2020.1.12f1/55b56f0a86e3 
unityhub://2020.1.11f1/698c1113cef0 
unityhub://2020.1.10f1/974a9d56f159 
unityhub://2020.1.9f1/145f5172610f 
unityhub://2020.1.8f1/22e8c0b0c3ec 
unityhub://2020.1.7f1/064ffcdb64ad 
unityhub://2020.1.6f1/fc477ca6df10 
unityhub://2020.1.5f1/e025938fdedc 
unityhub://2020.1.4f1/fa717bb873ec 
unityhub://2020.1.3f1/cf5c4788e1d8 
unityhub://2020.1.2f1/7b32bc54ba47 
unityhub://2020.1.1f1/2285c3239188 
unityhub://2020.1.0f1/2ab9c4179772 
unityhub://2019.4.26f1/e0392c6b2363 
unityhub://2019.4.25f1/01a0494af254 
unityhub://2019.4.24f1/5da6f0345e82 
unityhub://2019.4.23f1/3f4e01f1a5ec 
unityhub://2019.4.22f1/9fdda2fe27ad 
unityhub://2019.4.21f1/b76dac84db26 
unityhub://2019.4.20f1/6dd1c08eedfa 
unityhub://2019.4.19f1/ca5b14067cec 
unityhub://2019.4.18f1/3310a4d4f880 
unityhub://2019.4.17f1/667c8606c536 
unityhub://2019.4.16f1/e05b6e02d63e 
unityhub://2019.4.15f1/fbf367ac14e9 
unityhub://2019.4.14f1/4037e52648cd 
unityhub://2019.4.13f1/518737b1de84 
unityhub://2019.4.12f1/225e826a680e 
unityhub://2019.4.11f1/2d9804dddde7 
unityhub://2019.4.10f1/5311b3af6f69 
unityhub://2019.4.9f1/50fe8a171dd9 
unityhub://2019.4.8f1/60781d942082 
unityhub://2019.4.7f1/e992b1a16e65 
unityhub://2019.4.6f1/a7aea80e3716 
unityhub://2019.4.5f1/81610f64359c 
unityhub://2019.4.4f1/1f1dac67805b 
unityhub://2019.4.3f1/f880dceab6fe 
unityhub://2019.4.2f1/20b4642a3455 
unityhub://2019.4.1f1/e6c045e14e4e 
unityhub://2019.4.0f1/0af376155913 
unityhub://2019.3.15f1/59ff3e03856d 
unityhub://2019.3.14f1/2b330bf6d2d8 
unityhub://2019.3.13f1/d4ddf0d95db9 
unityhub://2019.3.12f1/84b23722532d 
unityhub://2019.3.11f1/ceef2d848e70 
unityhub://2019.3.10f1/5968d7f82152 
unityhub://2019.3.9f1/e6e740a1c473 
unityhub://2019.3.8f1/4ba98e9386ed 
unityhub://2019.3.7f1/6437fd74d35d 
unityhub://2019.3.6f1/5c3fb0a11183 
unityhub://2019.3.5f1/d691e07d38ef 
unityhub://2019.3.4f1/4f139db2fdbd 
unityhub://2019.3.3f1/7ceaae5f7503 
unityhub://2019.3.2f1/c46a3a38511e 
unityhub://2019.3.1f1/89d6087839c2 
unityhub://2019.3.0f6/27ab2135bccf 
unityhub://2019.2.21f1/9d528d026557 
unityhub://2019.2.20f1/c67d00285037 
unityhub://2019.2.19f1/929ab4d01772 
unityhub://2019.2.18f1/bbf64de26e34 
unityhub://2019.2.17f1/8e603399ca02 
unityhub://2019.2.16f1/b9898e2d04a4 
unityhub://2019.2.15f1/dcb72c2e9334 
unityhub://2019.2.14f1/49dd4e9fa428 
unityhub://2019.2.13f1/e20f6c7e5017 
unityhub://2019.2.12f1/b1a7e1fb4fa5 
unityhub://2019.2.11f1/5f859a4cfee5 
unityhub://2019.2.10f1/923acd2d43aa 
unityhub://2019.2.9f1/ebce4d76e6e8 
unityhub://2019.2.8f1/ff5b465c8d13 
unityhub://2019.2.7f2/c96f78eb5904 
unityhub://2019.2.6f1/fe82a0e88406 
unityhub://2019.2.5f1/9dace1eed4cc 
unityhub://2019.2.4f1/c63b2af89a85 
unityhub://2019.2.3f1/8e55c27a4621 
unityhub://2019.2.2f1/ab112815d860 
unityhub://2019.2.1f1/ca4d5af0be6f 
unityhub://2019.2.0f1/20c1667945cf 
unityhub://2019.1.14f1/148b5891095a 
unityhub://2019.1.13f1/b5956c0a61e7 
unityhub://2019.1.12f1/f04f5427219e 
unityhub://2019.1.11f1/9b001d489a54 
unityhub://2019.1.10f1/f007ed779b7a 
unityhub://2019.1.9f1/d5f1b37da199 
unityhub://2019.1.8f1/7938dd008a75 
unityhub://2019.1.7f1/f3c4928e5742 
unityhub://2019.1.6f1/f2970305fe1c 
unityhub://2019.1.5f1/0ca0f5646614 
unityhub://2019.1.4f1/ffa3a7a2dd7d 
unityhub://2019.1.3f1/dc414eb9ed43 
unityhub://2019.1.2f1/3e18427e571f 
unityhub://2019.1.1f1/fef62e97e63b 
unityhub://2019.1.0f2/292b93d75a2c 
unityhub://2018.4.35f1/dbb5675dce2d 
unityhub://2018.4.34f1/ae2afac172fb 
unityhub://2018.4.33f1/d75f7e9df24c 
unityhub://2018.4.32f1/fba45da84107 
unityhub://2018.4.31f1/212ea663d844 
unityhub://2018.4.30f1/c698a062d8e6 
unityhub://2018.4.29f1/50cce2edf27f 
unityhub://2018.4.28f1/a2d4f71491a4 
unityhub://2018.4.27f1/4e283b7d3f88 
unityhub://2018.4.26f1/a7ac1c6396db 
unityhub://2018.4.25f1/b07bfa0a8827 
unityhub://2018.4.24f1/3071911a89e9 
unityhub://2018.4.23f1/c9cf1a90e812 
unityhub://2018.4.22f1/3362ffbb7aa1 
unityhub://2018.4.21f1/fd3915227633 
unityhub://2018.4.20f1/008688490035 
unityhub://2018.4.19f1/459f70f82ea4 
unityhub://2018.4.18f1/61fce66342ad 
unityhub://2018.4.17f1/b830f56f42f0 
unityhub://2018.4.16f1/e6e9ca02b32a 
unityhub://2018.4.15f1/13f5a1bf9ca1 
unityhub://2018.4.14f1/05119b33d0b7 
unityhub://2018.4.13f1/497f083a43af 
unityhub://2018.4.12f1/59ddc4c59b4f 
unityhub://2018.4.11f1/7098af2f11ea 
unityhub://2018.4.10f1/a0470569e97b 
unityhub://2018.4.9f1/ca372476eaba 
unityhub://2018.4.8f1/9bc9d983d803 
unityhub://2018.4.7f1/b9a993fd1334 
unityhub://2018.4.6f1/cde1bbcc9f0d 
unityhub://2018.4.5f1/7b38f8ac282e 
unityhub://2018.4.4f1/5440768ff61c 
unityhub://2018.4.3f1/8a9509a5aff9 
unityhub://2018.4.2f1/d6fb3630ea75 
unityhub://2018.4.1f1/b7c424a951c0 
unityhub://2018.4.0f1/b6ffa8986c8d 
unityhub://2018.3.14f1/d0e9f15437b1 
unityhub://2018.3.13f1/06548a9e9582 
unityhub://2018.3.12f1/8afd630d1f5b 
unityhub://2018.3.11f1/5063218e4ab8 
unityhub://2018.3.10f1/f88de2c96e63 
unityhub://2018.3.9f1/947e1ea5aa8d 
unityhub://2018.3.8f1/fc0fe30d6d91 
unityhub://2018.3.7f1/9e14d22a41bb 
unityhub://2018.3.6f1/a220877bc173 
unityhub://2018.3.5f1/76b3e37670a4 
unityhub://2018.3.4f1/1d952368ca3a 
unityhub://2018.3.3f1/393bae82dbb8 
unityhub://2018.3.2f1/b3c100a4b73a 
unityhub://2018.3.1f1/bb579dc42f1d 
unityhub://2018.3.0f2/6e9a27477296 
unityhub://2018.2.21f1/a122f5dc316d 
unityhub://2018.2.20f1/cef3e6c0c622 
unityhub://2018.2.19f1/06990f28ba00 
unityhub://2018.2.18f1/4550892b6062 
unityhub://2018.2.17f1/88933597c842 
unityhub://2018.2.16f1/39a4ac3d51f6 
unityhub://2018.2.15f1/65e0713a5949 
unityhub://2018.2.14f1/3262fb3b0716 
unityhub://2018.2.13f1/83fbdcd35118 
unityhub://2018.2.12f1/0a46ddfcfad4 
unityhub://2018.2.11f1/38bd7dec5000 
unityhub://2018.2.10f1/674aa5a67ed5 
unityhub://2018.2.9f1/2207421190e9 
unityhub://2018.2.8f1/ae1180820377 
unityhub://2018.2.7f1/4ebd28dd9664 
unityhub://2018.2.6f1/c591d9a97a0b 
unityhub://2018.2.5f1/3071d1717b71 
unityhub://2018.2.4f1/cb262d9ddeaf 
unityhub://2018.2.3f1/1431a7d2ced7 
unityhub://2018.2.2f1/c18cef34cbcd 
unityhub://2018.2.1f1/1a9968d9f99c 
unityhub://2018.2.0f2/787658998520 
unityhub://2018.1.9f2/a6cc294b73ee 
unityhub://2018.1.8f1/26051d4de9e9 
unityhub://2018.1.7f1/4cb482063d12 
unityhub://2018.1.6f1/57cc34175ccf 
unityhub://2018.1.5f1/732dbf75922d 
unityhub://2018.1.4f1/1a308f4ebef1 
unityhub://2018.1.3f1/a53ad04f7c7f 
unityhub://2018.1.2f1/a46d718d282d 
unityhub://2018.1.1f1/b8cbb5de9840 
unityhub://2018.1.0f2/d4d99f31acba 
unityhub://2017.4.40f1/6e14067f8a9a 
unityhub://2017.4.39f1/947131c5be7e 
unityhub://2017.4.38f1/82ac2fb100ce 
unityhub://2017.4.37f1/78b69503ebc4 
unityhub://2017.4.36f1/c663def8414c 
unityhub://2017.4.35f1/e57a7bcbbf0b 
unityhub://2017.4.34f1/121f18246307 
unityhub://2017.4.33f1/a8557a619e24 
unityhub://2017.4.32f1/4da3ed968770 
unityhub://2017.4.31f1/9c8dbc3421cb 
unityhub://2017.4.30f1/c6fa43736cae 
unityhub://2017.4.29f1/06508aa14ca1 
unityhub://2017.4.28f1/e3a0f7dd2097 
unityhub://2017.4.27f1/0c4b856e4c6e 
unityhub://2017.4.26f1/3b349d10f010 
unityhub://2017.4.25f1/9cba1c3a94f1 
unityhub://2017.4.24f1/786769fc3439 
unityhub://2017.4.23f1/f80c8a98b1b5 
unityhub://2017.4.22f1/eb4bc6fa7f1d 
unityhub://2017.4.21f1/de35fe252486 
unityhub://2017.4.20f2/413dbd19b6dc 
unityhub://2017.4.19f1/47cd37c28be8 
unityhub://2017.4.18f1/a9236f402e28 
unityhub://2017.4.17f1/05307cddbb71 
unityhub://2017.4.16f1/7f7bdd1ef02b 
unityhub://2017.4.15f1/5d485b4897a7 
unityhub://2017.4.14f1/b28150134d55 
unityhub://2017.4.13f1/6902ad48015d 
unityhub://2017.4.12f1/b582b87345b1 
unityhub://2017.4.11f1/8c6b8ef6d111 
unityhub://2017.4.10f1/f2cce2a5991f 
unityhub://2017.4.9f1/6d84dfc57ccf 
unityhub://2017.4.8f1/5ab7f4878ef1 
unityhub://2017.4.7f1/de9eb5ca33c5 
unityhub://2017.4.6f1/c24f30193bac 
unityhub://2017.4.5f1/89d1db9cb682 
unityhub://2017.4.4f1/645c9050ba4d 
unityhub://2017.4.3f1/21ae32b5a9cb 
unityhub://2017.4.2f2/52d9cb89b362 
unityhub://2017.4.1f1/9231f953d9d3 
unityhub://2017.3.1f1/fc1d3344e6ea 
unityhub://2017.3.0f3/a9f86dcd79df 
unityhub://2017.2.5f1/588dc79c95ed 
unityhub://2017.2.4f1/f1557d1f61fd 
unityhub://2017.2.3f1/372229934efd 
unityhub://2017.2.2f1/1f4e0f9b6a50 
unityhub://2017.2.1f1/94bf3f9e6b5e 
unityhub://2017.2.0f3/46dda1414e51 
unityhub://2017.1.5f1/9758a36cfaa6 
unityhub://2017.1.4f1/9fd71167a288 
unityhub://2017.1.3f1/574eeb502d14 
unityhub://2017.1.2f1/cc85bf6a8a04 
unityhub://2017.1.1f1/5d30cf096e79 
unityhub://2017.1.0f3/472613c02cf7 
unityhub://5.6.7f1/e80cc3114ac1 
unityhub://5.6.6f2/6bac21139588 
unityhub://5.6.5f1/2cac56bf7bb6 
unityhub://5.6.4f1/ac7086b8d112 
unityhub://5.6.3f1/d3101c3b8468 
unityhub://5.6.2f1/a2913c821e27 
unityhub://5.6.1f1/2860b30f0b54 
unityhub://5.6.0f3/497a0f351392 

回合制自己写的 战斗DEMO 加动画状态 Q键移动并攻击。 代码很简单。不要抱有太大希望 。作为新手学习使用。 public enum HeroStatus { idle = 0, //空闲 attack, //攻击 other, //其他 hit, //受击 die, //死亡 defense, //防御 cast, //施法 miss, //闪避 seriousInjury, //重伤 move, //移动 exit, //获取下一个状态 MAX, } public class hero : MonoBehaviour { public UISpriteAnimation m_spriteAnimation = null; public HeroStatus m_staus = HeroStatus.exit; //身体碰撞盒 public BoxCollider m_bodyBC = null; public string m_name = ""; public AttackCrash m_attackCrash = null; public byte m_posIndex = 0; void Awake() { m_spriteAnimation = transform.GetComponent(); m_bodyBC = transform.GetComponent(); } // Use this for initialization void Start () { m_spriteAnimation.AddFrameCallBack("attack", 1, AttackCallBack); m_spriteAnimation.AddFrameCallBack("attack", 4, AttackCallBack); m_spriteAnimation.AddFrameCallBack("attack", 7, AttackCallBack); } public float m_speed = 1f; public float m_offset = 0.5f; public Vector3 m_destination = Vector3.zero; public List m_actionList = new List(); // Update is called once per frame void Update () { switch (m_staus) { case HeroStatus.idle: //空闲状态 if (m_actionList.Count > 0) m_staus = HeroStatus.exit; break; case HeroStatus.attack: if (!m_spriteAnimation.isPlaying) { //攻击动画播放完毕 m_staus = HeroStatus.exit; } break; case HeroStatus.defense: transform.position = Vector3.MoveTowards(transform.position, m_destination, m_speed * Time.deltaTime); if (transform.position == m_destination) m_staus = HeroStatus.exit; break; case HeroStatus.hit: transform.position = Vector3.MoveTowards(transform.position, m_destination, m_speed * Time.deltaTime); if (transform.position == m_destination) m_staus = HeroStatus.exit; break; case HeroStatus.die: break; case HeroStatus.cast: break; case HeroStatus.miss: break; case HeroStatus.seriousInjury: break; case HeroStatus.move: transform.position = Vector3.MoveTowards(transform.position, m_destination, m_speed * Time.deltaTime); if (transform.position == m_destination) m_staus = HeroStatus.exit; break; case HeroStatus.exit: //获取下一个状态 if (m_actionList.Count > 0) { string str = "idle"; switch(m_actionList[0].status) { case HeroStatus.move: str = "idle"; break; default: str = Enum.GetName(typeof(HeroStatus), m_actionList[0].status); break; } m_spriteAnimation.namePrefix = str; m_spriteAnimation.loop = m_actionList[0].loop; m_destination = m_actionList[0].destinationMove; m_speed = m_actionList[0].speed; m_spriteAnimation.ResetToBeginning(); m_staus = m_actionList[0].status; m_actionList.RemoveAt(0); } else { m_spriteAnimation.namePrefix = Enum.GetName(typeof(HeroStatus), HeroStatus.idle); m_spriteAnimation.loop = true; m_spriteAnimation.ResetToBeginning(); m_staus = HeroStatus.idle; } break; // case HeroStatus.moveback: // //transform.position = Vector3.SmoothDamp(transform.position, destinationMove, ref cameraVelocity, smoothTime); // transform.position = Vector3.MoveTowards(transform.position, destinationMove, m_speed * Time.deltaTime); // if (transform.position == destinationMove) // m_staus = HeroStatus.idle; // break; } } public void SetPosition(byte pos, float x, float y) { m_posIndex = pos; transform.localPosition = new Vector3(x, y); } public void AttackCallBack() { //创建攻击特效 A攻击B B掉血222 B反击A闪避 UnityEngine.Object sourceObj = Resources.Load("AttackCrash"); GameObject go = UnityEngine.Object.Instantiate(sourceObj) as GameObject; go.transform.parent = transform; go.transform.localScale = Vector3.one; go.transform.localPosition = new Vector3(-70, 0, 0); } private void OnCollisionEnter(Collision co) { //进入碰撞 Debug.Log("进入碰撞!"); UnityEngine.Object sourceObj = Resources.Load("Effect"); GameObject go = UnityEngine.Object.Instantiate(sourceObj) as GameObject; go.transform.parent = transform; go.transform.localScale = Vector3.one; go.transform.localPosition = new Vector3(0, 0, 0); //Defense(); Hit(); } public void Attack(GameObject aims) { ActionData tmpAD = new ActionData(); tmpAD.status = HeroStatus.move; tmpAD.loop = true; UISprite tmpS = transform.GetComponent(); tmpAD.destinationMove = GameObject.Find("UI Root/Camera").transform.TransformPoint(new Vector3(aims.transform.localPosition.x + (tmpS.width/2), aims.transform.localPosition.y)); tmpAD.speed = Vector3.Distance(transform.position, tmpAD.destinationMove) * 4; //4/1秒到达目的地 m_actionList.Add(tmpAD); ActionData tmpAD1 = new ActionData(); tmpAD1.status = HeroStatus.attack; tmpAD1.loop = false; tmpAD1.destinationMove = Vector3.zero; tmpAD1.speed = 0; m_actionList.Add(tmpAD1); ActionData tmpAD2 = new ActionData(); tmpAD2.status = HeroStatus.move; tmpAD2.loop = true; tmpAD2.destinationMove = transform.position; tmpAD2.speed = Vector3.Distance(tmpAD.destinationMove, tmpAD2.destinationMove) * 4; //4/1秒到达目的地 m_actionList.Add(tmpAD2); } public void Defense() { ActionData tmpAD = new ActionData(); tmpAD.status = HeroStatus.defense; tmpAD.loop = false; tmpAD.destinationMove = GameObject.Find("UI Root/Camera").transform.TransformPoint(new Vector3(transform.localPosition.x - 25, transform.localPosition.y)); tmpAD.speed = 0.25f; //4/1秒到达目的地 m_actionList.Add(tmpAD); ActionData tmpAD1 = new ActionData(); tmpAD1.status = HeroStatus.move; tmpAD1.loop = false; tmpAD1.destinationMove = transform.position; tmpAD1.speed = 0.8f; //4/1秒到达目的地 m_actionList.Add(tmpAD1); } public void Hit() { ActionData tmpAD = new ActionData(); tmpAD.status = HeroStatus.hit; tmpAD.loop = false; tmpAD.destinationMove = GameObject.Find("UI Root/Camera").transform.TransformPoint(new Vector3(transform.localPosition.x - 25, transform.localPosition.y)); tmpAD.speed = 0.3f; //4/1秒到达目的地 m_actionList.Add(tmpAD); ActionData tmpAD1 = new ActionData(); tmpAD1.status = HeroStatus.move; tmpAD1.loop = false; tmpAD1.destinationMove = transform.position; tmpAD1.speed = 0.8f; //4/1秒到达目的地 m_actionList.Add(tmpAD1); } public void Idle() { m_spriteAnimation.namePrefix = Enum.GetName(typeof(HeroStatus), HeroStatus.idle); m_spriteAnimation.loop = true; m_spriteAnimation.ResetToBeginning(); m_staus = HeroStatus.idle; } public void Move() { // //transform.GetComponent().depth = 99; // GameObject go = GameObject.Find("enemy").gameObject; // destinationMove = GameObject.Find("UI Root/Camera").transform.TransformPoint(new Vector3(go.transform.localPosition.x + 98,go.transform.localPosition.y,go.transform.localPosition.z)); // m_speed = Vector3.Distance(transform.position, destinationMove) * 4; //4/1秒到达目的地 // m_staus = HeroStatus.moveto; // m_spriteAnimation.namePrefix = Enum.GetName(typeof(HeroStatus), HeroStatus.idle); // m_spriteAnimation.loop = true; // m_spriteAnimation.ResetToBeginning(); }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值