[Unity C# SimpleJSON] วิธีการประกาศตัวแปร JSONClass แบบ inline by

31
Dec
0

วันนี้จะมาพูดถึงวิธีการประกาศตัวแปร JSONClass แบบ inline ที่ดูจะทำง๊ายง่ายแต่หา Syntax ที่ถูกกันไม่ได้อยู่นาน ซึ่งโดยปกติแล้วเราจะประกาศตัวแปรก่อนแล้วตามด้วย .Add เพื่อเพิ่มข้อมูลเข้าไปที่ละก้อน ดังนี้


JSONClass SampleObject = new JSONClass();
SampleObject.Add("action", "attack");
SampleObject.Add("target", targetPosition.ToString());
SampleObject.Add("order", DragableUnits.SkillOrderLabel.text);

แต่ถ้าเราอยากทำเป็น InLine ก็เขียนได้ง่ายๆแค่นี้ครับ


JSONClass SampleObject = new JSONClass();
{
{"action", "attack"},
{"target", targetPosition.ToString()},
{"order", DragableUnits.SkillOrderLabel.text},
};

ง่ายๆแค่นี้แหละครับผม

วิธีการทำลูป JSONClass ของ SimpleJSON [Unity C#] by

31
Oct
1

หลังจากที่ได้รู้จักกับ JSONClass ใน Class SimpleJSON ซึ่งใช้ได้ค่อนข้างสะดวกกว่า Hashtable และ Dictionary มาก (แต่มีเงื่อนไขว่า Child ทั้งหมดเป็นได้แค่ String, Int, Float, Double, Boolean และตัวมันเอง) เนื่องจากสามารถเรียกค่าที่ซ้อนตัวมันเองได้ง่าย เช่น tempJsonClass["key"]["name"] ได้เลยซึ่งถ้าเก็บข้อมูลแบบนี้ไว้ใน Hashtable ล่ะก็ ต้องเรียก tempHashtable["key"] มาใส่ในอีก Hashtable ก่อนถึงจะเรียก key “name” ข้างในอีกทีออกมาได้ ซึ่งมีอย่างหนึงที่ SimpleJSON (จาก Link) ขาดไปคือการเรียก Keys เพื่อใช้ในการวนลูป (ซึ่งจรืงๆ SimpleJSON.cs ปกติมีฟังก์ชั่น GetEnumerator() ที่ Return Keys แต่ว่าเป็น IEnumerator ที่ต้องใช้ StartCouroutine()) เราเลยต้องเพิ่มโค๊ดส่วนหนึ่งเข้าไปใน Class SimpleJSON

เพิ่มโค๊ดด้านล่างนี้เข้าไปใน Class JSONClass ภายใน SimpleJSON.cs (Class อยู่ที่บรรทัด 696)

public Dictionary<string, JSONNode>.KeyCollection Keys{
  get { return m_Dict.Keys; }
}

แค่นี้เราก็สามารถเรียก Keys จาก JSONClass เพื่อมาใช้วน For Loop ได้แล้วล่ะครับ ตัวอย่างดังนี้

 

JSONClass tempJsonClass = SimpleJSON.JSON.Parse(result); //result เป็น String JSON ทั่วๆไป
foreach(string key in tempJsonClass .AsObject.Keys){ //ใช้ .AsObject.Keys เพื่อดึง Key ทั้งหมดได้เลย
  Debug.Log(key+":"+tempJsonClass[key]);
}

ง่ายๆเท่านี้แหละครับ

Google Analytics Plugin for Unity(Both IOS and Android) by

31
Oct
0

วันนี้เราจะมาแนะนำ วิธี Setup และวิธีใช้ Plugin ตัวนึงนะครับ ที่มีประโยชน์มากๆ และใช้ง่ายมากๆ เจ้า Plugin ตัวนี้ก็มีชื่อว่า Google Analytics Plugin for Unity นะครับ ตัวที่เราจะแนะนำนี้เป็น Version 3(Beta) นะครับ

  • ก่อนจะเริ่มคุณก็ต้องมี Google Analytics Account กันก่อนนะครับ ซึ่งเราจะไม่พูดถึงตรงนี้นะครับ- ต่อมาให้ไปโหลดเจ้า Plugin ตัวนี้ ที่นี่ ครับ
  • ถ้าหาก App ของคุณมีการขอ Permission ในการ ใช้ Internet อยู่แล้ว ก็ข้ามขั้นตอนนี้ไปได้เลยนะครับ แต่หากยังไม่มีการขอ Permission ตรงนี้ก็ให้ไปใส่แบบนี้เลยครับ
    • Android
      ให้เอา CODE นี้ไปใส่ใน AndroidManifest.xml ที่/Assets/Plugins/Android/ ข้างบน tag

       

    • IOS
      ให้นำ libraries ข่างล่างนี้ไปใส่ใน Xcode project ของคุณนะครับ:
      AdSupport.framework
      CoreData.framework
      SystemConfiguration.framework
      libz.dylib
      libsqlite3.dylib
  • ลาก prefab ชื่อ GAv3.prefab ที่อยู่ใน Folder Assets/Plugins/GoogleAnalyticsV3 ไปใส่ใน Project.
  • หน้าตา Inspector ของ Prefab GAv3 จะเป็นแบบนี้นะครับ
    Untitled
    จะอธิบายว่าในแต่ละช่องคืออะไร และควรใส่อะไรลงไปบ้างนะครับ

    • Android Tracking Code – คือ Tracking Code ของ Android ครับ ก็ให้ใส่ Tracking Code ที่ได้จาก Google Analytics ครับ ถ้าหากไม่ใส่ และ Build Application ลงไปบน Android มันก็จะไม่มีการ Tracking ครับ
    • IOS Tracking Code – คือ Tracking Code ของ IOS ครับ ก็ให้ใส่ Tracking Code ที่ได้จาก Google Analytics ครับ ถ้าหากไม่ใส่ และ Build Application ลงไปบน IOS มันก็จะไม่มีการ Tracking ครับ
    • Other Tracking Code – คือ Tracking Code ของอื่นๆครับ เช่น PC หรือ Unity Editor ครับ ก็ให้ใส่ Tracking Code ที่ได้จาก Google Analytics ครับ ถ้าหากไม่ใส่มันก็จะไม่มีการ Tracking ครับ
    • Product Name – คือชื่อที่จะไปปรากฏอยู่ใน Google Analytics ครับ
    • Bundle Identifier – ให้ไปเอามาจาก Build Settings ->Player Settings->Other Settings ครับ
    • Bundle Version – ให้ไปเอามาจาก Build Settings ->Player Settings->Other Settings ครับ
    • Dispatch Period – อันนี้ไม่ต้องไปยุ่งกับมันครับ
    • Sample Frequency – อันนี้ไม่ต้องไปยุ่งกับมันครับ
    • Log Level – คือ config ที่จะให้ตัว Plugin มันพ่น Log ออกมาในระดับไหนครับ
      • ERROR – พ่นแต่ Error ครับ
      • WARNING – พ่น Error และ Warning ครับ
      • INFO – พ่น Error, Warning และ Info ครับ
      • VERBOSE – พ่นทุกอย่างในโลกครับ
    • Anonymize IP – ไม่ต้องติ๊กครับ
    • Dry Run – ไม่ต้องติ๊กครับ
    • Session Timeout – เวลาของ Session ครับ ใช้ 1800 แหละดีแล้วครับ
  • สร้าง C# Script ชื่อ และ Copy Code นี้ไปใส่

    public class GoogleAnalytics : MonoBehaviour {

    public static GoogleAnalytics instance;

    public GoogleAnalyticsV3 googleAnalytics;

    void Awake(){
    DontDestroyOnLoad (gameObject);

    instance = this;
    }

    public void LogScreen(string title){
    googleAnalytics.LogScreen(title);
    }
    }

  • ต่อไปเป็นวิธีการใช้นะครับ การใช้ก็ง่ายนิดเดียวครับ ใช้แบบนี้ GoogleAnalytics.instance.LogScreen(“Enter You Tracking String Here”); ครับ

วิธีง่ายๆในการใส่อีเวนท์ของ NGUI Checkbox ว่าติ้กอยู่หรือไม่ by

30
Sep
0

ก่อนอื่นเรามาดูปุ่ม NGUI Checkbox สองปุ่มที่นำมาใช้ในตัวอย่างกันก่อนครับ

ปุ่มเพศชาย กำหนด Function Name ไว้ชื่อ OnGenderSelectMale

 

ปุ่มเพศหญิง กำหนด Function Name ไว้ชื่อ OnGenderSelectFemale

หลังจากที่เราสร้าง NGUI Checkbox ไปแล้ว ส่วนที่จะกำหนดฟังก์ชั่นที่จะใช้เรียกเมื่อ Check (ติ้ก) มีการเปลี่ยนแปลงคือ Property ที่ชื่อ Function Name ซึ่งโดยปกติแล้วจึงใส่โค้ดให้กับฟังก์ชั่น ดังตัวอย่าง

เหมือนจะถูก แต่ยัง! ยังไม่ถูก

แต่เมื่อรันแล้วปัญหาจะเกิดขึนที่ฟังก์ชั่นนั้นถูกเรียกทุกครั้งที่ถูก Check (ติ้กเลือก) ซึ่งดูเหมือนจะถูก แต่มันดันไปเรียกตอน Uncheck (ติ้กออก) ด้วย ซึ่งทำให้โค้ดนั้นผิดพลาด

 

ทำให้บางคนเลือกที่จะทำ Flag ไว้เพื่อเลือก หรืออะไรก็ตามแต่ ซึ่งยากกว่าแน่ๆ โดยมองข้ามไปว่า จริงๆแล้วชื่อฟังก์ชั่นที่เราใส่ใน Property เจ้า Function Name เนี่ย มันส่ง Boolean ว่า Check อยู่หรือเปล่ามาให้ด้วย!! รู้แค่นี้ทุกอย่างก็ง่ายแล้วใช่ไม๊ล่ะครับ โค้ดที่ถูกแบบง๊ายยย ง่าย จึงออกมาเป็นแบบนี้ครับ

แค่นี้แหละ ง่ายๆ ถ้าไม่ติ้กอยู่ก็ออกจากฟังก์ชั่นไปเลยไป!

ง่ายนิดเดียวแถมประหยัดเวลาได้อีกเยอะ ทำให้มีเวลาเหลือไปทำอย่างอื่นได้ แต่ตอนนี่ จขบ. ขอตัวไปเสียใจกับเจสซิก้าที่ออกจากเกิร์ลส์เจ็นก่อนนะครับบบ โฮฮฮ..

จะรู้ได้อย่างไร ว่าเราห่างกันนานเท่าไหร่แล้ว by

29
Aug
0

แนะนำวิธีใช้งาน function date_diff ใน php นะครับ
เป็นคำสั่งสำหรับบ่งชี้ความแตกต่างกันระหว่าง datetime object สองค่า
ย้ำว่าเป็น object นะครับ ด้านล่างนี้คือตัวอย่างวิธีสร้างครับ
$now = new DateTime('now');
$expire = new DateTime('1 week');
function นี้จะ return เป็น object ของมันเองอีกครับ ให้เอาตัวแปรมารอรับด้วยครับ
$diff = date_diff($now,$expire);
ซึ่งเราสามารถนำมาสร้างรูปแบบสำหรับการแสดงผลได้เช่น
if ($diff->days > 0) {
return "{$diff->days} days";
} elseif ($diff->hours > 0) {
return "{$diff->hours} hours";
} else {
return "{$diff->minutes} minutes";
}

ซึ่งตรงนี้แล้วแต่จะประยุกต์ใช้งานเลยครับ ตั้งแต่หน่วย วินาที ไปถึง ปี เลยครับ

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