PlayerComponent

플레이어를 나타내고, 관련 기능을 제공합니다.

# Properties

[{"index":"integer Hp (Sync) (HideFromInspector)","0":"현재 Hp입니다."}]

[{"index":"integer MaxHp (Sync)","0":"최대 Hp입니다."}]

[{"index":"string Nickname (Sync) (HideFromInspector)","0":"플레이어의 닉네임입니다."}]

[{"index":"string ProfileCode (Sync) (ReadOnly) (HideFromInspector)","0":"플레이어의 프로필 코드입니다."}]

[{"index":"boolean PVPMode (Sync)","0":"플레이어끼리 공격이 가능한지를 설정합니다."}]

[{"index":"float RespawnDuration (Sync)","0":"죽은 후 리스폰까지 걸리는 시간입니다."}]

[{"index":"Vector3 RespawnPosition (Sync) (HideFromInspector)","0":"리스폰될 위치를 설정합니다. 지정하지 않은 경우 1순위로 SpawnLocation의 위치, 2순위로 맵 진입 시점의 위치가 리스폰 위치로 설정됩니다."}]

[{"index":"number RespawnTime (Sync) (HideFromInspector)","0":"리스폰이 될 예정 시간입니다."}]

[{"index":"string UserId (Sync) (ReadOnly) (HideFromInspector)","0":"플레이어의 고유 식별자입니다. Client 실행제어 함수의 targetUserId 매개 변수에 사용할 수 있습니다."}]

##### 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

[{"index":"boolean IsDead()","0":"플레이어가 죽었는지 여부를 반환합니다."}]

[{"index":"void MoveToEntity(string entityID) (Server) (ScriptOverridable)","0":"entityID에 해당하는 엔티티와 같은 위치로 이동시킵니다. 다른 맵의 entityID인 경우 맵을 이동합니다."}]

[{"index":"void MoveToEntityByPath(string worldPath) (Server) (ScriptOverridable)","0":"worldPath에 존재하는 엔티티와 같은 위치로 이동시킵니다. worldPath가 다른 맵을 가리킬 경우 맵을 이동합니다."}]

[{"index":"void MoveToMapPosition(string mapID, Vector2 targetPosition) (Server) (ScriptOverridable)","0":"플레이어를 특정 맵의 특정 위치로 이동시킵니다."}]

[{"index":"void ProcessDead(string targetUserId = nil) (Client)","0":"플레이어를 죽음에 이르게 합니다."}]

[{"index":"void ProcessRevive(string targetUserId = nil) (Client)","0":"플레이어를 부활시킵니다."}]

[{"index":"void Respawn() (ScriptOverridable)","0":"리스폰을 수행합니다. Respawn 위치의 1순위는 RespawnPosition, 2순위는 맵 내 SpawnLocation의 위치, 3순위는 맵 진입 시점의 위치입니다."}]

[{"index":"void SetPosition(Vector3 position)","0":"로컬 좌표 기준으로 엔티티의 위치를 설정합니다."}]

[{"index":"void SetWorldPosition(Vector3 worldPosition)","0":"월드 좌표 기준으로 엔티티의 위치를 설정합니다."}]

##### inherited from Component:

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

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

# Examples

"Check Point"라는 이름의 오브젝트에 닿으면 리스폰 위치를 오브젝트의 위치로 변경합니다. "Do Not Touch"라는 이름의 오브젝트에 닿으면 플레이어가 죽게 하여 리스폰 위치가 잘 변경됐는지 확인합니다.
    
    
    @Component
    script CheckpointHazardHandler extends Component
        @ExecSpace("ServerOnly")
        @EventSender("Self")
        handler HandleTriggerEnterEvent(TriggerEnterEvent event)
        -- Parameters
        local TriggerBodyEntity = event.TriggerBodyEntity
        --------------------------------------------------------
    
        local player = self.Entity.PlayerComponent
    
        if TriggerBodyEntity.Name == "Check Point" then
            player.RespawnPosition = TriggerBodyEntity.TransformComponent.Position
        elseif TriggerBodyEntity.Name == "Do Not Touch" then
            self.Entity.PlayerComponent:ProcessDead()
        end
        end
    end
    

# SeeAlso

  * TriggerComponent
  * TriggerEnterEvent
  * [플레이어 설정과 제어](/docs?postId=547)