-
Notifications
You must be signed in to change notification settings - Fork 3
Develop in Unity(CN)
一旦完成了在 Dev Center 中配置,您就可以切换到 Unity 开始进行开发了。您可以在 Assets\Examples\Main.unity 中找到完整的场景示例。
-
创建一个新的 Unity 项目
-
将 UserProfile 和 XboxLiveServices prefab 拖拽进场景。并从 GameObject > UI 添加一个 EventSystem。
-
-
将两个 IntegerStat prefabs 拖拽进场景,把其中一个的名字设置成 "ScoreStat",另一个设置为 "KillsStat"。
-
对于 ScoreStat,将它的 ID 设置为 score,将 Display Name 设置为 High Score,也就是在 Dev Center 上设置的值.
-
对于 KillsStat,将它的 ID 设置为 kills,将 Display Name 设置为 Kill Count。我们没有在 Dev Center 配置这个统计数据,这个统计数据将被用于追踪 "Shooting Master" 成就。
-
将两个 StatPanel prefabs 拖拽进场景,将其中一个的名字设置成 "ScoreStatPanel",另一个设置为 "KillsStatPanel"。
-
对于 ScoreStatPanel,在 Inspector 中将它的 Stat 设置为 ScoreStat。对于KillsStatPanel, 将它的 Stat 设置为 KillsStat。
-
在场景中添加两个UI button,对每个 button,在 Unity inspector 中给
OnClick
事件添加一个 IntegerStat object, 并调用Increment
函数。这样每当点击按钮,对应stat的值就会加一。 -
将一个 "FlushStatsButton" UI button 加入场景来调用
RequestFlushToService
函数以手动将数据传输至服务器。
-
-
将一个 Leaderboard prefab 拖拽进入场景,将 Stat 设置为 ScoreStat,Leaderboard Type 为 Global 还有 Entry Count 为 3。
-
-
创建一个继承于
AchievementBase
的ShootingMasterAchievement
class .using System; public class ShootingMasterAchievement : AchievementBase { public int targetNumber; private IntegerStat stat; // Use this for initialization void Start() { stat = GetComponent<IntegerStat>(); if (stat != null) { stat.StatChanged += UnlockAchievement; base.XboxLiveUser = stat.XboxLiveUser; } } public override uint CalculateProgress() { return (uint)Math.Round(Convert.ToDouble(stat.Value) / targetNumber * 100); } }
-
将这个类作为一个 component 添加到 killsStat。这样一来 killsStat 就可以被用来同步解锁成就所需要的击杀数。
-
在 Inspector 中,将 ID 设为 1,TargetNumber 设为 10。
-
-
保存场景。
在以上都完成后,你可以生成并测试您的项目了。