728x90
사용해본것 동작 순서
1. Awake : 씬이 로드될 때 씬의 각 오브젝트에 대해 호출됩니다. Start보다 먼저 동작합니다.
2. Start : 첫 프레임이나 오브젝트의 물리 업데이트 전에 호출됩니다.
3. Update : Start 이후에 매 프레임마다 반복 실행
4.LateUpdate : Update 함수에 이어서 호출되는 함수
정기 업데이트 이벤트
Update 함수는 프레임이 렌더링되기 전에 호출되고 애니메이션이 계산되기 전에도 호출됩니다.
void Update() {
float distance = speed * Time.deltaTime * Input.GetAxis("Horizontal"); transform.Translate(Vector3.right * distance);
}
* Time.deltaTime : 이걸 곱해주면 1초에 한번 동작함
4. 이벤트 함수 : 함수는 게임플레이 중에 발생하는 이벤트에 대응하여 Unity에서 활성화됩니다.
Invoke : 시간 초 단위로 메소드를 호출합니다 methodName.
`Input`:
Input 시스템에 대한 인터페이스입니다.
`Input.GetButton`:
가상 버튼인 `buttonName`이 눌려져 있는 동안 `true`를 반환합니다.
`Input.GetButtonDown`:
사용자가 `buttonName`으로 식별된 가상 버튼을 누른 프레임 동안에만 `true`를 반환합니다.
`Input.GetButtonUp`:
사용자가 `buttonName`으로 식별된 가상 버튼을 떼는 첫 번째 프레임에만 `true`를 반환합니다.
`Input.GetKey`:
사용자가 이름으로 식별된 키를 누르고 있는 동안에만 `true`를 반환합니다.
`Input.GetKeyDown`:
사용자가 이름으로 식별된 키를 누르기 시작한 프레임 동안에만 `true`를 반환합니다.
`Input.GetKeyUp`:
사용자가 이름으로 식별된 키를 뗀 프레임 동안에만 `true`를 반환합니다.
`KeyCode`:
`Event.keyCode`에서 반환되는 키 코드입니다. 이 코드는 키보드의 물리적인 키와 직접 매핑됩니다.
0은 왼쪽, 1은 오른쪽 마우스
`Input.GetMouseButton`:
마우스 버튼이 눌려져 있는지 여부를 반환합니다.
`Input.GetMouseButtonDown`:
마우스 버튼을 누른 프레임 동안에만 `true`를 반환합니다.
`Input.GetMouseButtonUp`:
마우스 버튼을 떼는 프레임 동안에만 `true`를 반환합니다.
Input.GetKey : 함수와 명명 규칙을 사용하여 특정 키나 버튼에 대한 입력을 조회할 수 있습니다.
KeyCode.LeftArrow : 왼쪽 화살표 키가 눌렸을 때
Input.GetKeyDown("f") : "f" 키가 눌렸을 때
Input.GetKeyDown(KeyCode.LeftShift) : 왼쪽 시프트 키(`KeyCode.LeftShift`)가 눌렸을 때
숫자 랜덤값
Random.Range(0.0, 100.0); --> (float) 0.0 ~ 100.0까지의 범위 중 소숫점 임의의 값을 구할 수 있다. 100.0도 포함합니다.
Random.Range(0, 100); --> (int) 0 ~ 100까지의 범위 중 정수값 중 임의의 값을 구할 수 있습니다. 100은 제외됩니다.
예시 :
int GetRandomNumber()
{
int number = Random.Range(0, 101); // 0부터 100 사이의 랜덤 숫자 생성
return number;
}
* 반환값이 없는 함수는 void로 시작하기
Vector 사용
void Start()
{
Vector2 playerPos = new Vector2(3.0f, 4.0f);
playerPos.x += 8.0f;
playerPos.y += 5.0f;
Debug.Log(playerPos);
}
-------------------
void Start()
{// Vector 클래스끼리 뻴샘
Vector2 startPos = new Vector2(2.0f, 1.0f);
Vector2 endPos = new Vector2(8.0f, 5.0f);
Vector2 dir = endPos - startPos;
Debug.Log(dir); // (6.00, 4.00)
float len = dir.magnitude; // ~.magnitude ~의 길이(절댓값)를 반환함
Debug.Log(len); // 7.211102
}
프레임 고정
void Start()
{
// 프레임레이트를 60으로 고정( 1초에 60 프레임)
Application.targetFrameRate = 60;
}
transform 사용
// 화전 속도 만큼 룰렛 회전시킴
transform.Rotate(0,0, this.rotSpeed);
마우스 위치
// 마우스를 클릭한 좌표 입니다.
this.startPos = Input.mousePosition;
// mousePosition
// 사용 예시 : Vector3 Input.mousePosition (get)
// The current mouse position in pixal coordinates.(Read Only)
// 픽셀 좌표의 현재 마우스 위치입니다.(읽기 전용)
Translate 사용
transform.Translate(this.speed, 0,0); // 이동
// Translate
// 사용 예시 : void Transform.Tramslate(Vector3 translation, Spave relativeTo)(+ 5 오버로드)
// Moves the transform in the direction and distance of translation.
// 이동 방향과 이동 거리로 변환을 이동합니다.
~ToString(“F정수”)
float lengh = this.goal.transform.position.x - this.car.transform.position.x;
// TMP의 텍스트 수정
this.distance.GetComponent<TextMeshPro>().text = ("Distance: " + lengh.ToString("F2") + "m");
// ~.ToString("F2") 소숫점 둘째자리까지 표시
콘솔 출력
Debug.Log("출력내용이나 변수명 등");
Debug,Log("숫자" + number);
콜리전(객체에 물리작용하는 면적(?) 적용)
물리 엔진은 오브젝트의 스크립트에 있는 이벤트 함수를 호출하여 오브젝트 충돌을 보고합니다. OnCollisionEnter, OnCollisionStay 및 OnCollisionExit 함수는 접촉이 발생하거나 유지되거나 분리될 때 호출됩니다. 해당되는 OnTriggerEnter, OnTriggerStay 및 OnTriggerExit 함수는 오브젝트의 콜라이더가 트리거(무언가가 안에 들어오면 물리적으로 반응하지 않고 단순히 감지만 하는 콜라이더)로 설정된 경우에 호출됩니다. 이런 함수는 물리 업데이트 중에 하나 이상의 접촉이 감지되는 경우 여러 번 연속적으로 호출될 수 있고, 따라서 충돌에 대한 세부 정보(포지션과 대상 오브젝트의 정체)를 제공하는 파라미터가 함수에 전달됩니다.
void OnCollisionEnter(otherObj: Collision) {
if (otherObj.tag == "Arrow") {
ApplyDamage(10);
}
}
Find 메서드 ( 중복되는 경우가 없을 때 사용)
Find(오브젝트이름) : 씬 중에서 오브젝트 이름과 일치하는 게임 오브젝트 한 개 찾아서 반환합니다.( 중복X 사용가능)
FindWithTag(태그이름) : 씬 중에서 테그 이름과 일치하는 게임 오브젝트를 한 개 찾아서 반환합니다.( 중복X 사용가능)
FindGameObjectWithTag(태그이름) : 씬 중에서 테그 이름과 일치하는 게임 오브젝트를 여러 개 찾아서 반환한다. 반환값은 GameObject배열입니다.
FindObjectOfType(타입이름) : 씬 중에서 타입 이름과 일치하는 게임 오브젝트를 한 개 찾아서 반환합니다.( 중복X 사용가능)
FindObjectsOfType(타입이름) : 씬 중에서 타입 이름과 일치하는 게임 오브젝트를 여러 개 찾아서 반환합니다. 반환값은 Object배열입니다.
숫자
// Mathf
// 사용방법 : struct UnityEngine.Mathf
// A collection of common math functions. 일반적인 수학 함수 모음입니다.
// Mathf.Ab
// 사용 : float Mathf.Abs(float f)
// Returns the absolute value of f. f의 절대값을 반환합니다.
// velocity
// 사용 : Vector2 Rigidbody2D.velocity { get; set;}
// Linear velocity of the Rigidbody in units per second.
// 초당 단위로 표시되는 강체의 선형 속도입니다.
Mathf.Sqrt(distanceSquared); √ distanceSquared
예시
// 빗변^2 = 밑변^2 + 높이^2
float distanceSquared = width * width + height * height;
float distance = Mathf.Sqrt(distanceSquared);
return distance;
https://docs.unity3d.com/kr/2021.3/Manual/ExecutionOrder.html
https://docs.unity3d.com/kr/2021.3/ScriptReference/MonoBehaviour.html
'UNITY > Unity Study' 카테고리의 다른 글
목적지까지 자동차 움직이기 Unity (0) | 2023.08.21 |
---|---|
C# (0) | 2023.08.21 |
벡터 사이의 거리 구하기 (0) | 2023.08.19 |
박스미는 만큼 HP 깎기 (0) | 2023.08.19 |
Roulette (0) | 2023.08.14 |