본문 바로가기
✨ Club/C크루 게임 개발챌린지 | 유니티 2D (C#)

본선공부 - Unity 10

by 정람지 2022. 9. 10.

그림은 다윤언니가 그린 우리 주인공~

 

오브젝트

온전한 하나의 사물 / 실제로 존재하는 물건

 

클래스

표현하고 싶은 대상을 추상화하여 대상과 관련된 변수와 매서드를 정의하는 틀

 

객체지향

프로그램을 오브젝트의 집합으로 구성하는 방식

 

인스턴스화

클래스라는 틀로 오브젝트를 찍어내 실체화하는 것

인스턴스

인스턴스화를 이용해 찍어낸 인스턴스

 

접근 제한자

 

C# 접근 제어 (public, protected, private, internal, protected internal)

객체 지향 프로그래밍에서 클래스의 사용자에게 필요한 최소의 기능만 노출하고 내부를 감추는 것을 은닉성이라고 합니다. 클래스에 선언되어 있는 필드와 메서드 중 필드는 상수를 제외하고

qzqz.tistory.com

private이 기본

 

new 연산자 

클래스로부터 인스턴스 생성

(MonoBehaviour 은 new 를 쓸 수 없음!!)

 

생성자 이름은 클래스의 이름과 같음

클래스명 새 변수 = new 클래스명();

 

멤버

오브젝트 내부의 변수나 메서드

. 으로 접근 가능

변수는 필드라고 부르기도 함

 

참조 타입 // 값 타입

new를 쓰면 참조 타입 (실체가 아니라 실체로 향하는 참조가 할당되는 것)

값 타입은 float,int,string 등으로 동작

혼동 주의!!

A = B; 하면 A가 B의 값을 덮어쓰는 것이 아니라 

A 가 B의 참조값을 가르키게 되는 것임

 

- 클래스는 오브젝트를 생성하는 틀이다

- new를 사용하여 클래스로부터 오브젝트를 생성한다.

- 한 클래스로 여러 오브젝트를 만들 수 있다.

 

Animal 클래스

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Animal
{
    //동물 변수
    public string name;
    public string sound;
    

    //울음소리 재생 메서드
    public void PlaySound()
    {
        Debug.Log(name + ":" + sound);
    }
}

인스턴스 생성하기

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Zoo : MonoBehaviour
{
    void Start()
    {
        Animal tom = new Animal();
        tom.name = "톰";
        tom.sound = "냐옹!";

        tom.PlaySound();
    }

}

 

리자드바디 컴포넌트 연결하고 싶을 때에는 리자드파디를 c# 파일 컴포넌트에 드래그/드롭 하기

실제 리자드바디 컴포넌트로 향하는 참조 할당됨

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Jumper : MonoBehaviour
{
    public Rigidbody myRigidbody;
    void Start(){
      myRigidbody.AddForce(0,500,0); 
    }
}

 

 

 

카메라 이동시키기

transform.position 

 

[SerializeField] GameObject
게임오브젝트 선택 가능

유니티 실행 순서

Lateupdate

모든 업데이트가 끝나고, 각 프레임에서 update가 해야 하는 모든 일이 끝나고 나서 게임 로직의 맨 마지막에 하는 것

 

c# 프로그램의 이름을 바꿀 때는 이름을 바꾸고 나서 파일 안의 클래스 이름도 바꿔야 함!

 

Tag

새 태그 생성 가능

 

other.

다른 것과 접촉했을 때 사용

'✨ Club > C크루 게임 개발챌린지 | 유니티 2D (C#)' 카테고리의 다른 글

본선개발 - Unity 12  (0) 2022.09.11
본선개발 - Unity 11  (0) 2022.09.10
본선공부 - Unity 9  (0) 2022.09.08
본선공부 - Unity 8  (0) 2022.09.06
본선개발 - Unity7  (0) 2022.09.05