Враги
остаются в сцене тк я создаю их чрез PhotonNetwork.InstantiateRoomObject
НО на врагах висит скрипт с PhotonView и NavMesh И у меня на него ругается Юнька и игра на паузу встает.
Ругается на строку if (pv.IsMine && _agent.enabled) . Что я упускаю? Проблема очевидно в pv . Если смотреть в инспекторе у Photon View меняется Овнер и Контроллер
скинь скрипт
public class ZombieMotor : MonoBehaviour { private NavMeshAgent _agent; public float speed, rangeFindPoint, maxHp; PhotonView pv; EnemyHp _hp; Animator anim; public bool agressiveMode = false; public GameObject target; public Vector3 RandomNavmeshLocation(float radius) { Vector3 randomDirection = Random.insideUnitSphere * radius; randomDirection += transform.position; NavMeshHit hit; Vector3 finalPosition = Vector3.zero; if (NavMesh.SamplePosition(randomDirection, out hit, radius, 1)) { finalPosition = hit.position; } return finalPosition; } public void Start() { pv = GetComponent<PhotonView>(); if (pv.IsMine) { anim = GetComponent<Animator>(); _hp = GetComponent<EnemyHp>(); maxHp = _hp.enemyHP; _agent = GetComponent<NavMeshAgent>(); RandomPoint(); } } private void Update() { if (pv.IsMine && _agent.enabled) { if (target == null) { if (_agent.remainingDistance <= rangeFindPoint) { RandomPoint(); } } else { _agent.SetDestination(target.transform.position); } if (_hp.enemyHP <= maxHp / 2f) { anim.SetBool("Damaged", true); } if (_hp.enemyHP <= 0) { _agent.enabled = false; anim.SetBool("Death", true); } } } public void RandomPoint() { _agent.speed = speed; _agent.SetDestination(RandomNavmeshLocation(10f)); } public void Death() { if (pv.IsMine) { PhotonNetwork.Destroy(gameObject); } } public void SetTarget(int _id) { pv.RPC("TTTorr", RpcTarget.All, _id); } [PunRPC] void TTTorr(int id) { target = PhotonView.Find(id).gameObject; } }
Длинные полотна кода плохо читаются и засоряют чат. Используйте https://pastebin.com/ для форматирования кода
Обсуждают сегодня