목록백지부터 시작하는 이세계 유니티 생활 since 2020 (73)
백지부터 시작하는 이세계 코딩 생활
스크립트가 처음 작동했을 때 가장 처음으로 한번만 작동할 수 있게 해주는 함수. 또한 이 부분에서 변수들의 초기화를 한다. Start 함수보다 더 먼저 실행된다.작동 순서Script : 기본적으로 GameManager부터 우선순위를 갖게 된다.Funtion : Awake --> OnEnable --> Sart --> Update --> FixedUpdate --> LateUpdate --> OnDisable --> OnDestroy 로 순서로 우선순위를 갖게 된다.중요 : 각각의 script들 속에 아래 그림에서 처럼 중복하여 함수들이 작성되어 있다면, 각각의 script 들 속 Awake 함수를 먼저 찾아서 실행시킨다. 이는 script1, script2, script3 속의 Awake 함수를 실행시키..
Coroutine 스레드(Threde) 처리 중 임의의 함수 ( IEnumerator ) 를 끼워넣기 위해서 사용함. ( ie. 실행되던 함수 일시정지 ) 유사 멀티스레드 효과가 필요할 때 사용할 수 있다. 임의의 특정 함수가 실행되고 있는 중에 StartCoroutine() 함수가 호출 되면 특정 함수의 작동이 일시정지 (제어권 양도) 되고 IEnumerator 함수를 찾아가게 된다. 이때 yield return [ ... ] ( 반환값 )코드를 만나면 호출되었던 위치로 돌아가 StartCoroutine() 이후의 작업을 완료하게 된다. StartCoroutine() 이후 작업이 완료되면, IEnumerator 함수 내의 yield return 이후를 처리하게 된다. 특징 * 프로세스가 Multi th..
매개변수 : parameter 전달인자 : argument 컴퓨터 프로그래밍에서 매개변수(영어: parameter 파라미터[*])란 변수의 특별한 한 종류로서, 함수 등과 같은 서브루틴[1]의 인풋으로 제공되는 여러 데이터 중 하나를 가리키기 위해 사용된다. 여기서 서브루틴의 인풋으로 제공되는 여러 데이터들을 전달인자(argument) 라고 부른다. 보통 매개변수의 목록은 서브루틴의 정의 부분에 포함되며, 매번 서브루틴이 호출될 때 마다 해당 호출에서 사용된 전달인자들을 각각에 해당하는 매개변수에 대입시켜 준다. 엄밀히 말해서 매개변수는 함수의 정의부분에 나열되어 있는 변수들을 의미하며, 전달인자는 함수를 호출할때 전달되는 실제 값을 의미한다. 이같은 의미를 명확히 하기 위해 매개변수는 변수(variab..
override 상위클래스의 상속이 이루어진 하위클래스에서 매서드 재정의를 해주는 것을 의미한다. i.e ) 상위클래스의 매서드를 하위클래스에서 재정의하는 것을 뜻한다. 상속해주는 Method 에 virtual (키워드) 를 붙여주고, 상속받는 Method 에 override (키워드) 를 붙여 준다. i.e ) 상위클래스 매서드를 하위클래스 내에서 자신(하위클래스)의 매서드로 재정의 하여 다른 기능으로 구현하기 위함이다. (다른 연산방식) using UnityEngine; public class Human { public string name; public int age; public float tall; public Human() { } // 생성자 ( Default Contructor ) // 상속..
Time.deltatime Time. 함수를 사용하면 프레임 동기화를 시킬 수 있다. Time. 함수를 사용하면 프레임 동기화를 시킬 수 있다. Update 함수는 프로그램에서 정해진 시간간격으로 호출되는데 ( FPS ) 프로그램 사용하는 유저들 사이에 이 FPS 값이 다를 수 있다. FPS 값이 높은 COM 에서는 상대적으로 우위를 가질 수 있기 때문에 이를 방지하고자 프레임 시간 동기화를 해줘야 한다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour { private Rigidbody rigid; private float for..
Update () 프로젝트 시작 후 주기를 가지고 연속적으로 호출되는 함수 Update : => Input.GetKey()에 주로 사용함. 스크립트가 enabled 상태일때, 매 프레임마다 호출됩니다 ( 프레임 기반으로 호출 된다. ) FixedUpdate : => RigidBody (물리엔진 작용)에 주로 사용됨. Fixed Timestep에 설정된 값에 따라 일정한 간격으로 호출된다. LastUpdate : => Camera View 처리에 주로 사용됨. 모든 Update 함수가 실행된 후 호출됨. Update, FixedUpdate 함수에는 Input 조작값들만 사용하는 것을 권장한다. 연속호출이 필요한 부분은 InvokeRepeat이나 Coroutine을 통해 처리가능 하다. Input.GetKe..
Horizontal , Vertical 좌표값을 조작하여 Object ( Player ) 를 움직이기. using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player_HWPController : MonoBehaviour { private Rigidbody rigid; private float moveForce = 7.0f; private float x_Axis; private float z_Axis; // Start is called before the first frame update void Start() { rigid = GetComponent(); } // Update is calle..
warning CS0649: Field is never assigned to, and will always have its default value 'null' 나의 해결 방법 >> 디버깅 한번 해주고 나니 깔금하게 해결 되었다. 상황 >> private Rigidbody2D rigid2D; 선언했을 때 해당 컴포넌트의 null 에러가 발생했었다. 그 밖에 >> 스크립트 파일과 오브젝트를 연결되지 않았는지 확인해 볼 것. 보통 코딩 하고 솔루션 빌드(Ctrl + Shift + B)로 에러사항 확인했었는데 이때, 발생한 에러였다. 디버깅 해주고 나니 같은 방법으로 솔루션 빌드를 해도 CS0649 경고메세지가 나타나지 않았다. using System.Collections; using System.Collec..