[PunRPC]ย  ย ย 

public void SetGun(int gunToSwitchTo)

{

}


photonView.RPC("SetGun",RpcTarget.All,selectedGun);

์œ„์— ํ•จ์ˆ˜๋Š” ์ž์‹ ์˜ ํด๋ผ์ด์–ธํŠธ PC1์—์„œ RPC ํ•จ์ˆ˜๋ฅผ ์ž˜ ์‹คํ–‰ํ•ด์„œ, PC2์˜ ์ž์‹ ์˜ ์บ๋ฆญํ„ฐ์—๊ฒŒ ์ด์ด ๋ฐ”๋€ ๊ฒƒ์„ ์ž˜ ์ „๋‹ฌ ํ•ฉ๋‹ˆ๋‹ค.




[PunRPC]

public void DealDamage(string damager, int damageAmount, int actorNumber)ย ย 

{

ย  ย  ย  if (photonView.IsMine)

ย  ย  ย  {

ย  ย  ย  ย  ย ย 

ย  ย  ย  }

}


hit.collider.gameObject.GetPhotonView().RPC("DealDamage",RpcTarget.All,photonView.Owner.NickName,allGuns[selectedGun].shotDamage,PhotonNetwork.LocalPlayer.ActorNumber);


์œ„์— ํ•จ์ˆ˜๋Š” Physics.Raycast๋ฅผ ์จ์„œ, hitํ•œ gameObject์˜GetPhotonView() ์ •๋ณด๋ฅผ ์–ป์–ด์™€์„œ, RPCํ•จ์ˆ˜ DealDamage๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.


if(photonView.IsMine)์ด ์žˆ์–ด์„œ, PC1์—์„œ Aํ”Œ๋ ˆ์ด์–ด๊ฐ€ B๋ฅผ ๊ณต๊ฒฉํ–ˆ๋‹ค๋ฉด, ์ •์ž‘ ๊ฐ์†Œ๋˜๋Š” ์บ๋ฆญํ„ฐ๋Š” PC2์˜ B์˜ ํ˜„์žฌ ์ฒด๋ ฅ๋งŒ ๊ฐ์†Œ๋ฉ๋‹ˆ๋‹ค.


์ €๋Š” PC1์—์„œ ๋“  PC2์—์„œ ๋“  ์ฒด๋ ฅ์ด ๊ฐ์†Œ๋˜๋ฉด, ๊ฐ์†Œ๋œ ํ˜„์žฌ ์ฒด๋ ฅ์„ ๋ณด๊ณ  ์‹ถ์–ด์„œ, if(photonView.IsMine) ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ•˜๋‹ˆ, ๋ˆ„๊ตฌ๋“  ํ”ผํ•ด๋ฅผ ์ž…์œผ๋ฉด, ์ •๋ณด๋ฅผ ๋‹ค ๊ณต์œ ํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.


์ œ๊ฐ€ ์•Œ๊ธฐ๋กœ๋Š” if(photonView.IsMine)์ด ์—†์œผ๋ฉด, PC1์—์„œ Aํ”Œ๋ ˆ์ด์–ด๊ฐ€ B๋ฅผ ๊ณต๊ฒฉํ–ˆ๋‹ค๋ฉด, PC1์˜ B์™€ PC2์˜ B๊ฐ€ ๊ฐ™์ด ์ฒด๋ ฅ์ด ๊ฐ์†Œ๋˜๋Š” ๊ฒƒ์„ ๊ณต์œ ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์™œ ์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ์ผ๊นŒ์š”??