Key관련 Event
Touch관련 Event
Effect
Sound Component
Camera Component
Portal Coponent
Climbable Component
KeyDownEvent : 키를 눌렀을때 최초 1회 발생하는 이벤트
KeyHoldEvent : 키가 눌린상태일때 일정 프레임마다 주기적으로 발생하게되는 이벤트
KeyReleaseEvent : KeyHold상태 즉, 키가 길게 눌린상태에서 손을 떼었을때 최초 1회 발생하는 이벤트
KeyUpEvent : 키보드로부터 손을 떼었을때 최초 1회 발생하는 이벤트
ex)
--> if key == Keyboardkey.A : 만약 키보드에서 A가 눌리면
Screen 터치관련 이벤트와 Entity 터치관련 이벤트로 구분할 수 있다.
Touch 관련 이벤트를 받기위해서는 TouchReceive Component를 해당 Entity에 추가해주어야 한다.
ex)
--> ChatBallon Component의 Message내용을 바꾸기 위해 touch변수에 저장해서 활용
--> wait(1) : 1초후에 원래의 메세지로 돌아오는것처럼 보이게하기위해 사용
--> touch event 수신을위해 TouchReceive Component 추가
--> 캐릭터가 움직여도 스킬이 최초 발생한 위치는 월드좌표기준으로 고정되어있다.
--> 캐릭터가 움직여도 스킬이 항상 설정한 부모 Entity인 Default Player를 따라다니게 된다.
원하는 이펙트의 RUID : "RUID"
이펙트 적용대상 : self.Entity(Default Player)
이펙트 적용위치 : self.Entity.TransformComponent.Position(Default Player의 월드좌표기준)
이펙트 회전각도 : 0º
이펙트 크기 : Vector3(1,1,1) (3차원 벡터에서의 x(1),y(1),z(1)크기)
ex) 이펙트 적용대상인 Default Player의 Position에서 스킬이 발생했다.
원하는 이펙트의 RUID : "RUID"
이펙트가 따라다닐 부모 Entity설정 : self.Entity(Default Player)
부모 Entity로부터의 위치 : Vector3(3,0,0) (3차원 벡터에서의 x(3),y(0),z(0)만큼 떨어진 위치에서 발생 -> 오른쪽으로 3만큼 떨어진 위치)
이펙트 회전각도 : 0º
이펙트 크기 : Vector3(1,1,1) (3차원 벡터에서의 x(1),y(1),z(1)크기)
ex) self.Entity로부터 x축으로 3만큼 떨어진곳에 이펙트가 발생했다.
cf) skill RUID 가져오는 방법 : Panels -> Resource Storage -> 스킬형태 image or animation 선택 -> 원하는 이펙트 RUID복사
AudioClipRUID : RUID형태로 원하는 소리를 갖고오면된다.(위 RUID는 불꽃소리)
Loop : 체크하게되면 선택한 sound를 반복해서 듣게된다.
PlayOnEnable : 플레이를하자마자 설정한 사운드가 시작된다.
Volume : 사운드의 크기를 조절할 수 있다.
변수
local fire = _EntityService:GetEntity("Entity ID") : 불꽃 Entity의 정보를 fire변수에 저장한다.
local sound = fire.SoundComponent : 불꽃 Entity의 SoundComponent정보를 sound변수에 저장한다.
로직
cf) 불꽃과 캐릭터의 거리가 가깝다. -> 소리가 더 크다.
불꽃과 캐릭터의 거리가 멀다. -> 소리가 더 작다.
구성한 맵
--> 만약, 초점을 Default Player -> 토끼 Entity로 옮기고 싶다면?
cf) ConfineCamera 체크를 해제하게되면 카메라 이동시에 Entity가 중앙에위치하도록 보여진다.
변수
local rabbit = _EntityService:GetEntity("Entity ID") : 토끼 Entity의 정보를 rabbit변수에 저장한다.
local torabbit = rabbit.CameraComponent : 토끼 Entity의 CameraComponent정보를 torabbit변수에 저장한다.
local me = self.Entity.CameraComponent : Default Player의 CameraComponent정보를 me변수에 저장한다.
기능
_CameraService:SwitchCameraTo(torabbit) : 카메라의 포커스를 토끼 Entity인 torabbit으로 이동한다.
wait(10) : 10초의 텀을 둔다. (다음 코드인 원래의 지점으로 돌아오기전 10초 delay)
_CameraService:SwitchCameraTo(me) : Default Player인 me로 카메라의 포커스가 돌아온다.
--> 아랫 포탈 -> 윗 포탈 / 윗 포탈 -> 아랫 포탈 이동하고 싶다면?
cf) 포탈 Entity는 주기적으로 저장을해주어야 Component, Property요소에 반영된다.
--> 화살표 -> 불꽃으로 이동하고싶다면?
변수
기능
스물다섯, 스물하나 화이팅!!!