หลักการทำ Masking ใน Unity ด้วย Texture Mask by

27
Jun
0

หากต้องการ UI เป็นรูปลักษณะนี้

เราต้องใช้การ Mask เพื่อให้แสดงรูปที่เราต้องการในพื้นที่ของดาวเท่านั้น

โดยปกติแล้วเราก็จะทำรูป Mask เป็นแบบนี้

ส่วนนี่ก็เป็น รูปที่เราต้องการแสดงในพื้นที่ดาว

แต่ว่าเมื่อทำด้วยหลักการเดิมใน Unity แล้ว สิ่งที่ได้กลับมาจะหน้าตาแบบนี้

เนื่องจากว่า Mask ใน Unity จะทำงานลักษณะตามในภาพนี้ครับ

ตัว Mask จะเรียงต่อๆกันตามพื้นที่ของรูป

ดังนั้นเราจึงต้องทำรูป Mask ในมีพื้นที่เท่ากับตัวรูปที่เราจะใช้เลย อย่างเช่นแบบนี้(พื้นที่ที่เป็นเส้นประคือทำใสๆไว้)

การทำงานของมันก็จะได้ออกมาแบบที่เราต้องการ

[Unity] วิธีการทำให้ Grid ใน ScrollView มีระยะห่างที่ถูกต้อง by

29
Feb
0

โดยปกติแล้ว Grid ก็จะมี Cell Width กับ Height ให้เพื่อกำหนดระยะห่างระหว่าง GameObject ด้านในของเรา ซึ่งถ้าเราใช้ร่วมกับ ScrollView ของด้านในจะเลื่อนไปชิดด้านบนสุด เพราะ Grid จะทำการจัดที่ให้ดูจากของที่อยู่ด้านใน

จากรูปของด้านในของเราชิดขอบบนสุดเลย

มองจาก Scene

Script ตัวลูกของเรา สั่งให้ขนาดเล็กกว่าเพื่อเว้นช่องไฟ แต่ก็ไม่ได้เว้นด้านบนแต่อย่างใด

ซึ่งถ้าเราทำการเลื่อน ScrollView ลงเพื่อให้มีพื้นที่ ก็จะพบปัญหาว่าของด้านในของเรานั้นเวลาถูกเลื่อนออกจาก Scroll View จะถูกตัดขาดก่อนที่ควรจะเป็น เพราะเราเลื่อนช่วงการมองเห็นลงมา

ขาดจ้าาา

ทีนี้ วิธีแก้ไขก็ไม่มีอะไรมาก ให้เราสร้าง UIWidget มาครอบไว้นอก ให้ระยะเต็มกินขอบไปด้วยเลย แล้ว Grid จะเว้นพื้นที่ไว้ให้เองอัตโนมัติดังรูป

สร้าง Widget ปรับขนาดให้เกินขอบ

มองจาก Scene จะเป็นแบบนี้

เป้ะ

เพียงเท่านี้ก็จะได้ Grid ที่เลื่อนได้โดยมีตำแหน่งที่สวยงามแล้วล่ะครับ

เขียนโค้ดในโปรเจกท์ Unity ด้วยโปรแกรม Visual Studio by

30
Nov
0

โดยปกติแล้วถ้าเราลง Unity แล้วเราจะมี Editor ที่แถมมาด้วยคือ MonoDevelop ซึ่งสามารถใช้แก้ไขโค็ดตามปกติได้ แต่ด้วยที่มันแถมมาให้ฟรีอาจจะทำอะไรได้ไม่หลากหลายนัก(เช่น Split Window) ทีนี้ในช่วงหลังทาง Visual Studio ก็ได้มีการเปิดให้ Download ฟรีเช่นเดียวกันกับ Unity และทาง Visual Studio ก็ได้ทำ Tools ที่สามารถทำให้ทั้งสองโปรแกรมเชื่อมกันได้ และยังอัพเดทอยู่ตลอด ทำให้เราสามารถใช้ทั้งคู่ได้ร่วมกันโดยสมบูรณ์ โดยขั้นตอนการติดตั้งก็มีดังนี้

  • Download และ ติดตั้ง สิ่งที่ต้องใช้ (เพื่อความถูกต้อง ติดตั้งตามลำดับด้านล่าง)
  1. Unity

  2. Microsoft Visual Studio Community 2015

  3. Microsoft Visual Studio 2015 Tools for Unity

จากนั้นเราก็เข้าไปทำการเปลี่ยนตัว 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

29
Oct
0

เคยไหมเวลาที่ตัวแปรซักตัวหนึ่ง ถูกเรา 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

30
Jun
0

หน้าตา Particle ต้นทางที่นำมาใช้

หลังจากที่ได้แอบคลุกคลีกับ Particle System ใน Unity ปัญหาหลักที่เกิดจาก Particle บางเจ้าคือ พอนำมาใช้ในเกม 2D ของเราแล้วการแสดงผลดูไม่เหมือนกับที่รันในโปรเจ็คตัวอย่าง อะไรๆมันดูขาดๆไป ทำให้ได้ข้อแนะนำแรกเลยคือ ตอนนำมาใช้ในโปรเจ็คเรา ให้เปิดโหมด 3D ดูก่อน โดยส่วนตัวแนะนำให้ดูแบบ isometric จะทำให้เห็นภาพที่จะใช้กับแบบ 2D ได้ชัดเจนขึ้น พอเปิด 3D ขึ้นมาเราก็จะอ๋อเองแหละครับ หลายๆอย่างที่มันหายไปเพราะมันขนาบกับแกน X ใน 2D ของเรายังไงล่ะ!! เพราะเรามองได้มุมเดียวตลอด วัตถุบางอย่างที่มา Billboard ขนาบไปกับแกน X เราก็จะมองไม่เห็นเลยเพราะมันคือแผ่นบางๆที่ไร้ความหนา หมุนแกนอะไรก็หมุนไม่ได้ ทีนี้จะแก้อย่างไร ทำตามนี้เลยครับผม

สิ่งที่เห็นเมื่อรันในโหมด 2D ดูจืดจางไปเลยว่าไม๊

ขั้นแรกไปที่ GameObject ด้านใน ให้แก้เฉพาะตัวที่เราจะต้องแก้ ซึ่งก็คือตัวที่ไม่เห็นในจอตอนโหมด 2D นั่นเอง ทีนี้ค่าที่เราต้องแก้ก็คือเจ้า Renderer นี่เอง ปกติไม่ว่าจะใช้ Render Mode เป็น Billboard แบบไหนก็ตาม มันจะเป็นแผ่นขนาบไปกับแกน ซึ่งหมุนอะไรมันไม่ได้เลย ดังนั้นเราเลยต้องเปลี่ยนตัว Render Mode นี่แหละครับ โดยพื้นฐานให้เปลี่ยนเป็น Mesh แล้วเลือกรูปแบบ Plane ซึ่งหลังจากปรับเสร็จเราต้องซูมออกมาจัดขนาดเสียก่อนเล็กน้อย แต่ว่ามันก็ยังมองไม่เห็นใน 2D อยู่ดีนี่นา 

ตัวอย่างค่าใน Inspector ก่อนการปรับแก้ Renderer

เลือก Render Mode เป็น Mesh และเลือกเจ้าตัว Mesh เป็นแบบ Plane

ที่ยังมองไม่เห็นเพราะมันยังขนาบแกน X เหมือนเดิมยังไงล่ะ เราก็จับหมุนแกน X ซะ จากตอนแรกที่หมุนไม่ได้ พอเปลี่ยนมาเป็น Render Mode แบบนี้ก็จะหมุนได้ตามใจเลยล่ะครับ แนะนำให้ไปรันกับตัวเกมจริงแล้วดูองศาเกม แล้วปรับองศาของ Particle ให้ตรงกับ Perspective ในเกมของเรานะครับ

ปรับขนาด หมุน Rotate แกน X เท่านี้ จบ!

เสร็จ!! พร้อมใช้งาน!!

ผลลัพธ์หลังจากแก้ไขแล้วในโหมด 2D

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