연합 공통 API (A)

연합 공통 API (A)

개인 나쁜 영어 때문에이 문서에서 파생 된 중국 API 코드의 일부 수행하고 2018.1 설명 : 설명 링크를

비디오 링크 : 링크를 클릭

통일은 일부 기능이 함께 제공됩니다

  1. 깨어 : 항상이 기능은 어떤 시작 함수 전에 프리폼의 인스턴스 후라고합니다. (시작이 비활성 상태 동안 게임이 개체를 경우, 호출 깨어 후 활성화됩니다.)

  2. 시작되지 매우 긴급한 초기화, 일반적으로 시작을 할 수있는 내부. 업데이트 기능을 처음 호출되기 직전에 호출

  3. 재설정 : 처음 호출 재설정 스크립트의 객체에 부착하고 사용 할 수있는 경우 재설정 속성 초기화 스크립트 명령을

  4. 업데이트 : 프레임 업데이트에 한 번했다. 이는 주요 기능은 프레임을 업데이트하는 데 사용된다.

  5. FixedUpdate : 효과 업데이트 메커니즘과 같은 시간 간격으로 호출. 업데이트 전에 실행.

  6. LateUpdate : 전화 후 업데이트 및 FixedUpdate 전화. 보통 사람들의 움직임에 업데이트, 오히려 FixedUpdate에 카메라의 변화를 따릅니다. 모두 독립적 있는지 확인합니다.

  7. OnDestory은 : 객체가 삭제 될 때 호출합니다.

  8. OnEnable :( 객체가이 기능은 객체가 활성화 된 직후에 호출됩니다) 활성화 될 때만 호출됩니다. 경우 (예를 들면, 게임 레벨을로드 또는 스크립팅 컴포넌트 객체를 인스턴스화시)을 생성 MonoBehaviour 인스턴스는이 호출을 실행한다.

  9. OnDisable : 개체가 비활성화 될 때 호출됩니다.

    주문 전화 :

    8y9KpR.png

시간 클래스

  1. deltaTime : (초)에 사용되는 완료 시간 (읽기 전용).

  2. fixedDeltaTime : 물리 업데이트 및 기타 고정 된 프레임 속도를 수행하는 (예를 들어, FixedUpdate MonoBehaviour) 시간 간격 (초).

  3. fixedTime는 : FixedUpdate 마지막 시간 (읽기 전용) 시작했다. 이것은 (초) 게임 시작 이후 시간입니다.

  4. frameCount : 프레임들의 총 수는 읽기 전용 경과.

  5. realtimeSinceStartup : 실제 시간은 게임의 시작부터 (읽기 전용).

  6. smoothDeltaTime : Time.deltaTime 평활화 처리 후 읽기 전용.

  7. 시간 : 프레임의 시작 부분에서 (읽기 전용). 이것은 (초) 게임 시작 이후 시간입니다.

  8. 시간 단위 : 타임 스케일링의 통로. 그것은 슬로우 모션 사용할 수 있습니다.

  9. timeSinceLevelLoad : 프레임의 시작 이후 시간 (읽기 전용). 이 마지막 체크 포인트 이후 (초) 자기 로딩 시간입니다.

성능 테스트

float timeStart = Time.realtimeSinceStartup;
for (int i = 0; i < 10000; i++)
{
     Method();
}
float timeEnd = Time.realtimeSinceStartup;
Debug.Log(timeEnd-timeStart);

만들기 개체가 앞으로 이동

cube.transform.Translate(Vector3.forward * Time.deltaTime);

게임 오브젝트 클래스

  1. 세 가지 방법으로 객체를 생성

    // 第一种
    GameObject go= new GameObject("cube");
    // 克隆一个已有的
    GameObject.Instantiate(prefab);
    // 创建基本的物体
    GameObject go =GameObject.CreatePrimitive(PrimitiveType.Cube);
  2. 추가 구성 요소

    // 添加刚体
    go.AddComponent<Rigidbody>();
    // 添加 脚本
    go.AddComponent<API01Event>();  // API01Event 是脚本
  3. activeInHierarchy : 게임 오브젝트가 장면에 정의가 활성화됩니다.

    Debug.Log(go.activeInHierarchy); // True
    go.SetActive(false);
    Debug.Log(go.activeInHierarchy); // False
  4. 태그 :이 게임 오브젝트 레이블입니다.

  5. 이름 : 개체의 이름입니다.

    Debug.Log(go.name);
    Debug.Log(go.GetComponent<Transform>().name)//获取组件的名字其实获取的是物体的名字
  6. 레이어 : 게임 오브젝트의 층에 위치해 있습니다.

  7. 장면 : 장면 게임 오브젝트가 속한.

공공 기능

  1. AddComponent는 : 구성 요소 클래스 이름은 게임 객체 클래스 이름입니다 추가합니다.

    go.AddComponent<Rigidbody>();
  2. ComPareTag : 연결 구성 요소의 유형에 대한 게임 오브젝트 유형이,이 반환되면, 그렇지 않은 경우는 null.

  3. SetActive : 활성화 /이 게임 오브젝트를 비활성화합니다.

  4. sendMessage 첨부 :를 불러옵니다이 게임 오브젝트 각 MonoBehaviour에 methodName 메서드를 호출합니다.

  5. 로 broadcastMessage :를 불러옵니다이 게임 개체 또는 항목을 각 MonoBehaviour의에 methodName 메서드를 호출합니다.

    target.BroadcastMessage("Attack",null,SendMessageOptions.DontRequireReceiver);//如果有接受者则发送,如果没有不报错
    void Attack() //当一个物体的脚本里拥有此方法则会被调用(子类也会调用)
    {
     Debug.Log(this.gameObject + "正在攻击");
    }
  6. SendMessageUpwards :를 불러옵니다 각 게임에서이 대상 또는 각 부모 MonoBehaviour이 동작에 methodName 메서드를 호출합니다.

  7. GetCompont : 연결 구성 요소의 유형에 대한 게임 오브젝트 유형이,이 반환되면, 그렇지 않은 경우는 null.

    Cube cube = target.GetComponent<Cube>(); //类
    Transform t = target.GetComponent<Transform>();
  8. GetComponts : 반환 구성 요소의 모든 유형을위한 게임 오브젝트를 입력합니다.

    Cube[] cubes = target.GetComponents<Cube>();
    cubes = target.GetComponentsInChildren<Cube>();
    foreach(Cube c in cubes)
    {
          Debug.Log(c);
    }
  9. GetComponentsInChildren : 깊이 우선 탐색 반환 게임 오브젝트 또는 형식 유형의 주요 구성 요소 중 하나를 사용하여.

  10. GetComponentsInParant는 : 부모의 게임 오브젝트, 또는 구성 요소의 유형의 형태를 돌려줍니다.

Cube cube = target.GetComponent<Cube>(); // 获取单个
Transform t = target.GetComponent<Transform>();
Debug.Log(cube);
Debug.Log(t);
Debug.Log("---------------------------------");

Cube[] cubes = target.GetComponents<Cube>(); // 获取多个
Debug.Log(cubes.Length);
Debug.Log("---------------------------------");

cubes = target.GetComponentsInChildren<Cube>();  // 自己以及子类
foreach (Cube c in cubes)
{
    Debug.Log(c);
}
Debug.Log("---------------------------------");
cubes = target.GetComponentsInParent<Cube>();
foreach (Cube c in cubes)
{
   Debug.Log(c);
}

정적 기능

  1. CreatePrimitive는 : 원래 메쉬 렌더러에서 게임 객체를 생성하고 해당 충돌체가 있습니다.

  2. 찾기 : 이름으로 게임 오브젝트를 찾은 다음 그것을 돌려줍니다.

    GameObject go = GameObject.Find("Main Camera");
  3. FindGameObjectWithTag는 : 활동의 목록은 게임 오브젝트 태그의 반환을 표시합니다. 게임 오브젝트가 발견되지 않는 경우는 하늘의 배열이 반환됩니다.

    GameObject[] gos= GameObject.FindGameObjectsWithTag("MainCamera");
  4. 파괴 : 삭제 게임 오브젝트, 구성 요소 또는 자원을. 그것은 즉시 복구 할 수 없습니다

    Destroy(this);(一般是脚本)(可以销毁物体也可以销毁组件)
    Destroy(gameObject,5); //(5秒后销毁)
  5. DontDestroyOnLoad : 새로운 장면을로드 할 때 자동으로 객체 / 대상 / 파괴하지 않습니다.

  6. FindObjectOfType는 :로드의 유형에 대한 최초의 활성화 객체의 형태를 돌려줍니다.

  7. FindObjectsOfType는 : 유형이 활성화 객체의 모든 유형의 목록을로드 반환합니다.

    Light light =FindObjectOfType<Light>(); //获取所有的灯
    light.enabled = false;

MonoBehaviour

  1. 호출 : 시간 초 후에 호출 methodName 메서드.

    Invoke("Attack", 3);
    void Update () {
        bool res = IsInvoking("Attack");
        print(res);
    }
    void Attack()
    {
         Debug.Log("正在攻击目标");
    }
  2. 두 번째 이후 methodName로 메소드를 호출하고 모든 repeatRate 초를 호출 InvokeRepeating.

    InvokeRepeating("Attack", 4, 2);//第四秒开始调用第一次,之后每2秒调用一次
  3. CancleInvoke는 다음 MonoBehaviour의 모든 전화 호출을 취소 할 수 있습니다.

    CancelInvoke("Attack");

    코 루틴

  4. 코 루틴을 사용하는 경우 다음과 같은 키워드가 필요합니다

    1. 함수 반환 값은 IEnmerator입니다
    2. 함수 반환 수율 반환 XXX를 사용하려면
    3. 코 루틴 메소드를 호출 할 때 우리가 사용하고자하는 StartCoroutine (XXX ())
     public GameObject cube;
     private void Update()
     {
         if (Input.GetKeyDown(KeyCode.Space))
         {
             StartCoroutine(Fade());
         }
     }
    
     IEnumerator Fade()
     {
         for (float i = 0; i <= 1; i += 0.1f)
         { 
             // 第一种方式
            //cube.GetComponent<MeshRenderer>().material.color = new Color(i,i,i,i);
             // 第二种方式
            Color color = cube.GetComponent<MeshRenderer>().material.color;
            Color newColor = Color.Lerp(color, Color.black,0.1f); // 向黑色逐渐靠近
            cube.GetComponent<MeshRenderer>().material.color = newColor;
            yield return new WaitForSeconds(0.1f); // 暂停
         }
     }

    일치를 실행하면 효과 다음 스페이스 바를 누르십시오 :
    86k724.gif

  5. StopCoroutine : 루틴의 동작에서 실행 methodName로 이름이 정지 협력 프로그램의 첫 번째 협력 프로그램 또는 저장

      // 第一种停止方式
      Coroutine A = StartCoroutine(coroutineA());
      StopCoroutine(A);
      // 第二种停止方式
      IEnumerator DemoFuntion(){
           ...
      }
      IEnumerator coroutine = DemoFuntion();
      StartCoroutine(coroutine);
      StopCoroutine(coroutine);
  6. ** StopAllCoroutines : 중지 행위에서 실행중인 모든 코 루틴을.

추천

출처www.cnblogs.com/Dvelpro/p/12528864.html