Это 2D игры Платформер типа Огонь и Вода Старая флеш игра
Я создал комнату и подключение к ней и после этого уровень, но при создании персонажей управление ими ломается
если управление персонажем осуществляется с помощью кнопок, но камера и само управление показаны на экране другого игрока а его - моего и как и что с ним делать
Помогите пожалуйста с этим кодом
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using UnityEngine.Events;
using Unity.VisualScripting;
public class MovemantMan : MonoBehaviourPun, IPunObservable
{
[SerializeField] private Rigidbody2D rb;
private bool moveleft;
private bool moveright;
private float horizontalMove;
public float speed = 5f;
public float jumpedSpeed = 5f;
private bool isGrounded;
private bool canDoubleJump;
public float delayBeforeDoubleJump;
private SpriteRenderer sr;
private Vector3 smoothMove;
private GameObject sceneCamera;
public GameObject playerCamera;
private void OnEnable()
{
ButtonTrigerCather._myEvent += Mycathcer;
}
private void Mycathcer(string obj)
{
if(photonView.IsMine)
{
switch (obj)
{
case "LeftUp":
moveleft = false;
Debug.Log("Left");
break;
case "RightUp":
moveright = false;
break;
case "LeftDown":
moveleft = true;
break;
case "RightDown":
moveright = true;
break;
case "Jump":
JumpButton();
break;
}
}
}
private void OnDisable()
{
ButtonTrigerCather._myEvent -= Mycathcer;
}
private void Start()
{
rb = GetComponent();
sr = GetComponent();
moveleft = false;
moveright = false;
if (photonView.IsMine)
{
playerCamera = GameObject.Find("Main Camera");
sceneCamera = GameObject.Find("Scene Camera");
if (sceneCamera != null)
sceneCamera.SetActive(false);
if (playerCamera != null)
playerCamera.SetActive(true);
}
}
// Input handlers
public void PointerDownLeft()
{
moveleft = true;
}
public void PointerUpLeft()
{
moveleft = false;
}
public void PointerDownRight()
{
moveright = true;
}
public void PointerUpRight()
{
moveright = false;
}
void Update()
{
if (photonView.IsMine)
{
ProcessInputs();
}
else
{
smoothMovement();
}
}
private void ProcessInputs()
{
photonView.RPC("MovePlayer", RpcTarget.Others);
MovePlayer();
}
[PunRPC]
private void MovePlayer()
{
if (moveleft)
{
horizontalMove = -speed;
sr.flipX = true;
}
else if (moveright)
{
horizontalMove = speed;
sr.flipX = false;
}
else
{
horizontalMove = 0;
}
Vector2 move = new Vector2(horizontalMove, rb.velocity.y);
rb.velocity = move;
}
public void JumpButton()
{
if (isGrounded)
{
isGrounded = false;
rb.velocity = Vector2.up * jumpedSpeed;
Invoke(nameof(EnableDoubleJump), delayBeforeDoubleJump);
}
else if (canDoubleJump)
{
rb.velocity = Vector2.up * jumpedSpeed;
canDoubleJump = false;
}
}
private void EnableDoubleJump()
{
canDoubleJump = true;
}
private void smoothMovement()
{
transform.position = Vector3.Lerp(transform.position, smoothMove, Time.deltaTime * 10);
}
public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
{
if (stream.IsWriting)
{
stream.SendNext(transform.position);
}
else if (stream.IsReading)
{
smoothMove = (Vector3)stream.ReceiveNext();
}
}
// Add collision detection to determine if the player is grounded
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Ground"))
{
isGrounded = true;
canDoubleJump = false; // Reset double jump
}
}
}
``
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
i'm trying everything what i can see in internet help please
Подробнее здесь: https://stackoverflow.com/questions/785 ... reaks-down
При создании персонажей у них ломается контроль ⇐ C#
Место общения программистов C#
-
Anonymous
1716781679
Anonymous
Это 2D игры Платформер типа Огонь и Вода Старая флеш игра
Я создал комнату и подключение к ней и после этого уровень, но при создании персонажей управление ими ломается
если управление персонажем осуществляется с помощью кнопок, но камера и само управление показаны на экране другого игрока а его - моего и как и что с ним делать
Помогите пожалуйста с этим кодом
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using UnityEngine.Events;
using Unity.VisualScripting;
public class MovemantMan : MonoBehaviourPun, IPunObservable
{
[SerializeField] private Rigidbody2D rb;
private bool moveleft;
private bool moveright;
private float horizontalMove;
public float speed = 5f;
public float jumpedSpeed = 5f;
private bool isGrounded;
private bool canDoubleJump;
public float delayBeforeDoubleJump;
private SpriteRenderer sr;
private Vector3 smoothMove;
private GameObject sceneCamera;
public GameObject playerCamera;
private void OnEnable()
{
ButtonTrigerCather._myEvent += Mycathcer;
}
private void Mycathcer(string obj)
{
if(photonView.IsMine)
{
switch (obj)
{
case "LeftUp":
moveleft = false;
Debug.Log("Left");
break;
case "RightUp":
moveright = false;
break;
case "LeftDown":
moveleft = true;
break;
case "RightDown":
moveright = true;
break;
case "Jump":
JumpButton();
break;
}
}
}
private void OnDisable()
{
ButtonTrigerCather._myEvent -= Mycathcer;
}
private void Start()
{
rb = GetComponent();
sr = GetComponent();
moveleft = false;
moveright = false;
if (photonView.IsMine)
{
playerCamera = GameObject.Find("Main Camera");
sceneCamera = GameObject.Find("Scene Camera");
if (sceneCamera != null)
sceneCamera.SetActive(false);
if (playerCamera != null)
playerCamera.SetActive(true);
}
}
// Input handlers
public void PointerDownLeft()
{
moveleft = true;
}
public void PointerUpLeft()
{
moveleft = false;
}
public void PointerDownRight()
{
moveright = true;
}
public void PointerUpRight()
{
moveright = false;
}
void Update()
{
if (photonView.IsMine)
{
ProcessInputs();
}
else
{
smoothMovement();
}
}
private void ProcessInputs()
{
photonView.RPC("MovePlayer", RpcTarget.Others);
MovePlayer();
}
[PunRPC]
private void MovePlayer()
{
if (moveleft)
{
horizontalMove = -speed;
sr.flipX = true;
}
else if (moveright)
{
horizontalMove = speed;
sr.flipX = false;
}
else
{
horizontalMove = 0;
}
Vector2 move = new Vector2(horizontalMove, rb.velocity.y);
rb.velocity = move;
}
public void JumpButton()
{
if (isGrounded)
{
isGrounded = false;
rb.velocity = Vector2.up * jumpedSpeed;
Invoke(nameof(EnableDoubleJump), delayBeforeDoubleJump);
}
else if (canDoubleJump)
{
rb.velocity = Vector2.up * jumpedSpeed;
canDoubleJump = false;
}
}
private void EnableDoubleJump()
{
canDoubleJump = true;
}
private void smoothMovement()
{
transform.position = Vector3.Lerp(transform.position, smoothMove, Time.deltaTime * 10);
}
public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
{
if (stream.IsWriting)
{
stream.SendNext(transform.position);
}
else if (stream.IsReading)
{
smoothMove = (Vector3)stream.ReceiveNext();
}
}
// Add collision detection to determine if the player is grounded
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Ground"))
{
isGrounded = true;
canDoubleJump = false; // Reset double jump
}
}
}
``
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
i'm trying everything what i can see in internet help please
Подробнее здесь: [url]https://stackoverflow.com/questions/78537111/when-creating-characters-their-control-breaks-down[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия