หลักการทำ Masking ใน Unity ด้วย Texture Mask by akara
Jun0
หากต้องการ UI เป็นรูปลักษณะนี้
เราต้องใช้การ Mask เพื่อให้แสดงรูปที่เราต้องการในพื้นที่ของดาวเท่านั้น
โดยปกติแล้วเราก็จะทำรูป Mask เป็นแบบนี้
ส่วนนี่ก็เป็น รูปที่เราต้องการแสดงในพื้นที่ดาว
แต่ว่าเมื่อทำด้วยหลักการเดิมใน Unity แล้ว สิ่งที่ได้กลับมาจะหน้าตาแบบนี้
เนื่องจากว่า Mask ใน Unity จะทำงานลักษณะตามในภาพนี้ครับ
ตัว Mask จะเรียงต่อๆกันตามพื้นที่ของรูป
ดังนั้นเราจึงต้องทำรูป Mask ในมีพื้นที่เท่ากับตัวรูปที่เราจะใช้เลย อย่างเช่นแบบนี้(พื้นที่ที่เป็นเส้นประคือทำใสๆไว้)
การทำงานของมันก็จะได้ออกมาแบบที่เราต้องการ
[Unity] วิธีการทำให้ Grid ใน ScrollView มีระยะห่างที่ถูกต้อง by Ziah
Feb0
โดยปกติแล้ว Grid ก็จะมี Cell Width กับ Height ให้เพื่อกำหนดระยะห่างระหว่าง GameObject ด้านในของเรา ซึ่งถ้าเราใช้ร่วมกับ ScrollView ของด้านในจะเลื่อนไปชิดด้านบนสุด เพราะ Grid จะทำการจัดที่ให้ดูจากของที่อยู่ด้านใน
ซึ่งถ้าเราทำการเลื่อน ScrollView ลงเพื่อให้มีพื้นที่ ก็จะพบปัญหาว่าของด้านในของเรานั้นเวลาถูกเลื่อนออกจาก Scroll View จะถูกตัดขาดก่อนที่ควรจะเป็น เพราะเราเลื่อนช่วงการมองเห็นลงมา
ทีนี้ วิธีแก้ไขก็ไม่มีอะไรมาก ให้เราสร้าง UIWidget มาครอบไว้นอก ให้ระยะเต็มกินขอบไปด้วยเลย แล้ว Grid จะเว้นพื้นที่ไว้ให้เองอัตโนมัติดังรูป
เพียงเท่านี้ก็จะได้ Grid ที่เลื่อนได้โดยมีตำแหน่งที่สวยงามแล้วล่ะครับ
เขียนโค้ดในโปรเจกท์ Unity ด้วยโปรแกรม Visual Studio by Ziah
Nov0
โดยปกติแล้วถ้าเราลง Unity แล้วเราจะมี Editor ที่แถมมาด้วยคือ MonoDevelop ซึ่งสามารถใช้แก้ไขโค็ดตามปกติได้ แต่ด้วยที่มันแถมมาให้ฟรีอาจจะทำอะไรได้ไม่หลากหลายนัก(เช่น Split Window) ทีนี้ในช่วงหลังทาง Visual Studio ก็ได้มีการเปิดให้ Download ฟรีเช่นเดียวกันกับ Unity และทาง Visual Studio ก็ได้ทำ Tools ที่สามารถทำให้ทั้งสองโปรแกรมเชื่อมกันได้ และยังอัพเดทอยู่ตลอด ทำให้เราสามารถใช้ทั้งคู่ได้ร่วมกันโดยสมบูรณ์ โดยขั้นตอนการติดตั้งก็มีดังนี้
- Download และ ติดตั้ง สิ่งที่ต้องใช้ (เพื่อความถูกต้อง ติดตั้งตามลำดับด้านล่าง)
จากนั้นเราก็เข้าไปทำการเปลี่ยนตัว Editor หลักของเราโดย เปิด Unity ขึ้นมาแล้วไปที่เมนู Edit -> Preferences…
จากนั้น ไปที่แท็บ External Tools หัวข้อ External Script Editor เลือกเป็น Visual Studio 2015
เท่านี้เราก็จะใช้ Visual Studio เป็น Editor หลักของเราแล้วล่ะครับ
*เพิ่มเติม สำหรับ Unity รุ่นเก่าหรือ Visual Studio รุ่นเก่า เราต้องทำการ Import Package ด้วย (เพราะยังไม่สนับสนุนเท่าปัจจุบัน) โดยไปที่เมนู Assets -> Import Package -> Visual Studio 2015 Tools
จากนั้นก็เข้าที่เมนู Visual Studio Tools -> Open in Visual Studio เท่านี้ครับ
cr. https://www.visualstudio.com/en-us/features/unitytools-vs.aspx
Unity Debug Tips ตอนที่ 1 by tosawat
Oct0
เคยไหมเวลาที่ตัวแปรซักตัวหนึ่ง ถูกเรา set เป็นค่าหนึ่ง แล้วมันไม่ยอมเปลี่ยน(อันที่จริงแล้ว ต้องบอกว่ามันเปลี่ยนแล้ว แต่โดน code ส่วนอื่นแก้ทับลงไปอีกรอบ) เป็นสาเหตุให้โปรแกรมของเรามันทำงานไม่เหมือนกับที่เราตั้งใจไว้
วันนี้จะมานำเสนอวิธีแก้ปัญหา ที่จะทำให้การ debug ปัญหาทำนองนี้เร็วขึ้นมากกกครับ
วิธีนี้จะแนะนำให้ใช้ get set ให้เป็นประโยชน์ครับ สมมุติว่าตัวแปรเจ้าปัญหาของเราประกาศไว้ว่าอย่างนี้
public int myVar;
ให้เราแก้เป็น
public int temp;
public int myVar{
get{
return temp;
}
set{
Debug.Log("myVer is set to "+value);
temp = value;
}
}
ทีนี้เมื่อมีการแก้ตัวแปร myVar เมื่อไหร่ มันก็จะ Debug.Log ออกมาให้เราเห็นพร้อมกับ stack trace ด้วย ทำให้เรารู้แล้วว่า code ส่วนไหนที่แก้ตัวแปรนี้ไปบ้างงงง
[Unity] วิธีการแก้ไขเมื่อนำ 3D Particle มาใช้ในโหมด 2D แล้วแสดงผลไม่ตรง by Ziah
Jun0
หลังจากที่ได้แอบคลุกคลีกับ Particle System ใน Unity ปัญหาหลักที่เกิดจาก Particle บางเจ้าคือ พอนำมาใช้ในเกม 2D ของเราแล้วการแสดงผลดูไม่เหมือนกับที่รันในโปรเจ็คตัวอย่าง อะไรๆมันดูขาดๆไป ทำให้ได้ข้อแนะนำแรกเลยคือ ตอนนำมาใช้ในโปรเจ็คเรา ให้เปิดโหมด 3D ดูก่อน โดยส่วนตัวแนะนำให้ดูแบบ isometric จะทำให้เห็นภาพที่จะใช้กับแบบ 2D ได้ชัดเจนขึ้น พอเปิด 3D ขึ้นมาเราก็จะอ๋อเองแหละครับ หลายๆอย่างที่มันหายไปเพราะมันขนาบกับแกน X ใน 2D ของเรายังไงล่ะ!! เพราะเรามองได้มุมเดียวตลอด วัตถุบางอย่างที่มา Billboard ขนาบไปกับแกน X เราก็จะมองไม่เห็นเลยเพราะมันคือแผ่นบางๆที่ไร้ความหนา หมุนแกนอะไรก็หมุนไม่ได้ ทีนี้จะแก้อย่างไร ทำตามนี้เลยครับผม
ขั้นแรกไปที่ GameObject ด้านใน ให้แก้เฉพาะตัวที่เราจะต้องแก้ ซึ่งก็คือตัวที่ไม่เห็นในจอตอนโหมด 2D นั่นเอง ทีนี้ค่าที่เราต้องแก้ก็คือเจ้า Renderer นี่เอง ปกติไม่ว่าจะใช้ Render Mode เป็น Billboard แบบไหนก็ตาม มันจะเป็นแผ่นขนาบไปกับแกน ซึ่งหมุนอะไรมันไม่ได้เลย ดังนั้นเราเลยต้องเปลี่ยนตัว Render Mode นี่แหละครับ โดยพื้นฐานให้เปลี่ยนเป็น Mesh แล้วเลือกรูปแบบ Plane ซึ่งหลังจากปรับเสร็จเราต้องซูมออกมาจัดขนาดเสียก่อนเล็กน้อย แต่ว่ามันก็ยังมองไม่เห็นใน 2D อยู่ดีนี่นา
ที่ยังมองไม่เห็นเพราะมันยังขนาบแกน X เหมือนเดิมยังไงล่ะ เราก็จับหมุนแกน X ซะ จากตอนแรกที่หมุนไม่ได้ พอเปลี่ยนมาเป็น Render Mode แบบนี้ก็จะหมุนได้ตามใจเลยล่ะครับ แนะนำให้ไปรันกับตัวเกมจริงแล้วดูองศาเกม แล้วปรับองศาของ Particle ให้ตรงกับ Perspective ในเกมของเรานะครับ
เสร็จ!! พร้อมใช้งาน!!