enum class ESirOwner
{
None,
SirMonster,
kirby
};
1. 커비가 사용자 일 때 충돌 구분
if (Owner == ESirOwner::kirby)
- 몬스터 충돌 체크
2. 몬스터가 사용자 일 때 충돌 구분
else if (Owner == ESirOwner::SirMonster)
- 커비 충돌 체크
3. 커비가 부메랑을 받지 못했을 때 특정 범위를 벗어나면 자동 삭제되게 설정
if (true==LRCheck && XR.iX()<GetActorLocation().iX()) // 돌아오는 방향은 오른쪽 -> 부메랑이 오른쪽 방향으로 설정한 범위보다 커질때 동작
{
MainPlayer->SetSirUse(false);
SSir.Off();
Destroy();
}
else if (false==LRCheck && XL.iX()>GetActorLocation().iX()) // 돌아오는 방향은 왼쪽 -> 부메랑이 왼쪽 방향으로 설정한 범위보다 작을 때 동작
{
MainPlayer->SetSirUse(false);
SSir.Off();
Destroy();
}
- 커비는 부메랑을 받아야 변신을 풀거나 공격을 할 수 있게 설정했다. 못받는 경우도 있을 수 있기에 자동 삭제 기능 추가
4. 커비가 받는 경우 -> 몬스터도 동일
- 사용자 커비
// 커비가 받아낼때
if (true == SirCollision->CollisionCheck(ECollisionOrder::kirby, Result))
{
MainPlayer->SetSirUse(false);
SSir.Off();
Destroy();
}
- 사용자 몬스터
else if (true == SirCollision->CollisionCheck(ECollisionOrder::SirMonster, Result))
{
UCollision* Collision = Result[0];
AActor* Ptr = Collision->GetOwner();
AMonster_Sir* Monster = dynamic_cast<AMonster_Sir*>(Ptr);
Monster->SetSirUse(false);
SMSir.Off();
Destroy();
}
'공부 정리 > API 프로젝트 (별의 커비) 콘텐츠' 카테고리의 다른 글
7. Monster_Base(Actor) 정리중 (0) | 2024.03.05 |
---|---|
6. Kirby_Player(Actor) - Sir(Actor) - 정리중 (0) | 2024.03.04 |
3. Actor(skill) - AllStar (0) | 2024.03.03 |
4. Actor(Monster) - Monster_Sir - (중요 함수) (0) | 2024.03.03 |
3. Actor(Monster) - Monster_Fire - (중요 함수) (0) | 2024.03.01 |