Я хотел позволить игроку создать «базу канонов», которая автоматически стреляет по некоторым «каноническим шарам», но (после попытки сделать это с помощью некоторого Debug.Log) я могу сказать, что только код до создания экземпляра «канонического шара»выполняется: (
Это упоминается как многопользовательская игра.
using UnityEngine.Networking;
public class PlayerScript : NewtworkBehaviour
{
public GameObject canonBase;
public Transform canonBaseSpawnPoint;
void Update()
{
if (Input.GetKeyDown(KeyCode.R))
{
CmdCreateCanon();
}
}
[Command]
void CmdCreateCanon()
{
GameObject _canonBase = Instantiate(canonBase.gameObject,
canonBaseSpawnPoint.transform.position, Quaternion.identity);
_canonBase.transform.rotation = canonBaseSpawnPoint.transform.rotation;
NetworkServer.SpawnWithClientAuthority(_canonBase, connectionToClient);
}
}
//other script:
using System.Timers;
using UnityEngine.Networking;
public class CanonScript : NetworkBehaviour
{
public GameObject canonBall;
public Transform canonSpawnPoint;
public int shootAmount;
void Start()
{
shoot = new Timer(shootTime * 1000);
shoot.Elapsed += Shoot_Elapsed;
shoot.Start();
}
void Shoot_Elapsed(object sender, ElapsedEventArgs e)
{
for (int i = 0; i < shootAmount; i++)
{
//Code written down here gets executed
GameObject _canonBall = Instantiate(CanonBall.gameObject, canonSpawnPoint.transform.position, Quaternion.identity) as GameObject;
_canonBall.transform.rotation = canonSpawnPoint.transform.rotation;
//Code written down here doesn't get Instantiated
}
}
}
Чтобы добавить:
с Debug.Log () я обнаружил, что код вцикл for выполняется, но все, что находится за кодом canonBall-Instantiation-code, не выполняется.
canonBall связан с BulletScript, поэтому он перемещается (это, вероятно, будет хорошо, потому что он также работает с другими объектами).
"... SpawnPoint" - это кубы с отключенными Mesh Renderer и Box Collider, которые были привязаны к GameObject, необходимому для создания экземпляра другого объекта ( Player -> canonBase; canonBase -> canonBall)
Редактировать: сейчас я думаю, что это не работает из-за цикла for или около того? (Потому что позволить игроку непосредственно создать canonBall (без таймера и для части цикла) простоотлично работает)