// Spawns an object in the world at random edge position and random angle private void SpawnEntity() { if (!isActive) { return; } Vector3 startPosition = GenerateStartLocation(); Quaternion startRotation = GenerateStartRotation(startPosition); // TODO: Warn player that a entity is approaching GameObject entity = Instantiate(prefab, startPosition, startRotation, transform); if (entity.tag == "Ship") { ShipHandler shipHandler = entity.GetComponent <ShipHandler>(); shipHandler.CurrentDirection = CalculateStartVelocity(entity); shipHandler.Speed = speed; if (speed <= 50) { speed += speedIncrease; } ColorCoordinator colorCoordinator = FindObjectOfType <ColorCoordinator>(); shipHandler.ShipColor = colorCoordinator.GetRandomPadColor(); } else { entity.GetComponent <Rigidbody>().velocity = CalculateStartVelocity(entity); } NetworkServer.Spawn(entity); }
// Registers start colors if server and assigns pad start colors void Start() { if (isServer) { colorCoordinator = FindObjectOfType <ColorCoordinator>(); currentPadColor = RegisterPadColor(); nextPadColor = RegisterPadColor(); } AssignPadColors(currentPadColor, nextPadColor); }