index
1. What to do 무엇을 만들까
2. Let's do 어떻게 만들까
3. Done 최종 코드
🦋 What to do
이전 게시글에서 만든 HP바가 MakeHpBarComponent를 가진 엔티티에게 자동으로 생성되게 만들어보겠습니다!

🐛 Let's do
1. 이전 게시글에서는 HP바를 만들었습니다.

2. 여기서 만든 HP바를 모델화 하겠습니다.
HpP_bar를 우클릭, Make Original Model을 클릭합니다.

3. WorkSpace에서 Model_HP-bar이 생긴 것을 확인할 수 있습니다.

4. WorkSpace에 새로운 컴포넌트, MakeHpBarComponent를 만듭니다.

5. 다음과 같이 코드를 작성합니다.

#CODE (Plain Text)
--@ BeginMethod
--@ MethodExecSpace=ServerOnly
void OnBeginPlay()
{
local path = self.Entity
local name = "HpBar" .. self.Entity.Name
_SpawnService:SpawnByModelId(
"여기에 MODEL ID를 넣어 주세요",
name,
Vector3(0, 1, 0),
path,
nil
)
}
--@ EndMethod
6. 기존에 추가되어 있던 HP_bar를 삭제합니다.

7. 3에서 만든 모델을 우클릭, 모델의 ID를 복사합니다.

8. 6에서 작성한 코드 중 이 부분에 복사한 모델의 ID를 기입합니다.

9. 지금까지 만든 MakeHpBarComponent를 해파리 엔티티에게 추가합니다.

10. HP바가 만들어졌을 때 자동으로 HP바의 소유자를 설정하도록 하겠습니다.
기존의 ControlHpBarComponent의 OnBeginPlay에 다음 코드를 추가하고,
OnUpdate를 client only로 설정합니다.
self.Owner = self.Entity.Parent

11. Play를 통해 제대로 HP바가 생성되는지 확인합니다.

🐇 Done
# MakeHpBarComponent

--@ BeginMethod
--@ MethodExecSpace=ServerOnly
void OnBeginPlay()
{
local path = self.Entity
local name = "HpBar" .. self.Entity.Name
_SpawnService:SpawnByModelId(
"model://5744cee4-08ec-4d63-ace8-3ec39dd873a6",
name,
Vector3(0, 1, 0),
path,
nil
)
}
--@ EndMethod
# ControlHpBarComponent

--@ BeginProperty
--@ SyncDirection=All
Entity Owner = "nil"
--@ EndProperty
--@ BeginMethod
--@ MethodExecSpace=ClientOnly
void OnUpdate(number delta)
{
local MaxHp = self.Owner.Monster.MaxHp
local Hp = self.Owner.Monster.Hp
local Value = Hp/MaxHp
self.Entity.SliderComponent.Value = Value
}
--@ EndMethod
--@ BeginMethod
--@ MethodExecSpace=All
void OnBeginPlay()
{
self.Owner = self.Entity.Parent
}
--@ EndMethod
'Client > MSW' 카테고리의 다른 글
[MOD/중급] 1. HP바 만들기 (0) | 2022.01.31 |
---|---|
[MOD/기초] #.배열과 table (0) | 2022.01.27 |
[MOD/기초] 2. 엔티티와 엔티티 배치하기 (0) | 2022.01.25 |
[MOD/기초] 1. 게임 만들기 (0) | 2022.01.25 |
index
1. What to do 무엇을 만들까
2. Let's do 어떻게 만들까
3. Done 최종 코드
🦋 What to do
이전 게시글에서 만든 HP바가 MakeHpBarComponent를 가진 엔티티에게 자동으로 생성되게 만들어보겠습니다!

🐛 Let's do
1. 이전 게시글에서는 HP바를 만들었습니다.

2. 여기서 만든 HP바를 모델화 하겠습니다.
HpP_bar를 우클릭, Make Original Model을 클릭합니다.

3. WorkSpace에서 Model_HP-bar이 생긴 것을 확인할 수 있습니다.

4. WorkSpace에 새로운 컴포넌트, MakeHpBarComponent를 만듭니다.

5. 다음과 같이 코드를 작성합니다.

#CODE (Plain Text)
--@ BeginMethod
--@ MethodExecSpace=ServerOnly
void OnBeginPlay()
{
local path = self.Entity
local name = "HpBar" .. self.Entity.Name
_SpawnService:SpawnByModelId(
"여기에 MODEL ID를 넣어 주세요",
name,
Vector3(0, 1, 0),
path,
nil
)
}
--@ EndMethod
6. 기존에 추가되어 있던 HP_bar를 삭제합니다.

7. 3에서 만든 모델을 우클릭, 모델의 ID를 복사합니다.

8. 6에서 작성한 코드 중 이 부분에 복사한 모델의 ID를 기입합니다.

9. 지금까지 만든 MakeHpBarComponent를 해파리 엔티티에게 추가합니다.

10. HP바가 만들어졌을 때 자동으로 HP바의 소유자를 설정하도록 하겠습니다.
기존의 ControlHpBarComponent의 OnBeginPlay에 다음 코드를 추가하고,
OnUpdate를 client only로 설정합니다.
self.Owner = self.Entity.Parent

11. Play를 통해 제대로 HP바가 생성되는지 확인합니다.

🐇 Done
# MakeHpBarComponent

--@ BeginMethod
--@ MethodExecSpace=ServerOnly
void OnBeginPlay()
{
local path = self.Entity
local name = "HpBar" .. self.Entity.Name
_SpawnService:SpawnByModelId(
"model://5744cee4-08ec-4d63-ace8-3ec39dd873a6",
name,
Vector3(0, 1, 0),
path,
nil
)
}
--@ EndMethod
# ControlHpBarComponent

--@ BeginProperty
--@ SyncDirection=All
Entity Owner = "nil"
--@ EndProperty
--@ BeginMethod
--@ MethodExecSpace=ClientOnly
void OnUpdate(number delta)
{
local MaxHp = self.Owner.Monster.MaxHp
local Hp = self.Owner.Monster.Hp
local Value = Hp/MaxHp
self.Entity.SliderComponent.Value = Value
}
--@ EndMethod
--@ BeginMethod
--@ MethodExecSpace=All
void OnBeginPlay()
{
self.Owner = self.Entity.Parent
}
--@ EndMethod
'Client > MSW' 카테고리의 다른 글
[MOD/중급] 1. HP바 만들기 (0) | 2022.01.31 |
---|---|
[MOD/기초] #.배열과 table (0) | 2022.01.27 |
[MOD/기초] 2. 엔티티와 엔티티 배치하기 (0) | 2022.01.25 |
[MOD/기초] 1. 게임 만들기 (0) | 2022.01.25 |