ChatBalloonComponent

말풍선을 표시해주고 관련 기능을 설정할 수 있는 기능을 제공합니다.

# Properties

[{"index":"boolean AllowAutomaticTranslation (MakerOnly)","0":"Message 프로퍼티 값의 자동 번역 여부를 설정합니다."}]

[{"index":"boolean ArrowChatEnabled (Sync)","0":"말풍선 꼬리 이미지를 제공 여부를 설정합니다."}]

[{"index":"boolean AutoShowEnabled (Sync)","0":"말풍선이 자동으로 나타나게 할지 여부를 설정합니다. 값이 true일 경우 ShowDuration 동안 말풍선이 보이고 HideDuration 동안 말풍선이 사라지는 동작을 반복합니다. 플레이어의 ChatModeEnabled 값이 true일 경우 자동 말풍선 기능이 동작하지 않습니다."}]

[{"index":"float BalloonScale (Sync)","0":"말풍선의 크기를 설정합니다."}]

[{"index":"DataRef ChatBalloonRUID","0":"말풍선의 종류를 설정합니다."}]

[{"index":"boolean ChatModeEnabled (Sync)","0":"채팅 연동 여부를 설정합니다. 플레이어만 동작합니다. 값이 true면 채팅 내용이 말풍선으로 출력되며, AutoShowEnabled가 true여도 자동 말풍선 기능은 동작하지 않습니다."}]

[{"index":"boolean EnableProfanityFilter (MakerOnly)","0":"Message 프로퍼티에 금칙어 필터링 적용 여부를 설정합니다."}]

[{"index":"Color FontColor (Sync)","0":"말풍선의 글자색을 설정합니다."}]

[{"index":"Vector2 FontOffset (Sync)","0":"말풍선 내 글자 위치를 상하좌우로 조정합니다."}]

[{"index":"float FontSize (Sync)","0":"말풍선 내의 글자 크기를 설정합니다."}]

[{"index":"float HideDuration (Sync)","0":"AutoShowEnabled의 값이 true일 때 말풍선이 보이지 않는 시간을 설정합니다. 설정한 시간이 지난 후에 말풍선이 다시 나타납니다. 초 단위를 사용합니다."}]

[{"index":"boolean IsRichText (Sync)","0":"리치 텍스트 사용 여부를 설정합니다."}]

[{"index":"string Message (Sync)","0":"말풍선에 표시할 내용을 설정합니다. nil 또는 빈 문자열일 경우 말풍선이 나타나지 않습니다."}]

[{"index":"float Offset (Sync)","0":"말풍선의 위치 offset입니다. 말풍선의 위치를 위, 아래로 조정할 수 있습니다."}]

[{"index":"float ShowDuration (Sync)","0":"말풍선이 떠 있는 시간을 설정합니다. 설정한 시간이 지나면 말풍선이 자동으로 사라집니다. 초 단위를 사용합니다."}]

[{"index":"string TextSpriteSetId (Sync)","0":"텍스트에 적용할 TextSpriteSet 엔트리의 Id입니다."}]

[{"index":"string TextStyleSheetId (Sync)","0":"텍스트에 적용할 TextStyleSheet 엔트리의 Id입니다."}]

##### inherited from Component:

[{"index":"boolean Enable (Sync)","0":"컴포넌트 활성화 여부를 확인합니다."}]

[{"index":"boolean EnableInHierarchy (ReadOnly) (HideFromInspector)","0":"계층 구조상에서 이 컴포넌트가 Enable 상태인지를 반환합니다. Enable이 true일지라도 엔티티의 Enable이 false라면 false를 반환합니다."}]

[{"index":"Entity Entity (ReadOnly)","0":"이 컴포넌트를 소유한 엔티티입니다."}]

# Methods

##### inherited from Component:

[{"index":"boolean IsClient()","0":"현재 실행 환경이 클라이언트인지 아닌지의 여부를 반환합니다."}]

[{"index":"boolean IsServer()","0":"현재 실행 환경이 서버인지 아닌지의 여부를 반환합니다."}]

# Events

[{"index":"ChatBalloonEvent","0":"말풍선이 나타날 때 생기는 이벤트입니다."}]

# Examples

다음은 일정 간격마다 대사를 말하는 NPC를 만드는 예제입니다. ChatBalloon이 출력되는 간격에 맞추어 대사를 교체해 줍니다.
    
    
    @Component
    script NpcChatRandomizer extends Component
        @ExecSpace("ServerOnly")
        method void OnBeginPlay()
        local chatBalloon = self.Entity.ChatBalloonComponent
    
        local npcTalks = {}
        table.insert(npcTalks, "NPC Talk 1")
        table.insert(npcTalks, "NPC Talk 2")
        table.insert(npcTalks, "NPC Talk 3")
        table.insert(npcTalks, "NPC Talk 4")
    
        local setMessage = function()
        	local idx = _UtilLogic:RandomIntegerRange(1, #npcTalks)
        	chatBalloon.Message = npcTalks[idx]
        end
    
        local interval = chatBalloon.ShowDuration + chatBalloon.HideDuration
        _TimerService:SetTimerRepeat(setMessage, interval)
        end
    end
    

# SeeAlso

  * UtilLogic
  * TimerService
  * [말풍선 만들기](/docs?postId=119)