[UNITY] [Spine] Separator by

31
May
0

การใช้ Spine ร่วมกับ UNITY นั้นทำให้การทำงานง่ายขึ้นมาก แต่ก็มีหลายอย่างที่ถูกจำกัดไว้ ถ้าหากเราอยากแบ่ง Order in Layer ของ Spine ให้มีหลายชั้น เพื่อที่จะได้เอา Particle หรือ Object อื่นๆมาสอดไว้ตรงกลางก็จะต้องทำตามขั้นตอนดังนี้

  • หลังจากสร้าง Spine GameObject (skeleton) แล้วเราก็จะมี หน้าตาแบบนี้ และประกอบด้วย Script ดังรูปนี้1
  • หากอยากให้ Spine GameObject นี้มีการแบ่ง Layer ให้คลิ๊กขวาที่ Skeleton Animation (Script)2
  • และเลือก Add Skeleton Render Separator3
  • จะได้ Script ใหม่โผล่ออกมาแบบนี้4
  • ให้แก้เลข Size ใต้หัวข้อ Separator Slot Names ให้เป็น 15
  • จะมี Element0 มาให้เลือก ตัวเลือกจะเรียงจากชั้นล่างสุดไปถึงชั้นบนสุดให้อยู่แล้ว ให้เราเลือกมา 1 อัน6
  • เมื่อเลือกแล้วให้คลิ๊กที่ Add the missing renderer7
  • จะได้ผลลัพท์ดังนี้8
  • จะเห็นว่า Spine GameObject ของเรามี ลูกโผล่ออกมา 2 ตัว และเมื่อลอง Play และ ดูที่ลูกของ Spine GameObject ก็จะเห็นดังนี้10 9

ปอลิง. สำคัญมาก หากอยากแยก Layer ระหว่าง Shadow และส่วนประกอบอื่นๆ ห้ามเลือก Shadow ให้เลือกของที่อยู่เหนือ Shadow ไป 1 ชิ้น จึงจะได้ผลลัพท์แบบที่ต้องการรรรรร

Unity3d trick: เราจะเก็บค่าตัวแปรใน Inspector ไม่ให้หายไปเมื่อเราเปลี่ยนชื่อตัวแปรได้อย่างไร? by

31
May
0

ไม่ว่าใครใช้ Unity ก็คงจะมีปัญหาโลกแตกนี้คืออยากจะเปลี่ยนชื่อตัวแปร public ที่ปรากฏใน Inspector แต่ปรากฏว่าค่าต่างๆ ที่เคยใส่ไว้ รวมไปถึง GameObject ต่างๆ ที่เคยลากมาแปะลงในตัวแปรไว้จะหายไปหมด ถ้าเปลี่ยนชื่อตัวแปรเป็น 10 ตัว ค่าทั้ง 10 ตัวก็จะหายไปหมด มันช่างน่าเบื่อเสียจริงๆ ที่ต้องมาใส่ค่าพวกนี้ใหม่ วันนี้เรามีทางออกสำหรับปัญหานี้แล้ว สมมติเรามี Code ดังนี้

inspector2

ก็จะได้ Inspector ดังรูป

inspector

ถ้าอยากจะเก็บค่าตัวแปรเดิมไว้ก็ทำแบบนี้ครับ

inspector3

ก็จะได้แบบนี้

inspector4

หลังจากนั้นเอาส่วนของ [FormerlySerializedAs("MyValue")] กับ [FormerlySerializedAs("MyGameObject")] ออกก็ได้ค่าก็จะยังคงอยู่ตลอดไป เป็นไงละครับ ง่ายดีไหม :)

ที่มา: https://www.facebook.com/GameTorrahod/photos/pcb.1101786133215513/1101784646548995/?type=3&theater

ข้อควรระวังในการใช้ SimpleJSON by

31
May
0

เนื่องจากทีมได้ใช้ SimpleJSON กันมานานระดับนึงแล้ว แต่ก็ยังมีบั๊คโผล่มาจากการเขียนโค้ดเพิ่มอยู่บ้างบางครั้ง จากเจ้า SimpleJSON ซึ่งมันง่ายสมชื่อ จนทำให้การใช้งานมันสร้างบั๊คแบบไม่รู้ตัวได้ง่ายมากๆ คือการ .Asใดๆ ก็ตามของมัน (ie. .AsInt .AsFloat) ที่มันจะสร้างตัวแปรใหม่มากำหนดค่าเริ่มต้นมาให้เลยทั้งๆที่มันไม่มี index นี้อยู่หรือเป็น null ส่วนมากมักเกิดจากการเช็คเงื่อนไข if ทั่วๆไปที่จะชอบเผลอใส่ .AsInt เข้ามา ทำให้มันมีค่าขึ้นมาเองทันที และการเข้าถึงตัวแปรชั้นลึกๆแล้ว .AsInt โดยที่ไม่เช็คก่อนว่ามีหรือเปล่า ก็จะสร้างขึ้นมาให้เช่นกัน และอีกเรื่องคือการเช็คว่าเป็น JSONClass เปล่าๆ หรือ JSONArray เปล่าๆหรือไม่ ถ้าเช็คไม่ครบก็จะผิดเงื่อนไขเอาง่ายๆ

  • เรามาเริ่มที่เรื่องแรกก่อน

สิ่งที่ควรหลีกเลี่ยงเลยคือการใช้ .Asใดๆ (หลังจากนี้จะใช้ .AsInt เป็นหลัก) เพื่อดึงค่าตัวเลขที่เราไม่แน่ใจว่ามี index นี้หรือยัง จะทำให้ข้อมูลผิดพลาด

แบบที่ควรหลีกเลี่ยง

JSONNode test = new JSONClass();
int id = test["id"].AsInt; //จะทำให้ index ที่ชื่อ id เป็น 0 ทั้งๆที่ไม่เคยกำหนดค่ามาก่อน
if (test["number_id"].AsInt >= 0){
//ถ้าเช็คแบบนี้เงื่อนไขนี้จะถูกเสมอเพราะโดนกำหนดค่า 0 ตอน .AsInt
}

สิ่งที่ควรทำ

JSONNode test = new JSONClass();
int id = -1;
if (test["id"] != null)
id = test["id"].AsInt //จะทำให้ id ถูกต้องโดยจะเป็น -1 ถ้าไม่มี index ดังกล่าว
if (test["number_id"] !=null && test["number_id"].AsInt >= 0){
//ถ้าเช็คแบบนี้เงื่อนไขนี้จะไม่พลาดเข้าเงื่อนไขเมื่อไม่ได้กำหนด index number_id มา
}

  • ถัดมาเรื่องการเช็ค JSONArray และ JSONClass เปล่า ทั้งคู่นี้ใช้การเช็ค Empty ต่างกัน

JSONArray testArray = new JSONArray();
//ใช้
if (testArray.AsObject == null)


JSONClass testObject = new JSONClass();
//ใช้
testObject.AsObject != null && testObject.AsObject.Count > 0

จากที่เห็นผิดนิดเดียวก็เกิดบั๊คกระจุยกระจายได้ ดังนั้นระมัดระวังกันด้วยนะครับ SimpleJSON ใช้ง่าย บั๊คก็ง๊ายง่ายเช่นกัน

Trello Shortcut by

30
Apr
1

ผมก็ใช้ Trello มาได้ 3 ปีแล้วมั้ง แต่ไม่เคยดู shortcut มันเลย เรื่องเริ่มมาจากผมอยากจะแทรก card ไว้ที่ด้านบนสุดของแต่ละ Column เพื่อแสดงว่าเป็น Priority ของสิ่งที่ต้องทำก่อน เลย Search Google ได้ใจความว่ามีสองวิธี วิธีแรกคือกดที่มุมขวาบนแล้วกด Add Card ก็จะโผล่มาบนสุดให้เอง (ง่ายๆ แค่เนี้ย? ปกติกดแต่จากด้านล่างเลยโผล่ล่างสุดตลอด) วิธีที่สองคือใช้ shortcut ครับ โดยเอา Mouse ไปชี้ที่ตำแหน่งการ์ดที่ต้องการจะแทรกระหว่างกลางแล้วกดปุ่ม N มันก็จะ New Card มาที่ระหว่างกลางให้โอ้!!! มันง่ายอะไรเพียงนี้!!! เลยเป็นที่มาของ blog นี้ครับ สรุป shortcut ที่น่าสนใจ

trello1

 

  • N – สั่งเพิ่ม Card อย่างที่บอกข้างบนตามตำแหน่ง cursor mouse
  • ปุ่มลูกศร – ย้าย cursor ไปเลือกการ์ดต่างๆ เหมาะสำหรับทำอะไรซ้ำๆ กับการ์ดเรียงทีละอัน
  • / – เหมือนสั่งเตรียมพิมพ์ที่กล่อง search (มาจาก vi ชัดๆ)
  • C – Archive card
  • E – Quick Edit ที่ card ที่ cursor mouse ชี้อยู่
  • Enter – เปิด Card
  • L – ใส่ label สีต่างๆ โดยต้องกด L ตามด้วย 0-9 เป็นเลขสีตามลำดับ
  • M – Add/Remove Member
  • < > – ขยับ Card ไปคอลัมภ์ซ้ายหรือขวา
  • Q – เลือก Filter โชว์เฉพาะการ์ดที่ assign หน้าเรา
  • Space – ใส่ชื่อตัวเองลง Card
  • T – Edit Title
  • X – ปิด Filter ทั้งหมด
  • ? – เปิดดูว่ามี shortcut อะไรบ้างให้เลือก
  • @ – Auto Complete Member โผล่มาให้เลือก
  • # – Auto Complete Label โผล่มาให้เลือก

วิธีแบ่งครึ่งหน้าจอซ้ายขวาเพื่อดูโค็ดไฟล์เดียว! (Sublime / Visual Studio) by

30
Apr
0

ปกติแล้วเวลาผมเขียนโค็ดผมมักใช้ฟังก์ชั่นแยกบ่อยๆ ทำให้ต้องกระโดดข้ามไปมาในไฟล์เดียวกันเพื่่อเขียนหรือแก้อะไรใกล้ๆกัน ทำให้ต้องใช้การแบ่งจอ ซ้ายขวา มองไฟล์เดียวกันตลอด จริงๆ Sublime ใช้มาตลอดอยู่แล้วแต่เพิ่งเจอของ Visual Studio (ซึ่งจริงๆทำง่ายกว่าอีก //ฮา) เลยมาบอกต่อครับ

Sublime

  • ไปที่ View -> Layout -> Columns: 2 หรือกด Alt+Shift+2 ได้เลยครับ

  • จอก็แบ่งออกเป็นสองข้างแล้ว ถัดไปก็ต้องสร้างจอที่ซ้ำไฟล์มา

  • ไปที่ File -> New View into File

  • เท่านี้ก็จะสามารถเขียนโค้ดสองจอได้แล้ววว

Visual Studio

  • ไปที่ Window -> New Vertical Tab Group

  • หรือ จะลากจอไปชิดด้านขวา แบบในรูปนี้ก็ได้ฮะ

  • ทีนี้จอก็แบ่งจอได้แล้ว ที่เหลือก็เปิดไฟล์ซ้ำ

  • เลือกหน้าที่ต้องการแยกไว้ แล้วไปที่ Window -> New Window

  • เท่านี้ก็จะได้โค้ดสองจอใน VS แล้ววว

 

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