목차
Ray 로 총알 발사하기 (PlayerFire)
우리가 원래 3D FPS 할 때는,
그냥 맵에다가 올려놓고 했는데
이번에는 쏠 때마다 만들거임
왜? MultiPlay 할거니까
사람들이 하나를 다 사용하면 이상하게 됨!
좀 더 최적화 하고싶으면, 들어온 인원수만큼 맵에 생성하게 하면 됨!
근데 우리는 쏠 때마다 만들어보자
왼쪽 컨트롤키를 누르면,
파티클과 Audio 를 PlayOnAwake 까지 하면 만들자마자 생성됨
하지만 nomal 로 만들고 만들어진게 안없어지니까,
Destroy 까지 하게 하자
진짜 총알 발사하기
위에꺼를 FireRay() 라고 만들어서 Update 에 정리하고,
Alt 키 누르면 총알 나가게 해보자.
총알 생성
리지드 바디 추가!!
Bullet 스크립트도 만들어 주자!
우리가 다 했던거임
PlayerFire 에 Assign 잘 해주고
총구를 다시 한번 정리해주자. 지금은 Main Camera 에 되어있음..
public GameObject bulletFactory;
public GameObject bulletImpactFactory;
public Transform firePos;
// Update is called once per frame
void Update()
{
//1. 왼쪽 컨트롤키 누르면
if (Input.GetKeyDown(KeyCode.LeftControl))
{
FireRay();
}
//1. 왼쪽 알트키를 누르면
if (Input.GetKeyDown(KeyCode.LeftAlt))
{
//2. 총알공장 총알 만든다.
GameObject bullet = Instantiate(bulletFactory);
//3. 총구에 위치 시킨다.
bullet.transform.position = firePos.position;
//4. 총알의 앞방향을 총구방향으로 한다
bullet.transform.forward = firePos.forward;
}
}
FirePos 추가하고,
총구에 위치 시키는거랑, 총구방향에 수정해줌!
Fire Pos 를 CamPos 를 넣자!
이제 머리 위에서 부딪히지는 않을거임
플레이어 HP 추가 (PlayerMove)
PlayerMove 에서,
그럼 이게 언제 호출 되야 해?
Ray 를 쏘고, 효과 주고,
만약에 쐈을 때, 누가 맞으면 맞은애 한테 PlayerMove 를 들고와서 함수 실행 시키면 됨
Player 를 복제 해보자
지금 Player(1) 에 카메라가 또있음
이러면 안되니까 이 CamPos 를 끄자
그리고 쏴보면, 체력이 달아서 상대방이 죽는걸 확인 할 수 있음ㅎ
'Photon' 카테고리의 다른 글
Photon 여섯 째날 (LobbyScene 꾸미기, RemoveRoomListUI(),UpdateRoomCache()) (1) | 2022.09.14 |
---|---|
Photon 다섯 째날 (RPC로 OnDamage, RPC.애니메이션(상태머신), RPC.총,Connection Scene UI 꾸미기) (1) | 2022.09.13 |
Photon 넷째 날 (Photon View, OnPhotonSerializeView, RPC) (0) | 2022.09.12 |
Photon 둘째 날 (PlayerMove, PlayerRot) (0) | 2022.09.06 |
Photon 첫 날(photon의 구조, 세팅, 서버연결, 방 생성, 입장) (0) | 2022.09.06 |