วันอังคารที่ 30 ธันวาคม พ.ศ. 2557

แชร์โค้ด Unity : ส่งตัวแปรข้ามคลาส

ตัวอย่างโค้ดการส่งตัวแปรข้ามคลาส
ส่งตัวแปร score จากคลาส a ไปยังคลาส b1 และ b2 (ใช้คนละวิธีกัน)
หรืออาจจะบอกว่าเป็นการเรียกตัวแปร score จากคลาสอื่นก็ได้

โค้ดตัวแรก class a

using UnityEngine;
using System.Collections;

public class a : MonoBehaviour
{
public int score = 0;

void Update ()
    {
//Do something with score
        score++;
}
}


สำหรับ b1 จะใช้การประกาศตัวแปรให้สามารถลาก object ที่มีคลาส a ใส่ลงไป
และดึงค่า score มาใช้งานได้ 

using UnityEngine;
using System.Collections;

public class b1 : MonoBehaviour 
{
    public a classAObj;
    //Drag obj with class "a" from editor

void Update () 
    {
        //Do anything with score get from class "a"
        Debug.Log(classAObj.score);
}
}


ส่วนใน b2 จะเป็นตัวอย่างการใช้คำสั่ง GetComponent()
เพื่อดึงคลาสที่อยู่ใน obj เดียวกันแล้วเข้าถึงตัวแปร score

using UnityEngine;
using System.Collections;

public class b2 : MonoBehaviour
{
    //if class "a" is in the same obj with this script

void Update ()
    {
        //Do anything with score from class "a"
        Debug.Log(GetComponent<a>().score);
}
}

#1 สารบัญแชร์โค้ด