Хочешь делать мультиплеер, но нет нормальных гайдов? Здесь основы кода!
🔥 Базовая настройка за 2 шага:
1. Скачай PUN 2 в Unity Asset Store
2. В главном меню вызови подключение:
using Photon.Pun;
void Start() {
PhotonNetwork.ConnectUsingSettings();
}
(Добавь скрипт на пустой объект в сцене)
---
🔹 1. 📡 PhotonView - Сердце синхронизации
• Объекты с
PhotonView видны всем игрокам (пули, стены) •
Observed Components: компоненты для синхронизации (Transform, Rigidbody) Код (синхронизация переменной):
public class PlayerHealth : MonoBehaviour, IPunObservable {
public int health;
public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info) {
if (stream.IsWriting) // Твой игрок → отправка
stream.SendNext(health);
else // Чужой игрок → прием
health = (int)stream.ReceiveNext();
}
} ---
🔹 2. 📨 RPC (Remote Procedure Call)
• Вызов методов на всех клиентах/конкретном игроке
Код (выстрел):
[PunRPC]
void RPC_Shoot(Vector3 pos, Vector3 dir) {
Instantiate(bulletPrefab, pos, Quaternion.LookRotation(dir));
}
void ShootLocally() {
photonView.RPC("RPC_Shoot", RpcTarget.All, gunPosition.position, gunPosition.forward);
}
---
🔹 3. 👑 Master Client - Хозяин комнаты
• Главный клиент (первый вошедший)
• Решает: начало игры, спавн боссов
Код (старт игры):
if (PhotonNetwork.IsMasterClient && allPlayersReady) {
photonView.RPC("RPC_StartGame", RpcTarget.All);
} ---
🎯 Итог:
PUN 2 дает готовые инструменты:
→
PhotonView: синхронизация объектов →
RPC: сетевое взаимодействие →
MasterClient: контроль комнаты Пишешь логику → PUN обрабатывает сеть!
#
Unity #GameDev #Multiplayer #Photon #PUN2 #NetworkCode
