コード例 #1
0
    // 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);
    }
コード例 #2
0
 // Registers start colors if server and assigns pad start colors
 void Start()
 {
     if (isServer)
     {
         colorCoordinator = FindObjectOfType <ColorCoordinator>();
         currentPadColor  = RegisterPadColor();
         nextPadColor     = RegisterPadColor();
     }
     AssignPadColors(currentPadColor, nextPadColor);
 }