Пример #1
0
    public void TriggerLeft(Collider collider, Vector3 inwardVector)
    {
        posAfter = fpController.transform.position;
        Vector3 dif = posAfter - posBefore;

        if (dif.magnitude <= 3)
        {
            return;             // The player hasn't moved through the trigger
        }
        // deactivate ghoul
        var currentHex = mainHex;

        var directionAngle = Vector3.Angle(inwardVector, dif);

        var destHex = directionAngle < 90 ? currentHex : hexBefore;

        var outCollider = destHex.transform.Find("Hallway Trigger").GetComponent <Collider>();

        if (directionAngle < 90)
        {
            // going into hex
            librarian.MovedToNextRoom();
            MovedToNextRoom();
        }
        else
        {
            // going out of hex
            librarian.MovedToPreviousRoom();
            MovedToPreviousRoom();
        }

        var currentColPos    = collider.transform.position;
        var currentColOffset = librarian.transform.position - currentColPos;
        var outColPos        = outCollider.transform.position;

        librarian.transform.position = outColPos + currentColOffset;

        UpdateSurroundingHexLocations();
        foreach (var hex in surroundingHexagons)
        {
            hex.RespawnGhoul();
        }
    }