(4) 대공과 대지 중 #1

5540 단어 C# 입문Unity3D

나는 [RequireComponent()]를 이해해야 한다!



참조를 위해,
이것은 설치 오류를 피하는 데 도움이됩니다,,,?
분실물을 없애는 기능?
일부러 추가해서 써야 할 것인가?
사실, 잘 모르겠습니다.

좋아, 사용해 보자.
하지만 사용법이 원래 모른다.

그래서 작전



1) RequireKnight 객체를 만들고
2) Rigidbody 구성 요소를 켜십시오.
3) RequireTest 스크립트를 작성하고 거기에 [RequireComponent()]와 적당히 Rigidbody 취득적인 것인가 쓰자.
그래서,
4) Rigidbody 구성 요소를 제거하십시오.

그때 무슨 일이 일어날까?

1) RequireKnight 객체를 만들고





2) Rigidbody 구성 요소를 켜십시오.





3) RequireTest 스크립트를 작성하고 거기에 [RequireComponent()]와 적당히 Rigidbody 취득적인 것인가 쓰자.


public class RequireTest : MonoBehaviour
{
    Rigidbody rigid;

    void Start()
    {
        // リジッドボディを取得
        rigid = this.GetComponent<Rigidbody>();

        // 適当に
        if (rigid.useGravity == true)
        {
            // 重力を無効にする
            rigid.useGravity = false;
        }
    }
}

그리고 마침내

4) Rigidbody 구성 요소를 벗어 버려.





나는 [RequireComponent()]를 이해해야 했지만



[RequireComponent()]를 붙이지 않았습니다.



[RequireComponent()]() 안에 무엇을 넣는거야? 라는 「의문」
이런,,,,[RequireComponent(typeof(Rigidbody))]RequireComponent (typeof (구성 요소 이름))]

할 수 있었다! 그래서 검증,,,


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[RequireComponent(typeof(Rigidbody))]

public class RequireTest : MonoBehaviour
{
    Rigidbody rigid;

    void Start()
    {
        // リジッドボディを取得
        rigid = this.GetComponent<Rigidbody>();

        // 適当なif文
        if (rigid.useGravity == true)
        {
            // 重力を無効にする
            rigid.useGravity = false;
        }
    }
}




과연, 컴퍼넌트를 붙이고 있으면 이미 떼어낼 수 없다.

그럼 원래 컴포넌트를 붙이지 않았다면?





필요한 구성 요소를 자동으로 붙여줍니다.



참고로 한 사이트



스크립트 참조
Require Component와 Reset()

좋은 웹페이지 즐겨찾기