Unity3.5 GameCenter基础教程(转载)
原地址:
http://forum.unity3d.com/threads/116901-Game-Center-Support/page3
using UnityEngine;
using UnityEngine.SocialPlatforms; public class Startup : MonoBehaviour
{
// we'll create some buttons in OnGui, allowing us to bump achievement and
// score values for testing private double ach1 = ;
private double ach2 = ;
private double ach3 = ;
private double ach4 = ; private long score1 = ;
private long score2 = ; private int buttonWidth = ;
private int buttonHeight = ;
private int buttonGap = ; void Start()
{
Social.localUser.Authenticate(HandleAuthenticated);
} // authentication private void HandleAuthenticated(bool success)
{
Debug.Log("*** HandleAuthenticated: success = " + success);
if (success) {
Social.localUser.LoadFriends(HandleFriendsLoaded);
Social.LoadAchievements(HandleAchievementsLoaded);
Social.LoadAchievementDescriptions(HandleAchievementDescriptionsLoaded);
}
} private void HandleFriendsLoaded(bool success)
{
Debug.Log("*** HandleFriendsLoaded: success = " + success);
foreach (IUserProfile friend in Social.localUser.friends) {
Debug.Log("* friend = " + friend.ToString());
}
} private void HandleAchievementsLoaded(IAchievement[] achievements)
{
Debug.Log("*** HandleAchievementsLoaded");
foreach (IAchievement achievement in achievements) {
Debug.Log("* achievement = " + achievement.ToString());
}
} private void HandleAchievementDescriptionsLoaded(IAchievementDescription[] achievementDescriptions)
{
Debug.Log("*** HandleAchievementDescriptionsLoaded");
foreach (IAchievementDescription achievementDescription in achievementDescriptions) {
Debug.Log("* achievementDescription = " + achievementDescription.ToString());
}
} // achievements public void ReportProgress(string achievementId, double progress)
{
if (Social.localUser.authenticated) {
Social.ReportProgress(achievementId, progress, HandleProgressReported);
}
} private void HandleProgressReported(bool success)
{
Debug.Log("*** HandleProgressReported: success = " + success);
} public void ShowAchievements()
{
if (Social.localUser.authenticated) {
Social.ShowAchievementsUI();
}
} // leaderboard public void ReportScore(string leaderboardId, long score)
{
if (Social.localUser.authenticated) {
Social.ReportScore(score, leaderboardId, HandleScoreReported);
}
} public void HandleScoreReported(bool success)
{
Debug.Log("*** HandleScoreReported: success = " + success);
} public void ShowLeaderboard()
{
if (Social.localUser.authenticated) {
Social.ShowLeaderboardUI();
}
} // gui public void OnGUI()
{
// four buttons, allowing us to bump and test setting achievements
int yDelta = buttonGap;
if (GUI.Button(new Rect(buttonGap, yDelta, buttonWidth, buttonHeight), "Ach 1")) {
ReportProgress("A0001", ach1);
ach1 = (ach1 == ) ? : ach1 + ;
}
yDelta += buttonHeight + buttonGap;
if (GUI.Button(new Rect(buttonGap, yDelta, buttonWidth, buttonHeight), "Ach 2")) {
ReportProgress("A0002", ach2);
ach2 = (ach2 == ) ? : ach2 + ;
}
yDelta += buttonHeight + buttonGap;
if (GUI.Button(new Rect(buttonGap, yDelta, buttonWidth, buttonHeight), "Ach 3")) {
ReportProgress("A0003", ach3);
ach3 = (ach3 == ) ? : ach3 + ;
}
yDelta += buttonHeight + buttonGap;
if (GUI.Button(new Rect(buttonGap, yDelta, buttonWidth, buttonHeight), "Ach 4")) {
ReportProgress("A0004", ach4);
ach4 = (ach4 == ) ? : ach4 + ;
}
// show achievements
yDelta += buttonHeight + buttonGap;
if (GUI.Button(new Rect(buttonGap, yDelta, buttonWidth, buttonHeight), "Show Achievements")) {
ShowAchievements();
} // two buttons, allowing us to bump and test setting high scores
int xDelta = Screen.width - buttonWidth - buttonGap;
yDelta = buttonGap;
if (GUI.Button(new Rect(xDelta, yDelta, buttonWidth, buttonHeight), "Score 1")) {
ReportScore("L01", score1);
score1 += ;
}
yDelta += buttonHeight + buttonGap;
if (GUI.Button(new Rect(xDelta, yDelta, buttonWidth, buttonHeight), "Score 2")) {
ReportScore("L02", score2);
score2 += ;
}
// show leaderboard
yDelta += buttonHeight + buttonGap;
if (GUI.Button(new Rect(xDelta, yDelta, buttonWidth, buttonHeight), "Show Leaderboard")) {
ShowLeaderboard();
}
}
}
Unity3.5 GameCenter基础教程(转载)的更多相关文章
- jQuery官方基础教程笔记(转载)
本文转载于阮一峰的博文,内容基础,结构清晰,是jquery入门不可多得的资料,非常好,赞一个. 阮一峰:jQuery官方基础教程笔记 jQuery是目前使用最广泛的javascript函数库. 据统计 ...
- [转载] 《Hadoop基础教程》之初识Hadoop
转载自http://blessht.iteye.com/blog/2095675 Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用 ...
- 《Hadoop基础教程》之初识Hadoop(转载)
转载自博主:上善若水任方圆http://blessht.iteye.com/blog/2095675 Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴 ...
- [转载]Unity3D游戏引擎最详尽基础教程
原文地址:Unity3D游戏引擎最详尽基础教程作者:ShangShang 我一直向所有想做游戏的朋友推荐Unity3D,为什么呢?首先是因为专业,Unity3D非常强大,用它创建一个类似MiniGor ...
- <<Bootstrap基础教程>> 新书出手,有心栽花花不开,无心插柳柳成荫
并非闲的蛋疼,做技术也经常喜欢蛋疼,纠结于各种技术,各种需求变更,还有一个很苦恼的就是UI总是那么不尽人意.前不久自己开源了自己做了多年的仓储项目(开源地址:https://github.com/he ...
- html快速入门(基础教程+资源推荐)
1.html究竟是什么? 从字面上理解,html是超文本标记语言hyper text mark-up language的首字母缩写,指的是一种通用web页面描述语言,是用来描述我们打开浏览器就能看到的 ...
- 【Unity3D基础教程】给初学者看的Unity教程(四):通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider2D
作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 在第一篇文章[Unity3D基础教程] ...
- WCF基础教程之异常处理:你的Try..Catch语句真的能捕获到异常吗?
在上一篇WCF基础教程之开篇:创建.测试和调用WCF博客中,我们简单的介绍了如何创建一个WCF服务并调用这个服务.其实,上一篇博客主要是为了今天这篇博客做铺垫,考虑到网上大多数WCF教程都是从基础讲起 ...
- Django 基础教程
Django 基础教程 这是第一篇 Django 简介 » Django 是由 Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站! 你一定可以学会,Django 很简单 ...
随机推荐
- 字符串hash-RK算法讲解二
算法分析:预处理时间Θ(m),即求h,p,t的时间为,匹配时间在最坏情况下为Θ((n-m-1)m),因为可能出现每次都是可能命中点的情况.如T=a^n,P=a^m,此种情况下验证时间为Θ((n-m-1 ...
- spark sql遇到的问题
项目背景:计算平台架构hadoop spark spark on yarn,支持多种sql引擎如hive.spark sql.impala等. 问题描述:SPARK SQL在做insert ove ...
- 洛谷——P1916 小书童——蚂蚁大战
P1916 小书童——蚂蚁大战 题目背景 小A在你的帮助下,开始“刷题”,他在小书童里发现了一款叫“蚂蚁大战”(又称蛋糕保卫战)的游戏.(你懂得) 题目描述 游戏中会出现n只蚂蚁,分别有a1,a2…… ...
- 29、Flask实战第29天:cms用户名渲染和注销功能实现
这节来完成用户名渲染和注销的功能,目前用户名在前端页面是写死的,我们需要动态的展示出来 用户名渲染 实现用户名动态展示,其中一种方法就是在视图函数,根据session信息,获取到user id,通过该 ...
- Mybatis 使用Mybatis时实体类属性名和表中的字段名不一致
开发中,实体类中的属性名和对应的表中的字段名不一定都是完全相同的,这样可能会导致用实体类接收返回的结果时导致查询到的结果无法映射到实体类的属性中,那么该如何解决这种字段名和实体类属性名不相同的冲突呢? ...
- run()和start()的区别
run没有启新的线程,start方法才会调用Thread的native的start0方法,start0会调用run方法,开启新的线程,博主这么做,不是多线程顺序执行,而是把业务阻塞在主线程里.请打印: ...
- strust2的核心和工作原理
在学习strust2之前,我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Strust设计的第一目标就是使MVC模式应用于web程序设计. 技术优势 Struts2有 ...
- HDU 4576 Robot (很水的概率题)
Robot Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 102400/102400 K (Java/Others)Total Sub ...
- Linux(CentOS)下的vsftpd服务器配置-五岳之巅
说明:VSFTPD这款软件,网上和书里有很多配置文章,但不一定适用于您的主机,不同版本默认值不一样,我现在使用的是vsftpd-2.0.5-12.el5_3.1.千万记住:修改配置文件后,必须重新启动 ...
- 【java】java获取对象属性类型、属性名称、属性值
java获取对象属性类型.属性名称.属性值 获取属性 修饰符:[在Field[]循环中使用] String modifier = Modifier.toString(fields[i].getModi ...