how to spawn a prefab with filled object fields from scene photon network

Viewed 23

The game is working correctly and there arent any other issues apart from the fact that the public fields from the players scripts that are supposed to be filled with game objects from the scene arent filled and im not sure how to do that.

here is the code im using:

this is how to instantiate the player using photon servers (what i am using)

    public GameObject playerToSpawn;
        PhotonNetwork.Instantiate(playerToSpawn.name, spawnPoint.position, Quaternion.identity);

There are 2 buttons i need you to fix: a Shoot button and a Hit button (those are the names). Here is the code for them:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ShootButton : MonoBehaviour
{
//i made this script for the button incase you may 
have 
needed it
}

Here is the shooting script attached to the player:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Weapon : MonoBehaviour
{
public Transform firePoint;
public GameObject bulletPrefab;
public Button ShootButton;

void Start()
{
    ShootButton.onClick.AddListener(ShootButtonTrue);
}

void ShootButtonTrue()
{
    Shoot();
}

void Shoot()
{
    Instantiate(bulletPrefab, firePoint.position, 
firePoint.rotation);
}
}

Here is the hitting script attached to the Hit button

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HitButton : MonoBehaviour
{

}

And here is the Player Combat script using for hitting:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class PlayerCombat : MonoBehaviour
{
public Animator animator;
public Button AttackButton;
public Transform attackPoint;
public float attackRange = 0.5f;
public LayerMask enemyLayers;

void Start()
{
    AttackButton.onClick.AddListener(AttackButtonTrue);
}

void AttackButtonTrue()
{
    Attack();
}

void Attack()
{
    animator.SetTrigger("Attack");
    Collider2D[] hitEnemies = Physics2D.OverlapCircleAll(attackPoint.position, attackRange, enemyLayers);
    foreach(Collider2D enemy in hitEnemies)
    {
        Debug.Log("u hit someone :O");
        enemy.GetComponent<Health>().TakeDamage(15);
    }
}

void OnDrawGizmosSelected()
{
    if (attackPoint == null)
        return;

    Gizmos.DrawWireSphere(attackPoint.position, attackRange);
}

}

if you need any other pieces of code just ask

thanks in advance, i will mark the answer as an answer if its a good answer

0 Answers
Related