[Lua] ฟังก์ชั่นรีเทิร์นหลายค่าและฟังก์ชั่นแบบรับค่าไม่ต้องครบตาม Arguments by Ziah
Mar0
เนื่องจากเพิ่งมาเขียน Lua เดือนนี้ ก็มีโค้ดที่เกี่ยวกับฟังก์ชั่นที่ช่วยให้การทำงานสะดวกสบายขึ้นมานำเสนอฮะ
อันแรก ฟังก์ชั่นในลัวร์รีเทิร์น 2 ค่า อันนี้ไม่แน่ใจว่าภาษาไหนทำได้บ้างแต่จากที่เคยเขียนมาเพิ่งเจอในภาษานี้ครับ อเมซซิ่งมากๆ
local a,b = 1,2
function test2Params(x,y)
return x+1,y+2 --รีเทิร์นสองพารามิเตอร์
end
print('local a,b:'..a..','..b)
a,b = test2Params(a,b)
print('test2Params(a,b):'..a..','..b)
ถัดมาอันนี้เป็นวิธีอ้อม เนื่องจากเราไม่สามารถกำหนด Default Parameter ลงไปในการประกาศฟังก์ชั่นตรงๆ แบบ PHP/AS3 ได้ และยังไม่สามารถ Override ฟังก์ชั่นแบบ C# ได้ แต่สามารถรับไม่ครบมาเช็คค่าด้านในแบบนี้ดื้อๆได้เลยครับ
function testOptionalParams(x,y) -- รับสองตัวแปร
if (y == nil ) then -- ถ้าส่งมาแค่ x (y ไม่ส่งมา) ก็ให้ y เป็นสักค่า
y = 0;
end
return x+y
end
a = testOptionalParams(a)
print('testOptionalParams(a):'..a)
a = testOptionalParams(a,b)
print('testOptionalParams(a,b):'..a)
จากโค้ดทั้งสองชุดด้านบน รันแล้วจะได้ผลลัพธ์ดังนี้ครับ
local a,b:1,2
test2Params(a,b):2,4
testOptionalParams(a):2
testOptionalParams(a,b):6
(English) C# Enumeration extension method by joeskb
Mar0
การใช้ Enumeration เป็นตัวแปรแบบจำกัดก็มีใช้งานให้เห็นกันทั่วไป
เรามาลองเพิ่มความสามารถให้กับตัวแปลด้วยการเพิ่ม method สำหรับตัวแปรชนิดนี้อีกหน่อยดีกว่าครับ
วิธีนี้เรียกว่าการสร้าง Enumeration extension method ยกตัวอย่างการประกาศค่าของเพศ
public enum Gender{MALE,FEMALE}
เนื่องจาก Enumeration ไม่มี Constructor เราก็สามารถใช้การ Parse string เข้าไปให้ method return Gender กลับออกมาแทนได้
วิธีประกาศดังนี้
public static class GenderExtensions{
public static Gender Parse(string data){
switch(data){
case "Male":
case "male":
case "m":
case "M": return Gender.Male;
case "Female":
case "female":
case "f":
case "F":return Gender.Female;
default: throw new Exception("Unknown gender key:"+data);
}}}
เวลาเรียกใช้งานก็จะสามารถใช้ public Gender PlayerGender = GenderExtension.Parse(“male”); ได้เลย
วิธีประกาศ method ที่อ้างกับค่าของ Enum เองมีดังนี้
public static string BrotherSister(this Gender data){
if(data == Gender.MALE){
return "brother";
}else{return "sister";}
}
เวลาเรียกใช้งานก็สามารถเรียกผ่าน PlayerGender.BrotherSister() ได้เลย
การลงสีหน่มน้มอย่างง่ายด้วยselection by Nat Isaramongkolpan
Mar0
วันนี้เราจะมาลงสีหน่มน้มอย่างรวดเร็วด้วยวิธีselectionกันนะฮะ
ก่อนอื่นเราต้องมีภาพหน่มน้มก่อน ก็ลงสีพื้นเรียบๆให้เรียบร้อย
ตอนนี้ก็อาจจะยังดูแบนๆอยู่ก็ใช้บรัชพ่นริมๆนิดหน่อย
จากนั้นเราก็จะใช้เครื่องมือชิ้นนี้ในการทำselectionนะครับ สามารถใช้เม้าท์ปากกาลากได้ตามใจต้องการ
ก็ลากselectionลงไป
เอาบรัชพ่นเลยครับ ไม่ต้องกังวลเรื่องออกนอกเส้นเต็มที่ก็มาลบๆเก็บนิดหน่อย
เสร็จแล้วจะได้ตามนี้ เย้! ถ้าเป็นด้านหน้าตรงๆเห็นหน่มน้มทั้งสองข้างก็ทำเหมือนกันกับอีกข้างเสีย
เสร็จแล้วก็ลงแสงลงเงาตามใจชอบ เราก็จะได้หน่มน้มมาในเวลาอันสั้น โอววพระเจ้า
ลองๆกันดูนะครับประหยัดเวลาได้เยอะ จะมุมตรงมุมเอียงก็ใช้วิธีนี้ได้ แต่ถ้าต้องการหน่มน้มHD อันนี้ก็ต้งเสียเวลาเพ้นท์เวลาเกลี่ยกันเองเด้อ
วิธีการ selection ให้ขยายจนทับเส้นใน PS by Tae Romphopark
Mar0
เคยมั้ย selection เส้นที่วาดแต่เมื่อเทสีลงไปยังเห็นขอบสีของBGอยุ่ มีวิธีทำให้ขยายจนทับเส้นที่วาดได้ครับ มาดูกัน
ลองดูตัวอย่างก่อน นี้คือการselectionที่ขอบไม่สนิจนะ (ในที่นี้ผมใช้BGสีเขียวเพื่อจะได้เห็นภาพได้ชัด)
ขั้นแรกลองวาดภาพเส้นของตัวเองมาซัก 1 ภาพ(ให้เส้นสนิจกันทุกจุด)
จากนั้นให้กดที่คำสั่ง magic wand tool(ตามวงกลมสีแดง)
จากนั้นลองคลิกลงไปตรงที่ว่างของเส้น (อันนี้ผมเลือกคลิกที่ส่วนผม) จะขึ้นเป็นเส้นปะselectionแบบนี้
จากนั้นให้กด alt+s > m > e จะขึ้น Pop up แบบนี้
จากนั้นให้ปรับตรงค่า Expand by จาก 1 เป็นซัก 3 (ยิ่่งปรับเยอะยิ่งขยายขึ้น)
จากนั้นลองเทสีดู จะเห็นว่าจะไม่มีขอบBGอีกแล้ว
ลองเทียบกันแบบลงใช้กับไม่ใช้
ทั้งนี้ทั้งนั้นขึ้นอยุ่กับเส้นที่วาดด้วย หวังว่าจะมีประโยชน์ไม่มากก็น้อยนะครับ
ติดตั้ง Facebook SDK บน Unity อย่างไร by heha
Mar0
- Download เวอร์ชั่นล่าสุดจาก https://developers.facebook.com/docs/unity/downloads
- Double Click Unity package ใส่ใน Project ที่เราจะ setup
- เมื่อสำเร็จแล้วจะมีเมนู Facebook โผล่มาอยู่ข้างๆ Component (ของผมลง NGUI ด้วย เลยอยู่ข้าง NGUI)
- คลิก Facebook -> Edit Settings แล้วดูที่ Inspector กรอก App Name (อะไรก็ได้) และ App Id จาก Facebook มีสองเวอร์ชั่น (production, development) ก็ใส่เพิ่มได้สองอัน แล้วจะเลือกอันที่จะใช้ได้
- สังเกตว่ามีการเตือนตามรูปด้านล่างรึเปล่า ถ้ามีให้ทำตามข้อ 6-9 ต่อ ถ้าไม่มีข้ามไปข้อ 10 เลย (ส่วนใหญ่จะเกิดกับเครื่อง Windows)
- Download OpenSSL จาก http://slproweb.com/products/Win32OpenSSL.html โดยเลือก Win32 OpenSSL vx.x.x หรือ Win64 OpenSSL vx.x.x ตามแต่ระบบปฏิบัติการของเรา (อย่าเลือก Light version ให้ลงตัวเต็ม) แล้ว Install ให้เรียบร้อย
- จะ Install OpenSSL ได้ต้องใช้ Microsoft Visual C++ 2008 Redistributable Package (x86) ด้วยนะ โหลดมาให้เรียบร้อยถ้ายังไม่ได้ลงไว้
- เข้า Control Panel > System > Advanced system settings > Environment Variables เลือก Variable “Path” ใน “System variables” พิมพ์ “;C:\OpenSSL-Win64\bin” (ค่าตรงนี้อาจไม่เหมือนกัน ขึ้นกับว่าตอน Install เรา Install OpenSSL ไว้ที่ไหนก็ให้ใส่ Path ไปหาที่นั่นต่อด้วย \bin) ต่อท้าย ไปแล้วเซพค่า ปิดเปิด Unity ใหม่
- ถ้าขึ้นว่า Keytool not found ต้อง Add Path JDK ลงตัวแปร Path ต่อท้ายตามในข้อ 8 ไปด้วย เช่น “C:\Program Files\Java\jdk1.7.0_45\bin” (เปลี่ยนเลขเวอร์ชั่นและ path ให้ถูกต้องตามที่ setup ไว้)
- สังเกตที่ Debug Android Key Hash หากมีการ Install OpenSSL ไว้ถูกต้องจะมีตัวหนังสือ Hash แสดงออกมา หาก Install ผิดพลาดจะไม่เห็นตัวหนังสืออะไรเลย ให้พยายาม Install OpenSSL ใหม่ ให้ Copy เอาไว้
- กดปุ่ม Regenerate Android Manifest ข้างใต้หนึ่งครั้ง
- เข้าไปที่ https://developers.facebook.com/ เลือก App ที่เราสร้างไว้ อันเดียวกับ app id ที่กรอกไปก่อนหน้า แล้วเข้าเมนู Settings ทางซ้าย
- ดูส่วนที่เป็น Android ถ้ายังไม่มีก็กด Add Platform ซะ กรอก
- Google Play Package Name – ชื่อ Package app เราเอง
- Class Name – ใส่ว่า com.facebook.unity.FBUnityDeepLinkingActivity
- Key Hashes – เอาค่าจากข้อ 10 กรอกไป
- กด Save Changes เป็นอันเสร็จพิธี ใช้งาน Facebook SDK บน Unity ได้แล้วจ้าาา
- [แถม] สำหรับ iOS ถ้าเป็น Unity5 จะมีปัญหาตอน Build ให้ไปที่ไฟล์ Assets/Facebook/Editor/iOS/FbUnityInterface.mm และ FbUnityInterface.h ด้วย โดยคลิกเลือกที่สองไฟล์นี้ทีละไฟล์แล้วที่ Inspector ติ๊กที่ iOS คลิก Tab ที่เพิ่มมาใต้ Platform settings จะมีส่วนที่เขียนว่า Compile flags อยู่ ให้พิมพ์ว่า “-fno-objc-arc” กด Apply ทั้งสองไฟล์ก็จะสามารถ Build ลง iOS ได้ตามปกติครับ