0

弾丸収集スクリプトを使用して、プレイヤーのヘルスが 1 を下回ったときにプレイヤーを削除してリスポーンしようとしています。しかし、ユニティ C# 関数を呼び出すスクリプトが正しく機能していません。呼び出しようとしている関数は

Assets/Levels/Resources/bulletCollision.js(27,16): BCE0019: 'SpawnMyPlayer' は 'UnityEngine.Component' のメンバーではありません。

また、これは殺されたプレイヤーをリスポーンする適切な方法ですか?

NetworkManager.cs:

using UnityEngine;
using System.Collections;

public class NetworkManager : MonoBehaviour {
    public Camera standbyCamera;
    // Use this for initialization
    SpawnSpot[] spawnSpots; 
    void Start () {
        Connect ();
        spawnSpots = GameObject.FindObjectsOfType<SpawnSpot> ();
    }

    void Connect(){
        PhotonNetwork.ConnectUsingSettings ("1.0.0");
    }

    void OnGui(){
        Debug.Log ("OnGui" + PhotonNetwork.connectionStateDetailed.ToString ());
        GUILayout.Label (PhotonNetwork.connectionStateDetailed.ToString ());
    }
    // Update is called once per frame
    void OnJoinedLobby () {
        Debug.Log ("Joined Lobby");
        PhotonNetwork.JoinRandomRoom ();
        }
    void OnPhotonRandomJoinFailed(){
        Debug.Log ("Failed Join");
        PhotonNetwork.CreateRoom (null);
    }
    void OnJoinedRoom() {
        Debug.Log ("Joined Room");
        SpawnMyPlayer ();
    }
    void SpawnMyPlayer(){
        SpawnSpot mySpawnSpot = spawnSpots [ Random.Range (0, spawnSpots.Length) ];

        GameObject myPlayer = PhotonNetwork.Instantiate ("Player", mySpawnSpot.transform.position, mySpawnSpot.transform.rotation, 0);
        standbyCamera.enabled = false;

        ((MonoBehaviour)myPlayer.GetComponent("FPSInputController")).enabled = true;
        ((MonoBehaviour)myPlayer.GetComponent("PlayerCounters")).enabled = true;
        ((MonoBehaviour)myPlayer.GetComponent("Tankbody")).enabled = true;
        ((MonoBehaviour)myPlayer.GetComponent("tankMove")).enabled = true;
        ((MonoBehaviour)myPlayer.GetComponent("CharacterMotor")).enabled = true;
        myPlayer.transform.FindChild("Main Camera").gameObject.SetActive(true);

    }
}

弾丸collision.js:

#pragma strict

var myClip: AudioClip;
var damage :float = 0;
var bullet_force: float = shoot.shootForce;


function OnCollisionEnter ( collision : Collision)
{

    Destroy(gameObject);

if(collision.transform.name ==("TankBody")){
    var hitCount = gameObject.Find("HitCount").GetComponent(GUIText);
    damage = Random.Range(10,30);
    PlayerCounters.playerHealth -= damage;  
    hitCount.text = "Hit: " + damage.ToString();

    AudioSource.PlayClipAtPoint(myClip, transform.position);

    if(PlayerCounters.playerHealth <0){
        Destroy(gameObject.Find("Player"));
        PlayerCounters.playerHealth = 0;
        PlayerCounters.playerKills += 1;
        var cs = GameObject.Find("CSharpGameObj");
        var script = cs.GetComponent("NetworkManager");
        script.SpawnMyPlayer();
    }

}

}
4

1 に答える 1