Author Archive admin

Byadmin

Unity3D ตอนที่ 8 การชนของวัตถุ (Rigidbody physics)

ภาพที่ 8-1 สร้างกล่องสี่เหลี่ยม (cube)
ภาพที่ 8-2 ปรับขนาดกล่อง
ภาพที่ 8-3 ย้ายตำแหน่งกล่องใน scene
ภาพที่ 8-4 เพิ่ม Physic rigidbody component ไปยังกล่อง
ภาพที่ 8-5 เอาติ๊กออกที่ use gravity
ภาพที่ 8-6 ทดสอบการเล่น
ภาพที่ 8-7 ทดสอบติ๊ก Is Kinematic
Byadmin

Unity3D ตอนที่ 7 การปรับแต่งแสงในเกม

ภาพที่ 7-1 ขั้นตอนการเลือก Light
ภาพที่ 7-2 การหมุนมุมของแสง
Byadmin

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

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

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 ลูกบอลจะเคลื่อนที่
Byadmin

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 อีกครั้ง จะเห็นว่าลูกบอลลอยอยู่นิ่งๆ ไม่ตกตามแรงโน้มถ่วง
Byadmin

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 เพื่อเปลี่ยนกลับมาเป็นวัตถุรูปแบบตั้งต้น
Byadmin

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

Byadmin

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

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

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

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

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

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

ภาพที่ 3 หน้าจอพื้นที่ทำงานของ Unity3D
Byadmin

ประวัติศาสตร์การค้าขาย

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

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

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

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

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