그림은 다윤언니가 그린 우리 주인공~
오브젝트
온전한 하나의 사물 / 실제로 존재하는 물건
클래스
표현하고 싶은 대상을 추상화하여 대상과 관련된 변수와 매서드를 정의하는 틀
객체지향
프로그램을 오브젝트의 집합으로 구성하는 방식
인스턴스화
클래스라는 틀로 오브젝트를 찍어내 실체화하는 것
인스턴스
인스턴스화를 이용해 찍어낸 인스턴스
접근 제한자
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
유니티 실행 순서
Lateupdate
모든 업데이트가 끝나고, 각 프레임에서 update가 해야 하는 모든 일이 끝나고 나서 게임 로직의 맨 마지막에 하는 것
c# 프로그램의 이름을 바꿀 때는 이름을 바꾸고 나서 파일 안의 클래스 이름도 바꿔야 함!
Tag
새 태그 생성 가능
other.
다른 것과 접촉했을 때 사용
'Club|Project > 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 |