구현 내용
1. 멀티 전투 구현
PhotonAnimatorView 동기화를 통해 전투 애니메이션 적용
https://kkln2486.tistory.com/435
캐릭터 동기화 (PhotonTransformView, OnPhotonSerializeView , PhotonAnimatorView)
캐릭터 동기화PhotonTransformView 동기화OnPhotonSerializeView 동기화PhotonAnimatorView동기화 구현 방법PhotonTransformView 동기화 1. 컴포넌트 추가 및 설정 Player 프리팹에 PhotonView 컴포넌트와 PhotonTransformVi
kkln2486.tistory.com
public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
{
// 데이터 보내기 (isMine == true)
if (stream.IsWriting)
{
stream.SendNext(transform.position);
stream.SendNext(transform.rotation);
stream.SendNext(new Vector3(transform.forward.x, 0, transform.forward.z));
stream.SendNext(GameManager.I.DataManager.PlayerData.Atk);
stream.SendNext(GameManager.I.DataManager.PlayerData.SkillAtk);
stream.SendNext(GameManager.I.DataManager.PlayerData.Def);
}
// 데이터 받기 (isMine == false)
else
{
_playerPosition = (Vector3)stream.ReceiveNext();
_playerRotation = (Quaternion)stream.ReceiveNext();
PlayerDirection = (Vector3)stream.ReceiveNext();
Atk = (float)stream.ReceiveNext();
SkillAtk = (float)stream.ReceiveNext();
Def = (float)stream.ReceiveNext();
}
}
상대 Player의 데미지, 방어력 등을 적용해서 넉백을 구현하기 위해 상대 Player의 위치, 회전 데이터 전송에서 사용했던 OnPhotonSerializeView 함수로 데이터 전송하고 넉백을 구현했다.
https://kkln2486.tistory.com/429
동기화
동기화 1. PhotonView갱신이 빈번한 경우에 사용ex) 위치 이동, 상태 변경캐릭터의 동기화에 사용 (PhotonView, PhotonTransformView 스크립트 추가) Setting OwnershipFixed : Ownership 고정Takeover : Ownership을 클라
kkln2486.tistory.com
트러블 슈팅
1. PhotonAnimatorView 동기화 시, 씹힘 현상
연속적으로 애니메이션이 실행되면 동기화가 어느정도 되지만, 한번씩 위와 같이 상대 PC에서는 동기화가 되지 않아서 애니메이션이 실행되지 않는다.
Synchronize Parameters 또한 모두 Continuous로 설정했기 때문에 추가적인 개선 방법이 있다면 업데이트 하도록 하겠다.
'1인 개발 > PushAndSlash' 카테고리의 다른 글
푸쉬앤슬래시 개인 프로젝트 27일차 (0) | 2024.06.20 |
---|---|
푸쉬앤슬래시 개인 프로젝트 26일차 (0) | 2024.06.15 |
푸쉬앤슬래시 개인 프로젝트 24일차 (0) | 2024.06.13 |
푸쉬앤슬래시 개인 프로젝트 23일차 (0) | 2024.06.13 |
푸쉬앤슬래시 개인 프로젝트 22일차 (0) | 2024.06.12 |