[Unity C# SimpleJSON] วิธีการประกาศตัวแปร JSONClass แบบ inline by Ziah
Dec0
วันนี้จะมาพูดถึงวิธีการประกาศตัวแปร 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},
};
ง่ายๆแค่นี้แหละครับผม
ข้อควรระวังในการใช้งาน Nullable Type in CSharp by joeskb
Dec0
การใช้งานที่สะดวกขึ้นของ Nullable Type ใน CSharp ซึ่งถ้าใช้ไม่ถูกมันก็จะพาให้ Code เพี้ยนไปได้นะครับ
ขึ้นชื่อว่า Nullable ที่วิธีการเช็คค่าที่ดี ก็ไม่ควรไปใช้ == null หรือ != null ตัวอย่างเช่น
int? element;
element = foo(bar);
if(element.HasValue){
Debug.Log(element.Value);
}else{
Debug.Log("There is no Value");
}
วิธีใช้งานที่ดีคือ ให้ใช้ HasValue แทนการเช็คค่า Null
และถ้าอยู่ใน Condition HasValue ก็อย่าลืมใช้ Value ในการเรียกใช้ตัวแปรนะครับ
Happy New Year
A/B Testing by heha
Dec0
A/B Testing คือการทดสอบพฤติกรรมผู้ใช้อย่างหนึ่ง โดยจะแบ่งผู้ใช้ออกเป็นกลุ่มๆ และผู้ใช้จะเห็น UI ไม่เหมือนกัน หรือมีเพียงผู้ใช้แค่บางคนที่ได้ทดลองใช้งาน feature ทดสอบใหม่ๆ ก่อนใครตัวอย่างเช่น facebook และ twitter มักจะมีการทดสอบ feature ใหม่ๆ กับผู้ใช้ในวงแคบก่อนขยายไปให้ครบทุกคนทั่วโลก
การทดสอบในลักษณะนี้ สิ่งที่ขาดไม่ได้คือ Analytic ที่ดีเพื่อทดสอบว่าการเปลี่ยนแปลง UI ในส่วนนี้ส่งผลต่อการใช้งานดีขึ้นจริงหรือไม่ เช่น ทำให้อัตราการ Click through rate ของการ register เข้าระบบเพิ่มขุ้นหรือไม่ อัตราการสั่งซื้อหลังจากเพิ่มขนาดปุ่มซื้อเยอะขึ้นหรือไม่ เป็นต้น
ต่อไปเป็นตัวอย่าง metric ระบบค้นหาตั๋วเครื่องบินที่ถูกที่สุดของเว็บ jetradar
- Bounce Rate
- ระยะเวลาตั้งแต่เริ่มโหลดหน้าจนผู้ใช้คลิกส่วนติดต่อผู้ใช้ใดๆ เป็นครั้งแรก
- ระยะเวลาตั้งแต่เริ่มโหลดหน้าจนผู้ใช้กดปุ่มค้นหาเที่ยวบิน
- อัตราส่วนการคลิกที่ส่วนติดต่อผู้ใช้ในแต่ละชิ้นว่า ชิ้นไหนมีคนคลิกมากที่สุด
- Click through rate
ข้อมูลอิ่นๆ
- เขาไม่ใช้ library เพิ่มเติมจากภายนอก เพราะจะเพิ่ม overhead และ restriction
- application ของเขาแยกออกเป็น 2 เวอร์ชั่น แบบมี A/B Testing และแบบไม่มี โดยใช้ nginx แยกผู้ใช้ไปคนละ server
- ใช้ cookie เป็นตัวแบ่งกลุ่ม user
- test กับ user แค่ 10% ก่อน ก่อนที่จะขยายเป็น 100% ทีหลัง
- อย่าเปลี่ยน element ในหน้ามากกว่าหนึ่งอย่างต่อการทดสอบ
ข้อควรระวัง
- อย่ารัน A/B Test ในวันหยุดราชการ หรือโอกาสพิเศษต่างๆ
- ควรทำการทดสอบอย่างน้อย 24 ชม. ต่อครั้ง เพราะ user จะแสดงพฤติกรรมต่างกันในแต่ละช่วงเวลา
- user มีพฤติกรรมต่างกันบน mobile และ desktop ผลลัพธ์การทดสอบควรแยกกัน
- อย่าให้ user รู้ว่าคุณกำลังทำการทดสอบ A/B Test กับพวกเขาอยู่
Unity Debugging(1) by tosawat
Dec0
เคยไหมเวลามีปุ่มหลายๆปุ่ม หรือมี Collider หลายๆอัน ซ้อนกันอยู่ แล้วเมื่อคลิ๊กหรือกดปุ่ม แล้วไม่โดน Collider หรือปุ่มที่ต้องการ เอ้า ทีนี้จะทำยังไงล่ะ!! วันนี้เลยจะมาบอกวิธีการที่ใช้หาว่าเรากดไปโดน Collider ตัวไหนโดยใช้ RayCast กันครับ
1. ก่อนอื่นเลยให้สร้าง Script แล้วใส่ Method Update ตามนี้
void Update() {
if (Input.GetMouseButtonDown(0)) {
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
if (hit.collider != null){
Debug.LogError(hit.collider.name);
}
}
}
2. Add Script ที่เราสร้างใหม่นี้ไปใส่กับ MainCamera ของ Scene นั้นๆ
3. เมื่อเรากดไปโดน Collider ใดๆก็ตาม Script นี้จะพ่นชื่อของ GameObject ที่เรากดไปโดนมาให้ทุกครั้ง แค่นี้เราก็รู้แล้วว่า เรากดไปโดนปุ่ม หรือ Collider ตัวไหนกันแน่ครับ
สโตรครอบรูปด้วย SAI by Lynne
Dec0
บางครั้งวาดรูปใน SAI เล็กๆน้อยๆ อยากใส่ สโตรครอบรูปแต่ขี้เกียจย้ายไปทำใน photoshop
สามารถลักไก่ทำได้ง่ายๆ ด้วย selection tool จ้ะ
วาดรูปใน sai จนเสร็จแล้ว อยากจะสโตรครอบรูปนี้
ทำการ selection ให้รูปทั้งหมดโดนเลือกแบบนี้่
จากนั้นไปที่เมนู selection >> increment (1)
กด 1 ครั้งเป็นการขยายขอบเขตการเลือกออก 1 หน่วย กดไปเรื่อยๆ จนได้ความหนาที่พอใจ
สังเกตว่าเส้น selection จะขยายๆขึ้นทีละนิด จนได้ขนาดที่ต้องการ
เปิด เลเยอร์ใหม่ใต้รูป เลือกสีที่เราต้องการจะใช้ทำเส้นรอบรูปจากนั้น เทสีลงไปใน เลเยอร์ที่เราเปิดไว้ด้านล่างรูปวาด
ในตัวอย่างอยากได้เส้นรอบรูปสีส้ม ก็เทสีส้มลงไป ก็จะเป็น สโตรคสีส้มตามที่ต้องการ
** งานจะเนี๊ยบสวยขึ้นอยู่กับตอนเก็บ selection ตอนเลือก ถ้าเห็นว่าตรงไหนแหว่งขาดไม่เต็มให้เก็บให้เรียบร้อยก่อนเทสี
*** วิธีนี้ใช้ในกรณีงานไม่ได้ต้องการความแม่นยำหรือรายละเอียดมากนัก ออกแนว free hand จ้า