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

仁惠·2022년 6월 11일
0
post-thumbnail

컴포넌트의 활용 I

MovementComponent

InputSpeed : 좌우로 움직임 (이동력)
JumpForce : 점프력

RigidbodyComponent

가감속에 따른 움직임, 중력의 영향을 받는다, 기본 물리

DownJumpSpeed : 하단점프 할 때 위로 좀 뛰었다가 내려감
Gravity : 밑으로 당겨지는 힘(높을 수록 빨리 떨어짐)
IsBlockVerticalLi : 떨어져있는 기둥에 막힘
IsolatedMove : 낭떠러지에서 안 떨어짐
Mass : 물체의 질량, 값이 높을수록 가감속이 느려짐
IsQuaterView : 중력을 따르지 않고 움직임

TriggerComponent

충돌시에 많이 쓰임

아이템 먹은 것 처럼 쓰기

WebSpriteComponent

display하는 컴포넌트
웹에 있는 이미지를 가져와서 표시해줌
애니메이션 설정 가능

YoutubePlayerWorldComponent

사용 방법은 WebSprite Component와 유사

AvataRendererComponent

활용 방안

  • 랭킹 시스템
  • 마네킹 디스플레이
  • 나만의 Entity

MOD API

입력관련은 대부분 script들어감

Key down/up/... Event

키를 받음

local key = event.key
if key == KeyBoardKey.P then
	log("ppppp")
end

P키를 입력받았을 때 로그가 찍히는 코드

TouchEvent

서비스에서 날라옴, 특정한 컴포넌트가 터치를 받아서 엔티티에 쏴줌

ScreenTouchEvent

스크론 터치시에 이벤트 발생

Effect!

Panles -> Resource Storage -> MOD리소스 -> animationclip -> skill
RUID복사
_EffectService : playEffect()
_EffectService:P;ayEffectAttached()
어디에 붙일 것 인지 부모 엔티티가 필요함. 부모 엔티티 기준으로 로컬포지션

바라보고 있는 방향 정보

local direction = self.Entity.PlayerControllerComponent.LookDirectionX

거리에 따른 소리 조절

void OnBeginPlay()
{
	local treeEntity = _EntityService:GetEntity("RUID")
    local treeSound = treeEntity.SoundComponent
    
    treeSound:SetListenerEntity(self.Entity)
    treeSound:Play()
 }

맵별로 사운드 설정 -> Map Entity

카메라 화면전환 (goal Entity)

HandleTouchEvent(TouchEvent event) :
{
	local goalEntity = _EntityService:GetEntity("RUID")
   local goalCamera = goalEntity.CameraComponent
   
   _CameraService:SwitchCameraTo(goalCamera)
}

포털 이동

  1. 컴포넌트 활용 - 직관적
  2. 스크립트 활용

충돌이 일어난 사용자를 왼쪽 풀로 이동

local TriggerBodyEntity = event.TriggerBodyEntity
--------------------------------------------------------
local left = _EntityService:GetEntity('RUID')

if TriggerBodyEntity ~= _UserService.LocalPlayer then
	return
end

_TeleportService:TeleportToEntity(TriggerBodyEntity, left)
profile
ᕕ( ᐛ )ᕗ

0개의 댓글