Blog

  • Unity3D ตอนที่ 6 การปรับกล้อง มุมมองของเกม

    ภาพที่ 6-1 คลิกที่ icon กล้อง
    ภาพที่ 6-2 เลือก Move tool แล้วคลิกที่ลูกศรแกนเพื่อเปลี่ยนตำแหน่งของกล้อง
    ภาพที่ 6-3 คลิก Rotation tool แล้วคลิกที่เส้นวงกลมรอบกล้องค้างไว้แล้วลากเพื่อปรับการหมุน
    ภาพที่ 6-4 คลิกที่เฟืองแล้วเลือก Reset เพื่อนำกล้องกลับสู่จุดกึ่งกลางของ Scene
  • Unity3D ตอนที่ 5 เขียน script กดปุ่มให้วัตถุเคลื่อนที่

    ภาพที่ 5-1 คลิก Add component แล้วเลือก New script
    ภาพที่ 5-2 ตั้งชื่อ script แล้วคลิก Create and Add
    ภาพที่ 5-3 script component จะแสดงใน inspector ซึ่งเชื่อมโยงกับลูกบอลที่เราสร้างไว้
    ภาพที่ 5-4 ในหน้าต่าง project จะแสดงไฟล์ script อยู่ใน folder asset
    ภาพที่ 5-5 คลิกขวาบนพื้นที่ว่างแล้วเลือกสร้าง folder
    ภาพที่ 5-6 สร้าง folder แล้วลากไฟล์ไปไว้ใน folder ที่สร้างขึ้นใหม่
    ภาพที่ 5-7 เปิด folder script แล้ว double click file script เพื่อทำการแก้ไข
    ภาพที่ 5-8 โปรแกรม Visual studio ถูกเปิดขึ้นเพื่อแก้ไข script
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class BallMovingScript : MonoBehaviour
    {
        Rigidbody rb;
        // Start is called before the first frame update
        void Start()
        {
            rb = GetComponent<Rigidbody>();
        }
    
        // Update is called once per frame
        void Update()
        {
            
        }
    
        private void FixedUpdate()
        {
            float moveHorizontal = Input.GetAxis("Horizontal");
            float moveVertical = Input.GetAxis("Vertical");
    
            Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
    
            rb.velocity = movement;
        }
    }
    
    ภาพที่ 5-9 ทำการแก้ไข script แล้วกดปุ่ม save
    ภาพที่ 5-10 กลับไปที่ program unity3D คลิกปุ่ม play แล้วกดปุ่มลูกศร ซ้ายขวาบนล่างบน keyboard ลูกบอลจะเคลื่อนที่
  • Unity3D ตอนที่ 4 Rigidbody

    ภาพ 1 เลือก Add component > Physic > Rigidbody
    ภาพที่ 2 Rigidbody component แสดงในหน้าต่าง inspector
    ภาพที่ 3 สามารถคลิกที่เฟืองแล้วเลือก Remove component เพื่อลบออกได้
    ภาพที่ 4 คลิกปุ่ม Play เพื่อทดสอบการเล่น
    ภาพที่ 5 จะเห็นว่าวัตถุตกลงไปตามแรงโน้มถ่วง
    ภาพที่ 6 คลิกปุ่ม Play อีกครั้งเพื่อหยุดเล่น
    ภาพที่ 7 ทดสอบไม่เลือก use gravity
    ภาพที่ 8 กด Play อีกครั้ง จะเห็นว่าลูกบอลลอยอยู่นิ่งๆ ไม่ตกตามแรงโน้มถ่วง
  • Unity3D ตอนที่ 3 การสร้างวัตถุในเกม

    ภาพที่ 1 เลือก Create > 3d object > Sphere เพื่อสร้างวัตถุทรงกลม
    ภาพที่ 2 ใน scene จะมีวัตถุทรงกลมอยู่ตามที่สร้าง
    ภาพที่ 3 ทำการย้ายวัตถุทรงกลมตามแกน 2 แกน โดยคลิกตรงกลางระหว่าง 2 แกน
    ภาพที่ 4 ย้ายวัตถุตามแกนเดียว โดยคลิกที่ลูกศร แล้วลากไปยังตำแหน่งที่ต้องการ
    ภาพที่ 5 เลือก Rotation tool เพื่อหมุนวัตถุ
    ภาพที่ 6 คลิกที่แกนแล้วลากไปยังตำแหน่งที่ต้องการเพื่อหมุนวัตถุ
    ภาพที่ 7 เลือก Transform tool เพื่อเปลี่ยนแปลงขนาดวัตถุ
    ภาพที่ 8 คลิกที่แกนแล้วลากไปยังตำแหน่งที่ต้องการเพื่อขยาย/ย่อขนาด
    ภาพที่ 9 ในส่วน Tranform ตัวเลขจะมีการเปลี่ยนแปลง
    ภาพที่ 10 สามารถคลิกที่เฟืองแล้วเลือก Reset เพื่อเปลี่ยนกลับมาเป็นวัตถุรูปแบบตั้งต้น
  • Unity3D ตอนที่ 2 ส่วนประกอบของหน้าจอ

    หน้าจอของ Unity3D จะประกอบด้วยส่วนต่างๆ ซึ่งสามารถปรับเปลี่ยนได้ไม่ตายตัว แต่โดยการตั้งค่าเบื้องต้น (Default จะเป็นดังรูปด้านล่าง)

    ภาพที่ 1 ส่วนประกอบของหน้าจอเบื้องต้น

    ส่วนประกอบหน้าจอ

    1 เมนูและ Tool bar

    2. Scene, Game, Asset store

    3. Project

    4. Scene Hierachy

    5. Inspector

    รายละเอียดของแต่ละส่วน

    1 เมนูและ Tool bar แสดงดังรูปด้านล่าง

    สำหรับมือใหม่จะแนะนำในสองส่วนคือ

    • ส่วนด้านซ้ายสุด รูปมือ รูปลูกศร เป็นต้น จะใช้ในการจับวัตถุต่างๆ เคลื่อนย้าย ขยายขนาดเป็นต้น
    • ตรงกลาง ปุ่ม เล่น ปุ่ม หยุด และปุ่มเล่นทีละ step จะเป็นปุ่มที่เราจะใช้เมื่อต้องการ test เกม
    ภาพที่ 2 แสดงเมนูและ tool bar

    2. Scene, Game, Asset store

    ส่วนนี้จะแสดงเป็น tab 3 tab ประกอบด้วย

    • scene เป็นหน้าจอที่เราใช้วางวัตถุในเกม
    • Game เป็นหน้าจอที่เราใช้ทดสอบเล่นเกม เมื่อกดปุ่ม play
    • Asset store เป็นหน้าจอที่ Link ไปยังเว็บของ unity เพื่อ download content (เรียกว่า asset) ไม่ว่าจะเป็น model ภาพ เสียง ต่างๆ มีทั้งฟรีและเสียเงิน
    ภาพที่ 3 หน้าจอที่ประกอบด้วย 3 tab คือ scene Game และ asset store
    สำหรับหน้าจอนี้คือหน้าจอ game จะใช้เมื่อต้องการทดสอบเล่นเกมที่เราสร้างขึ้น
    ภาพที่ 4 หน้าจอ Scene เป็นหน้าจอที่ใช้ในการวางวัตถุต่างๆในเกม
    ภาพที่ 5 หน้าจอ Asset store เชื่อมโยงไปยังเว็บของ Unity เพื่อ download asset ต่างๆ

    3. Project

    เป็นหน้าจอที่แสดงทรัพยากรที่เราใช้ในเกม ไม่ว่าจะเป็น model รูปภาพ เสียง effect และ script ต่างๆ โดยปกติจะเก็บไว้ใน asset folder

    ภาพที่ 6 หน้าจอ Project แสดงทรัพยากรที่เราใช้ในเกม

    4. Scene Hierachy

    แสดงทรัพยากรที่ใช้ใน scene ที่เรากำลังพัฒนาอยู่ โดยปกติเกมจะมีหลายๆ หน้าจอ (ฉาก) เช่น เมนูเริ่มต้น หน้าเกม หน้าเกมโอเวอร์ เป็นต้น

    ภาพที่ 7 หน้าจอ Hierachy ของ scene

    5. Inspector

    หน้าจอ Inspector ใช้ในการกำหนดคุณสมบัติของวัตถุในเกม

    ภาพที่ 8 หน้าจอ Inspector

  • Unity3D ตอนที่ 1 การสร้างโปรเจ็ค

    1 เมื่อเปิดโปรแกรม Unity3D ขึ้นมาจะพบหน้าจอดังรูป ให้คลิกที่ New เพื่อสร้าง Project ใหม่

    ภาพที่ 1 เลือก new เพื่อสร้าง project ใหม่

    2. ใส่รายละเอียดของ Project แล้วคลิก Create Project

    ภาพที่ 2 ใส่รายละเอียดของ Project

    3. ระบบจะแสดงหน้าจอพื้นที่การทำงานดังภาพด้านล่าง

    ภาพที่ 3 หน้าจอพื้นที่ทำงานของ Unity3D
  • ประวัติศาสตร์การค้าขาย

    ยุคก่อนประวัติศาสตร์

    • การค้าขายเกิดจากการสื่อสารของมนุษย์ในยุคก่อนประวัติศาสตร์
    • แต่ก่อนการค้าขายจะเป็นแบบยื่นหมูยื่นแมว ไม่ได้มีการใช้เงิน

    ก่อนยุคโรมัน

    • ในยุคหินมีการซื้อขายแร่ธาตุกัน
    • เชื่อว่าเริ่มต้นจากเอเชียใต้
    • ซื้อขายแร่ เช่น obsidian, flint แถวแถบทะเลเมดิเตอร์เรเนี่ยน
    • ซื้อขายแร่ lapis lazuli ในสมัยบาบิโลน
  • Struct vs Class

    ประเภทข้อมูล

    ประเภทข้อมูลใน dot net จะมี 2 แบบ คือ

    • Reference type
    • Value type

    Struct เป็นข้อมูลแบบ Value type

    Class  เป็นข้อมูลแบบ Reference Type

    Reference type เก็บข้อมูลไว้ในหน่วยความจำที่เรียกว่า Heap ส่วน value type จะมาอยู่ในหน่วยความจำเมื่อเรียกใช้ (โปรแกรม run ไปถึง method ที่มีการใช้ตัวแปร ถึงจะทำการจองหน่วยความจำ)

    Reference type เป็นข้อมูลแบบ Pointer คือจะชี้ไปหาข้อมูลอื่น

    Value type เก็บข้อมูลไว้ที่ตัวมันเอง

    การ Copy ตัวแปร

    การ Copy ตัวแปร Reference type จะเป็นการ copy ข้อมูล Pointer ที่จะชี้ไปหาข้อมูลจริงในหน่วยความจำอีกที ถ้ามีการเปลี่ยนแปลงข้อมูลของตัวแปรปลายทางต้นทางก็จะเปลี่ยนไปด้วย

    การ Copy ตัวแปร Value type จะ copy ข้อมูลจริงทั้งชุด การเปลี่ยนข้อมูลตัวแปรปลายทาง ข้อมูลของตัวแปรต้นทางจะไม่เปลี่ยน

    การนำไปใช้

    Microsoft แนะนำว่า Struct จะใช้ในการ encapsulate ตัวแปรที่เกี่ยวข้องกันไว้ด้วยกัน เช่น ตัวแปรเกี่ยวกับการวาดรูปสี่เหลี่ยม struct สามารถสร้าง construct, constant, field, method, properties, indexers, operator, event และ nest types

    struct นำมาใช้ เมื่อข้อมูลมีขนาดเล็ก และมีอายุสั้น และมักจะเอาไปใช้ใน object อีื่น

    อย่างไรก็ตาม ถ้าหากข้อมูลมันมีความซับซ้อน และใช้ construct, constant, field etc หลายอัน แนะนำให้ใช้ class แทน

     

     

    ref:

    https://stackoverflow.com/questions/13049/whats-the-difference-between-struct-and-class-in-net

  • ASP.NET Core

    Microsoft ประกาศ ASP.NET CORE จะเป็นแนวทางในการพัฒนาเว็บ platform ต่อไปในอนาคต

     

    คุณสมบัติ ของ ASP.NET CORE

    1. Open source
    2. Cross Platform
    3. Extremely performant
    4. scalable
    5. Testable
  • การรักษาคืออะไร

    การรักษา ภาษาอังกฤษ = treatment

    หมายถึง การรักษาคนที่รู้สึกไม่สบายเพราะความเจ็บไข้ ความเจ็บป่วย ความบกพร่อง หรือผิดปกติทางจิตใจ
    และแพทย์ว่าจำเป็นต้องรักษา ให้กลับสู่สภาพปกติมิฉะนั้น จะเกิดอันตรายต่อสุขภาพผู้ป่วย

    การเบิกเงินของราชการ

    อะไรที่ไม่เกี่ยวกับการรักษา เบิกไม่ได้

    ฉีดวัคซีนเพื่อป้องกัน เบิกไม่ได้ ยกเว้นว่า โดนสุนัขกัดแล้วฉีดเพื่อรักษา อันนี้เบิกได้

    คู่มือการเบิกจ่ายของทางราชการสามารถดูได้ตามลิงค์นี้

    คู่มีอการเบิกจ่าย