연합 공통 API (A)
개인 나쁜 영어 때문에이 문서에서 파생 된 중국 API 코드의 일부 수행하고 2018.1 설명 : 설명 링크를
비디오 링크 : 링크를 클릭
통일은 일부 기능이 함께 제공됩니다
깨어 : 항상이 기능은 어떤 시작 함수 전에 프리폼의 인스턴스 후라고합니다. (시작이 비활성 상태 동안 게임이 개체를 경우, 호출 깨어 후 활성화됩니다.)
시작되지 매우 긴급한 초기화, 일반적으로 시작을 할 수있는 내부. 업데이트 기능을 처음 호출되기 직전에 호출
재설정 : 처음 호출 재설정 스크립트의 객체에 부착하고 사용 할 수있는 경우 재설정 속성 초기화 스크립트 명령을
업데이트 : 프레임 업데이트에 한 번했다. 이는 주요 기능은 프레임을 업데이트하는 데 사용된다.
FixedUpdate : 효과 업데이트 메커니즘과 같은 시간 간격으로 호출. 업데이트 전에 실행.
LateUpdate : 전화 후 업데이트 및 FixedUpdate 전화. 보통 사람들의 움직임에 업데이트, 오히려 FixedUpdate에 카메라의 변화를 따릅니다. 모두 독립적 있는지 확인합니다.
OnDestory은 : 객체가 삭제 될 때 호출합니다.
OnEnable :( 객체가이 기능은 객체가 활성화 된 직후에 호출됩니다) 활성화 될 때만 호출됩니다. 경우 (예를 들면, 게임 레벨을로드 또는 스크립팅 컴포넌트 객체를 인스턴스화시)을 생성 MonoBehaviour 인스턴스는이 호출을 실행한다.
OnDisable : 개체가 비활성화 될 때 호출됩니다.
주문 전화 :
시간 클래스
deltaTime : (초)에 사용되는 완료 시간 (읽기 전용).
fixedDeltaTime : 물리 업데이트 및 기타 고정 된 프레임 속도를 수행하는 (예를 들어, FixedUpdate MonoBehaviour) 시간 간격 (초).
fixedTime는 : FixedUpdate 마지막 시간 (읽기 전용) 시작했다. 이것은 (초) 게임 시작 이후 시간입니다.
frameCount : 프레임들의 총 수는 읽기 전용 경과.
realtimeSinceStartup : 실제 시간은 게임의 시작부터 (읽기 전용).
smoothDeltaTime : Time.deltaTime 평활화 처리 후 읽기 전용.
시간 : 프레임의 시작 부분에서 (읽기 전용). 이것은 (초) 게임 시작 이후 시간입니다.
시간 단위 : 타임 스케일링의 통로. 그것은 슬로우 모션 사용할 수 있습니다.
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);
게임 오브젝트 클래스
세 가지 방법으로 객체를 생성
// 第一种 GameObject go= new GameObject("cube"); // 克隆一个已有的 GameObject.Instantiate(prefab); // 创建基本的物体 GameObject go =GameObject.CreatePrimitive(PrimitiveType.Cube);
추가 구성 요소
// 添加刚体 go.AddComponent<Rigidbody>(); // 添加 脚本 go.AddComponent<API01Event>(); // API01Event 是脚本
activeInHierarchy : 게임 오브젝트가 장면에 정의가 활성화됩니다.
Debug.Log(go.activeInHierarchy); // True go.SetActive(false); Debug.Log(go.activeInHierarchy); // False
태그 :이 게임 오브젝트 레이블입니다.
이름 : 개체의 이름입니다.
Debug.Log(go.name); Debug.Log(go.GetComponent<Transform>().name)//获取组件的名字其实获取的是物体的名字
레이어 : 게임 오브젝트의 층에 위치해 있습니다.
장면 : 장면 게임 오브젝트가 속한.
공공 기능
AddComponent는 : 구성 요소 클래스 이름은 게임 객체 클래스 이름입니다 추가합니다.
go.AddComponent<Rigidbody>();
ComPareTag : 연결 구성 요소의 유형에 대한 게임 오브젝트 유형이,이 반환되면, 그렇지 않은 경우는 null.
SetActive : 활성화 /이 게임 오브젝트를 비활성화합니다.
sendMessage 첨부 :를 불러옵니다이 게임 오브젝트 각 MonoBehaviour에 methodName 메서드를 호출합니다.
로 broadcastMessage :를 불러옵니다이 게임 개체 또는 항목을 각 MonoBehaviour의에 methodName 메서드를 호출합니다.
target.BroadcastMessage("Attack",null,SendMessageOptions.DontRequireReceiver);//如果有接受者则发送,如果没有不报错 void Attack() //当一个物体的脚本里拥有此方法则会被调用(子类也会调用) { Debug.Log(this.gameObject + "正在攻击"); }
SendMessageUpwards :를 불러옵니다 각 게임에서이 대상 또는 각 부모 MonoBehaviour이 동작에 methodName 메서드를 호출합니다.
GetCompont : 연결 구성 요소의 유형에 대한 게임 오브젝트 유형이,이 반환되면, 그렇지 않은 경우는 null.
Cube cube = target.GetComponent<Cube>(); //类 Transform t = target.GetComponent<Transform>();
GetComponts : 반환 구성 요소의 모든 유형을위한 게임 오브젝트를 입력합니다.
Cube[] cubes = target.GetComponents<Cube>(); cubes = target.GetComponentsInChildren<Cube>(); foreach(Cube c in cubes) { Debug.Log(c); }
GetComponentsInChildren : 깊이 우선 탐색 반환 게임 오브젝트 또는 형식 유형의 주요 구성 요소 중 하나를 사용하여.
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);
}
정적 기능
CreatePrimitive는 : 원래 메쉬 렌더러에서 게임 객체를 생성하고 해당 충돌체가 있습니다.
찾기 : 이름으로 게임 오브젝트를 찾은 다음 그것을 돌려줍니다.
GameObject go = GameObject.Find("Main Camera");
FindGameObjectWithTag는 : 활동의 목록은 게임 오브젝트 태그의 반환을 표시합니다. 게임 오브젝트가 발견되지 않는 경우는 하늘의 배열이 반환됩니다.
GameObject[] gos= GameObject.FindGameObjectsWithTag("MainCamera");
파괴 : 삭제 게임 오브젝트, 구성 요소 또는 자원을. 그것은 즉시 복구 할 수 없습니다
Destroy(this);(一般是脚本)(可以销毁物体也可以销毁组件) Destroy(gameObject,5); //(5秒后销毁)
DontDestroyOnLoad : 새로운 장면을로드 할 때 자동으로 객체 / 대상 / 파괴하지 않습니다.
FindObjectOfType는 :로드의 유형에 대한 최초의 활성화 객체의 형태를 돌려줍니다.
FindObjectsOfType는 : 유형이 활성화 객체의 모든 유형의 목록을로드 반환합니다.
Light light =FindObjectOfType<Light>(); //获取所有的灯 light.enabled = false;
MonoBehaviour
호출 : 시간 초 후에 호출 methodName 메서드.
Invoke("Attack", 3); void Update () { bool res = IsInvoking("Attack"); print(res); } void Attack() { Debug.Log("正在攻击目标"); }
두 번째 이후 methodName로 메소드를 호출하고 모든 repeatRate 초를 호출 InvokeRepeating.
InvokeRepeating("Attack", 4, 2);//第四秒开始调用第一次,之后每2秒调用一次
CancleInvoke는 다음 MonoBehaviour의 모든 전화 호출을 취소 할 수 있습니다.
CancelInvoke("Attack");
코 루틴
코 루틴을 사용하는 경우 다음과 같은 키워드가 필요합니다
- 함수 반환 값은 IEnmerator입니다
- 함수 반환 수율 반환 XXX를 사용하려면
- 코 루틴 메소드를 호출 할 때 우리가 사용하고자하는 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); // 暂停 } }
StopCoroutine : 루틴의 동작에서 실행 methodName로 이름이 정지 협력 프로그램의 첫 번째 협력 프로그램 또는 저장
// 第一种停止方式 Coroutine A = StartCoroutine(coroutineA()); StopCoroutine(A); // 第二种停止方式 IEnumerator DemoFuntion(){ ... } IEnumerator coroutine = DemoFuntion(); StartCoroutine(coroutine); StopCoroutine(coroutine);
** StopAllCoroutines : 중지 행위에서 실행중인 모든 코 루틴을.