[Unity3D] เพิ่ม Game Center ลงเกมของเรา by

30
Jun
0

วิธี setup Game Center และใส่ Archivement ลงใน Game Center ตามนี้เลยครับ

Setup ที่ iTune Connect

1. เข้าไปที่ iTune Connect

2. เลือก app ของเรา (ถ้ายังไม่ใส่ app ลง iTune Connect จะทำ Game Center ไม่ได้เลย)

gamecenter1

3. กดเมนู Features ตามด้วย Game Center ดังรูปด้านบน

gamecenter2

4. กด Add Achievement ตามรูป (ถ้าอยากใส่ Leaderboard ด้วยก็ต้องใส่ข้อมูล Leaderboard ด้วยตรงนี้)

5. มีข้อมูลต้องกรอกดังนี้

  • Achievement Reference Name – ชื่อที่เอาไว้ดูในเว็บ iTune Connect เท่านั้น ไม่มีการเชื่อมต่อกับส่วนอื่น
  • Achievement ID – ชื่อที่ใช้อ้างอืงกับเกมของเรา เวลาเราสั่ง Achievement ไหนเสร็จก็จะต้องอ้าง string ตัวนี้ ใช้ได้เฉพาะตัวอักษรอังกฤษ, ตัวเลข, -, _ ห้ามมีตัวอักษรอื่นนอกเหนือจากนี้รวมถึง spacebar
  • Point Value – ถ้าทำสำเร็จจะได้กี่แต้ม ตรงนี้ต้องระวังหน่อยใส่ได้สูงสุด 100 และรวมทุก Achievement ห้ามเกิน 1000 คะแนนตรงนี้จริงๆ เกมเราไม่ได้เอาไปใช้อะไรหรอก แต่สำหรับผู้เล่น มันจะมีคะแนนที่สะสมมาจากเกมอื่นที่ไม่ใช่ของเรามารวมด้วย และจัดอันดับของทั้ง Game Center รวมกันหลายๆ เกมอีกที ในส่วนนี้สมมติตั้งว่าได้ 10 คะแนน แต่คนเล่น progress ไป 50% แล้ว แต่ยังไม่สำเร็จก็จะยังไม่ได้แต้ม (ไม่ใช่ว่าได้ 5 แต้มไปก่อนแล้ว) ต้องทำ progress ครบ 100 ถึงจะได้ 10 คะแนน
  • Hidden – แสดงให้ผู้เล่นรู้ไหมว่ามี Achievement นี้อยู่
  • Achievable More Than Once – ทำซ้ำได้มากกว่า 1 ครั้งไหม

6. ข้อมูลส่วน Add Language มีดังนี้

  • Language – ภาษา
  • Title – หัวข้อที่จะแสดงเวลาผู้เล่นทำสำเร็จครบ 100% แล้วมี status แสดงว่าสำเร็จแล้ว (Hero, Great Warrior ชื่ออะไรที่อยากให้คนเล่นเห็นก็ว่าไป)
  • Pre-earned Description – ก่อนจะได้ Achievement ให้แสดงข้อความข้างใต้ Title อย่างไร อาจใส่เป็นคำใบ้ว่าต้องทำอย่างไรถึงจะได้ Achievement นี้ก็ได้
  • Earned Description – หลังได้ Achievement ให้แสดงข้อความข้างใต้ Title ว่าอย่างไร
  • Image – รูปที่แสดง ขนาด 512×512 px หรือ 1024×1024 px โดยจะถูกตัดขอบเป็นวงกลมให้เสมอ

7. หลังกด Save แล้วก็ Add Achievement อื่นๆ วนซ้ำไปเรื่อยๆ จนกว่าจะครบตามต้องการ

8. เข้าเมนู App Store

gamecenter3

9. กดเพิ่ม version เกมอันใหม่แล้วเลือก Enable Game Center ตามรูปซะ และ Select All Achievement หรือ Leaderboard ที่สร้างมาให้ครบเพื่อรับการ Review

10. Submit App ตัวใหม่ที่ implement Game Center แล้วเรียบร้อยขึ้น Store

Unity Coding

สำหรับด้าน Coding ของ Unity ไม่จำเป็นต้องติดตั้ง Library ใดๆ เพิ่ม สามารถใช้งานได้เลยโดยมีเพียงเล็กน้อยดังนี้

using UnityEngine;
using UnityEngine.SocialPlatforms;
public class GameCenter : MonoBehaviour {
public static GameCenter instance;
public bool IsLogin = false;
void Awake() {
instance = this;
}
// Use this for initialization
void Start () {
// Authenticate and register a ProcessAuthentication callback
// This call needs to be made before we can proceed to other calls in the Social API
#if UNITY_IOS
GameCenterPlatform.ShowDefaultAchievementCompletionBanner(true);
Social.localUser.Authenticate(ProcessAuthentication);
#endif
}
// This function gets called when Authenticate completes
// Note that if the operation is successful, Social.localUser will contain data from the server.
void ProcessAuthentication(bool success)
{
if (success)
{
IsLogin = true;
}
}
}

Copy ไปสร้างไฟล์ใหม่ชื่อ Game Center แล้วลาก Script ไปแปะที่ Scene แรกสุดได้เลย ในส่วนนี้คือคำสั่ง Login user เข้า Game Center สำหรับคำสั่งที่จะส่ง progress ไปยัง Game Center ใช้แค่ดังนี้

Social.ReportProgress(achievementId, 100f, delegate(bool result) {
if (result)
Debug.Log("Successfully reported achievement progress");
});

ง่ายดายมากๆ เพียงส่ง string ตัวแปร achievementId ไปให้ตรงกับที่สร้างไว้บน iTune Connect และ parameter ตัวที่สองคือ progress ซึ่งจะมีได้ตั้งแต่ 0-100 เท่านั้น (ไม่ว่า Point Value จะเป็นเท่าไรก็ตาม) ถ้าทำสำเร็จจะมี popup เลื่อนมาแสดงว่าสำเร็จแล้ว

ในส่วนของการแสดง Game Center Interface ภายในเกมของเราทำได้โดยสั่ง

Social.ShowAchievementsUI() หรือ Social.ShowLeaderboardUI() ตามแต่ต้องการว่าจะแสดงอะไร

หากต้องการ Reset Achievement ที่ทำไปแล้วทั้งหมดทำได้โดยสั่งดังนี้

GameCenterPlatform.ResetAllAchievements( (resetResult) => {
Debug.Log( (resetResult) ? "Reset done." : "Reset failed." );
});

การทดสอบ

IMG_0152

สำหรับ iOS ตั้งแต่เวอร์ชั่น 9 เป็นต้นไป ไม่ต้องทำอะไรก็สามารถทดสอบได้เลย แต่หากเป็น iOS เวอร์ชั่นตำกว่า 9 จะต้องเข้าหน้า Setting -> Game Center เพื่อปรับ Sandbox ให้เป็น Enable ก่อนดังภาพ และต้อง Sign Out account game center เพื่อใช้งาน Account Sandbox ตอนเข้าเกม (ถ้ายังไม่มีต้องสร้างที่ iTune Connect เข้าเมนู Users and Roles -> Sandbox Testers) เมื่อเตรียมการเรียบร้อยก็เข้าเกมเราไปทดสอบ ลองดูเลย ถ้าเจอ popup Welcome to Game Center โผล่มาก็แสดงว่าสำเร็จ ถ้าไม่มีก็ต้องตรวจสอบขั้นตอนใหม่ว่ามีอะไรผิดพลาดบ้าง ขอให้โชคดีครับทุกท่าน :)

Mafia Wars by

27
May
1

What is it?

Mafia Wars เป็น social web-base game เชื่อมต่อกับเวป Social หลายๆเวป อย่าง facebook hi5 Myspace และอื่นๆ ที่คนเขียนไม่รู้จัก = =”

เนื้อหาภายในเกมเราจะเล่นเป็นมาเฟียตามชื่อเกมแหล่ะ เราก็ออกไปทำงานผิดกฎหมาย ซื้อ-ขายอสังหาริมทรัพย์เพื่อหารายได้ แล้วก็ออกไปตีหัวมาเฟียคนอื่น

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน