멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon 2주차 5일 회고

Jiwon Lee·2022년 7월 15일
1

MOD x Supporters

목록 보기
6/23
post-thumbnail

드디어 2주차 교육 끝!! 크큭 ... 다음 주에도 열심히 해야지 ... 아이디어 정해지고 나면 그룹 월드 실습도 해봐야겠다 ...


스크립트 시작하기

  • 콘솔에 데이터를 찍는 것log() 함수 사용
    log("Hello, world") 
    → 콘솔이 없을 경우 Panel에서 키기 !
  • 변수상수 상수 → 변하지 않는 값 ( 1, 2, 3 … ) 변수 → 변하는 값, local 키워드 이용
    local number = 1
    log(number) -- 1
    number = 10
    log(number) -- 10
    → 프로그램은 기본적으로 ‘순차' 구조 + 제어문을 통한 반복/조건
  • 반복문for - do - end
    local sum = 0
    
    for count = 1, 10, 1 do -- 1부터 10까지 1의 간격
    	sum = sum + count  
    end
  • 조건문if - then - end
    local sum = 0
    
    for count = 1, 10, 1 do -- 1부터 10까지 1의 간격
    	if count % 2 == 0 then -- 짝수인 경우
    		sum = sum + count  
    	end
    end
    
    log(sum) -- 30

스크립트의 구조

  • Function( 함수 ) → 어떠한 기능들을 모아둔 것
  • Property → 해당 스크립트 내에서 전역적으로 사용되는 동적인 값

자기 자신을 참조할 때는 self를 사용 → self.property, self.function() 이용

-- property
number sum = 0

void OnBeginPlay() {
	log("begin")
	log("sum is" .. self.sum)
	self.sum = 5
	log("sum is" .. self.sum)
	self.MyFunction()
}

🐽 로직 스크립트

create logic → 로직은 월드에 단 하나 존재 ! → 전역적으로 존재, 백그라운드 실행 …

MyFirstLogic {
	Property:
	Function: 
}
  • void OnBeginPlay() → 가장 기본적인 세팅을 위한 함수… 게임 시작 시 동작

🐙 컴포넌트 스크립트

create component → 엔티티에 해당 컴포넌트를 추가해야 작동함, 엔티티마다 작동!

MyFirstComponent {
	Property:
	Function:
	Entity Event Handler:
}
  • OnUpdate() → 매 Frame마다 동작
  • OnEndPlay() → 게임 종료 시 작동하는 함수

self.Entity. 으로 다양한 컴포넌트 조작 및 데이터 공유 가능

void onBeginPlay() {
	-- 데이터 가져오기
	local myEntityPosition = self.Entity.TransformComponent.Position
	
	-- 컴포넌트 데이터 조작
	for count=1, 5, 1 do
		myEntityPosition.x = myEntityPosition.x + 0.5
		wait(1) -- 1초간 쉬게 됨
	end

	self.Entity.TransformComponent.Scale.x = 2
	self.Entity.TransformComponent.Scale.y = 2
}

공동 제작하기

Github에서 버전 관리를 하고 협업을 하는 것처럼 MOD에서는 ‘그룹 월드'를 만들어서 실시간으로 프로젝트를 공유하며 함께 개발할 수 있음 !

그룹 & 그룹 월드 만들기

MOD 사이트 내에서 만들기 탭에 들어간 다음 그룹 만들기 클릭해서 생성 !
→ 그룹 월드 탭에서 멤버 추가 및 월드 관리 가능 ! 프로필 이름, 코드 또는 이름#코드로 검색 하면 된다 ~
→ 그룹장과 개발 멤버 사이의 권한 차이가 많으니 유의하자 !

협업 관련 메뉴

Panels - Cooperations 패널을 키면 현재 실시간으로 함께 작업 중인 멤버를 확인할 수 있음


공동 월드 협업의 이해

주의사항

작업 중인 사람이 작업을 Check-In( 저장, Ctrl+s )하기 전에는 다른 사람이 수정할 수 없음

하나의 맵에 한 명의 편집자를 따지므로, 각자 다른 맵을 작업하면 문제 없음 !

편집 권한은 Workspace에서 캐릭터 모양을 눌러보면 확인 가능 … locked by 편집자명

Check Out = 작업 시작, 오브젝트나 스크립트를 선택해서 들어가는 경우 자동적으로 됨

Check In = 작업 종료, 직접 해야 함 ! ( Ctrl + s )

Bulk Check Out & Bulk Check In → 여러 개의 엔티티, 혹은 상위 엔티티를 선택해 하위 엔티티 전체에 대한 Check Out & Check In 진행

profile
노는 게 제일 좋은데 공부는 하고 싶어요 😗

0개의 댓글