> 백엔드 개발 > C++ > 다양한 Unity 구성 요소의 변수 및 함수에 액세스하는 방법은 무엇입니까?

다양한 Unity 구성 요소의 변수 및 함수에 액세스하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2025-01-18 06:12:14
원래의
805명이 탐색했습니다.

How to Access Variables and Functions from Different Unity Components?

Unity에서 다양한 구성요소의 변수 및 함수에 액세스

Unity에서는 다른 스크립트의 변수와 함수에 액세스하는 것이 매우 일반적입니다. 기본적으로 스크립트의 변수와 함수는 비공개이며 스크립트 외부에서 액세스할 수 없습니다. 다른 스크립트가 액세스할 수 있도록 하려면 공개해야 합니다.

예를 들어 각각 고유한 스크립트(Character_Stats 및 Enemy_Stats)가 있는 플레이어와 적이 포함된 장면을 생각해 보세요. 이 경우 Character_Stats 스크립트에서 Enemy_Stats 스크립트의 Health 변수에 액세스하려면 다음 코드에 표시된 대로 해결 방법이 필요합니다.

<code class="language-c#">void OnCollisionEnter(Collision collision)
{
    if (collision.gameObject.tag == "Enemy")
    {
        collision.gameObject.GetComponent<enemy_stats>().Health = 
            collision.gameObject.GetComponent<enemy_stats>().Health 
            - gameObject.GetComponent<character_stats>().AttackDamage;

        if (collision.gameObject.GetComponent<enemy_stats>().Health < 0)
        {
            Destroy(collision.gameObject);
        }
    }
}</code>
로그인 후 복사

변수와 함수를 공개로 설정

이 해결 방법을 피하려면 Health 변수와 다른 스크립트에서 액세스하려는 모든 기능을 공개로 만드세요. 방법은 다음과 같습니다.

<code class="language-c#">public class Enemy_Stats : MonoBehaviour
{
    public float Health;

    void Start()
    {

    }

    public void TakeDamage(float damage)
    {
        Health -= damage;
    }
}</code>
로그인 후 복사

공용 변수 및 함수에 액세스

이제 Find 및 GetComponent 함수를 사용하여 다른 스크립트에서 Health 변수에 액세스하고 TakeDamage 함수를 호출할 수 있습니다.

<code class="language-c#">public class Character_Stats : MonoBehaviour
{
    GameObject enemyObj;
    Enemy_Stats enemyStats;

    void Start()
    {
        enemyObj = GameObject.Find("EnemyGameObject");
        enemyStats = enemyObj.GetComponent<Enemy_Stats>();
    }

    void AttackEnemy()
    {
        enemyStats.TakeDamage(AttackDamage);

        if (enemyStats.Health <= 0)
        {
            Destroy(enemyObj);
        }
    }
}</code>
로그인 후 복사

변수와 함수를 공개하면 다른 스크립트에서 쉽게 액세스하고 조작할 수 있어 Unity 프로젝트에 소요되는 시간과 노력을 절약할 수 있습니다.

위 내용은 다양한 Unity 구성 요소의 변수 및 함수에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿