ไฟล์โปรเจคจากคลิปสอน "ทำเกมตอบคำถามง่ายๆ ด้วย Unity 5 UI"
[โหลดตรงได้จาก mediafire] คลิกที่นี่
[ดูคลิป] คลิกที่นี่
วันพุธที่ 13 พฤษภาคม พ.ศ. 2558
วันจันทร์ที่ 30 มีนาคม พ.ศ. 2558
แชร์โค้ด Unity : การหยุดเกมด้วย timeScale
การหยุดเกมทำได้หลายวิธี บางคนเขียนโค้ดเทพ อาจจะเขียนโค้ดเพื่อสั่งหยุดการทำงานขงสคริปทุกตัวในออบเจกทุกตัวได้ แต่สำหรับเบื้องต้นมีวิธีง่ายๆอยู่เหมือนกันแต่อาจจะมีข้อจำกัดบ้างซึ่งผมจะพูดถึงทีหลัง
วิธีที่เราจะใช้ในโค้ดนี้คือการปรับค่าของตัวแปร Time.deltaTime ซึ่งเป็นตัวแปรที่ควบคุมการคำนวณที่อ้างอิงเวลา(ความเร็ว)ภายในเกมนั่นเองได้แก่พวก rigidbody และคำสั่งที่มีการคูณ Time.deltaTime ภายในโค้ด โดยตามปกติค่านี้จะอยู่ที่ 1.0 ถ้าเราปรับเป็น 0.5 เกมก็จะช้าลงครึ่งนึง ถ้าปรับเป็น 2.0 เกมจะเร็วสองเท่า แต่สำหรับโค้ดตัวนี้จะเซตค่าให้เท่ากับ 0.0 เพื่อเป็นการหยุดเกมครับ ใครขี้เกียจอ่านก็ดูในคลิปได้เลยครับ
วันเสาร์ที่ 28 มีนาคม พ.ศ. 2558
การเชคปุ่มที่ถูกกดว่าเป็นปุ่มอะไร
เกมส่วนใหญ่เรามักจะกำหนดเองว่าจะให้ผู้เล่นกดปุ่มไหนเพื่อทำแอคชั่นอะไร
เช่น w a s d เพื่อเดิน spacebar เพื่อกระโดด แต่สำหรับบางเกมเราต้องคอยเชคว่าผู้เล่นกดปุ่มไหนเพื่อนำไปเชคว่าผู้เล่นกดถูกปุ่มหรือเปล่า เช่นเกมแนวกดตาม เกมพิมดีด เกมเต้น
ที่นี้ตามปกติในเกมประเภทแรกเราจะใช้ Input.GetKey("a") ในการเชคว่าเอ้ะมีการกดปุ่ม A ในเฟรมนี้มั้ยส่วนในเกมประเภทหลังที่พูดถึงถ้าจะทำแบบเดียวกันจะต้องไล่เชคปุ่มบนคีบอร์ดที่มีเป็นร้อยปุ่ม(มั้ง) เปลืองทั้งเวลาและทรัพยากรณ์ CPU เพราะฉะนั้นปกติเราจะใช้ Event ในการเชคกันครับ
เช่น w a s d เพื่อเดิน spacebar เพื่อกระโดด แต่สำหรับบางเกมเราต้องคอยเชคว่าผู้เล่นกดปุ่มไหนเพื่อนำไปเชคว่าผู้เล่นกดถูกปุ่มหรือเปล่า เช่นเกมแนวกดตาม เกมพิมดีด เกมเต้น
ที่นี้ตามปกติในเกมประเภทแรกเราจะใช้ Input.GetKey("a") ในการเชคว่าเอ้ะมีการกดปุ่ม A ในเฟรมนี้มั้ยส่วนในเกมประเภทหลังที่พูดถึงถ้าจะทำแบบเดียวกันจะต้องไล่เชคปุ่มบนคีบอร์ดที่มีเป็นร้อยปุ่ม(มั้ง) เปลืองทั้งเวลาและทรัพยากรณ์ CPU เพราะฉะนั้นปกติเราจะใช้ Event ในการเชคกันครับ
วันเสาร์ที่ 31 มกราคม พ.ศ. 2558
แชร์โค้ด Unity : แสดงผลกราฟคลื่นเสียง (Sound Wave Visualizer) - AudioSource.GetOutputData()
ผมเลยเขียนโปรแกรมด้วย Unity เพื่อใช้ประโยชน์ในการนำเสนองาน
ซึ่งผมจะเอาส่วนนึงมาแชร์ เป็นการนำข้อมูลของกระแสเสียงที่ออกผ่านลำโพง
( ดึงค่าจาก audio.GetOutputData() ) มาแสดงผลเป็นกราฟของเสียง
ด้วย Component LineRenderer
การใช้งาน เดี๋ยวจะทำคลิปตามทีหลังนะครับ
ที่จริงลองไปเล่นดูก่อนได้ครับ มีตัวแปรให้ปรับสองสามตัว
จะเป็นพวกขนาด visualizer และก็ความละเอียดของกราฟครับ
ส่วนหน้าตาของโค้ดก็ประมาณนี้ครับ
รายละเอียดติดตามภายในคลิปนะครับ(เสร็จแล้วจะลงเพจอีกที)
รายละเอียดเพิ่มเติมในคลิปครับ
โค้ดดิบสำหรับก้อบ
using UnityEngine;
using System.Collections;
public class soundWave : MonoBehaviour
{
public LineRenderer lineRend;
public int quality = 50;
public float len = 25;
public float amplitude = 20;
void Update ()
{
float[] soundBit = new float[quality];
lineRend.SetVertexCount(quality);
if (audio.isPlaying)
{
for (int i = -quality / 2; i < quality / 2; i++)
{
audio.GetOutputData(soundBit, 0);
lineRend.SetPosition(i + quality / 2, new Vector3(i * (float)((float)len / (float)quality), soundBit[i + quality / 2] * amplitude, 0));
}
}
}
}
using System.Collections;
public class soundWave : MonoBehaviour
{
public LineRenderer lineRend;
public int quality = 50;
public float len = 25;
public float amplitude = 20;
void Update ()
{
float[] soundBit = new float[quality];
lineRend.SetVertexCount(quality);
if (audio.isPlaying)
{
for (int i = -quality / 2; i < quality / 2; i++)
{
audio.GetOutputData(soundBit, 0);
lineRend.SetPosition(i + quality / 2, new Vector3(i * (float)((float)len / (float)quality), soundBit[i + quality / 2] * amplitude, 0));
}
}
}
}
#7 - สารบัญโค้ด
สมัครสมาชิก:
บทความ (Atom)