Programming skills

    [Unity]Awake 와 Start의 차이

    [Unity]Awake 와 Start의 차이

    유니티 생명주기를 공부하다 Awake와 Start의 차이에 대한 질문이 들어왔다. 가장 중요한 호출순서의 목적에 대해 공부를 해볼 필요를 느꼈다. 공통점은 둘 다 한 번만 실행되는 초기화 이벤트함수지만 호출시기에 따른 차이가 있다. Awake - 스크립트와 연결된 게임오브젝트가 인스턴스화되거나 스크립트가 처음 로드될때 불린다. 즉 가장 먼저 호출된다. - 해당 오브젝트가 Enable상태가 아니어도 위의 조건이면 호출된다. - 다른 오브젝트에 대한 참조를 생성할 때 주로 사용한다. Start - 해당 스크립트 컴포넌트가 활성화되는 순간 호출된다. - 호출시기는 Awake보다는 느리고 첫 Update보다는 빠르게 호출 - 참조를 통해 접근하는 작업이 가능하다. 즉, Awake는 항상 Start 함수 이전이나..

    [CS]객체지향프로그래밍(OOP) 특징

    [CS]객체지향프로그래밍(OOP) 특징

    객체지향프로그래밍(Object - Oriented Programming, OOP) 객체들의 유기적인 협력과 결합으로 파악하고자하는 컴퓨터프로그래밍의 패러다임 객체지향적으로 프로그램을 설계하는데는 큰 이점이 있다. 장점 1. 프로그램을 보다 유연하고 변경이 용이 2. 코드의 변경을 최소화하고 유지보수하는데 용이 3. 코드의 재사용을 통해 반복적 코드 최소화 4. 코드를 최대한 간결하게 표현 5. 인간친화적이고 직관적인 코드 작성 이러한 장점으로 객체지향프로그래밍의 4가지 특징이 있다. 추상화, 상속, 다형성, 캡슐화 이다. 객체(Object) 객체는 OOP의 가장 기본적인 단위이다. 모든 것이 객체들간의 상호작용을 통해 출발되기 때문이다. 체스를 예를 들면 체스말에는 다양한 기물이 있다. 왕, 여왕, 폰,..

    [Unity] 생명주기 Life Cycle

    [Unity] 생명주기 Life Cycle

    생명주기(Life Cycle) 클래스를 상속받은 오브젝트가 씬에 있는 동안 일정한 흐름에 따라 함수를 호출하는데 이 패턴의 흐름이 생명주기이다. 그 중 중요흐름도이다. Initialization 1. Awake - 스크립트가 실행될 때 한번만 실행 - 오브젝트 비활성화시 호출되지 않지만 스트립트가 비활성화일경우 호출 - 코루틴으로 실행불가 - 게임의 상태나 변수초기화로 사용 - 오브젝트의 초기화나 프리팹의 인스턴스화가 모두 진행된 직후에 호출되기 때문에 Find함수 호출의 안전성 보장 2. OnEnable - 객체가 활성화될때마다 호출 - 코루틴으로 실행불가 - 이벤트 연결 시 사용 3. Start - 스크립트가 실행될 때 한 번만 실행 - 객체가 비활성되면 호출되지 않는다 - 코루틴으로 실행가능 Phy..

    [CS]선형 비선형 자료구조

    [CS]선형 비선형 자료구조

    자료구조를 크게 분류하면 선형구조 비선형 구조가 있다. 선형구조(Linear) 원소들을 1:1로 앞뒤 관계로 순차적인 자료구조이다. 배열과 리스트, 스택 큐등이 있다. 비선형구조(NonLinear) 원소들간의 앞 뒤 관계로 여러개의 자료가 존재하는 계층적인 자료구조이다. 트리와 그래프 등이 있다. 트리는 크게 일반트리와 이진트리로 구분된다.

    프로그래머스 k번째수(정렬, 스택 큐로 )

    프로그래머스 k번째수(정렬, 스택 큐로 )

    K번째수 https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr using System; using System.Collections.Generic; using System.Linq; public class Solution { public int[] solution(int[] array, int[,] commands) { //2차원 배열의 행 갯수만큼 answer 배열 초기화 int[] answer= new int[commands.GetLength(0..

    TCP /UDP 특징 및 차이

    TCP /UDP 특징 및 차이

    1. TCP(Transmission Control Protocol) : 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜(TCP는 연속성보다 신뢰성있는 전송이 중요할 때에 사용하는 프로토콜) 연결 지향 방식으로 패킷 교환 방식을 사용한다(가상 회선 방식이 아님). 3-way handshaking과정을 통해 연결을 설정하고 4-way handshaking을 통해 해제한다. 흐름 제어 및 혼잡 제어. 높은 신뢰성을 보장한다. UDP보다 속도가 느리다. 전이중(Full-Duplex), 점대점(Point to Point) 방식. TCP 서버의 특징 서버소켓은 연결만을 담당한다. 연결과정에서 반환된 클라이언트 소켓은 데이터의 송수신에 사용된다 서버와 클라이언트는 1대1로 연결된다. ..

    유니티 오브젝트 생성시 하위 오브젝트로 생성하기

    유니티 오브젝트 생성시 하위 오브젝트로 생성하기

    FPS 게임을 만드는 중 오브젝트가 하이어라키 상단에 생성되는 문제점이 발생했다 클린 코드와 구조화를 목표로 하기에 자신의 부모 오브젝트에 생성하는 방법의 코드이다 //생성 위치 GameObject bullet = Instantiate(attackBulletFactory, firePos.transform.position,Quaternion.identity); //부모 오브젝트에서 생성 bullet.transform.parent = this.transform; 이렇게 하게되면 생성되는 것이 상단 하이어라키에서 보는 문제점을 해결 할 수 있다.

    c# 싱글톤(Single ton)

    c# 싱글톤(Single ton)

    싱글톤은 모든 데이터를 전역으로 관리하여 쉽게 접근하는 장점이 있다. Manager 스크립트 즉 관리를 하는 감독에서 유용하게 사용 가능한 간단한 방법이다. //ScoreManager 싱글톤 패턴 구현 public class A : Monobehaviour { //싱글톤 객체 public static ScoreManager Instance = null; //싱글톤 객체에 값이 없다면 자기 자신 할당 void Awake() { if(Instance == null) { Instance = this; } } } 다음은 Get / Set 프로퍼티를 사용하는 방법이다. 객체지향 프로그래밍의 속성인 캡슐형이 바로 이 속성에 접근하는 프로퍼티이다. Get과 Set 함수의 기능은 그대로 동작하게 하고 접근은 편리하게 ..