Exemple #1
0
    private bool IsItGesture()
    {
        Vector3 center  = SymbolsHelper.CalculateSymbolCenter(points);
        float   distSum = 0;

        foreach (Vector3 point in points)
        {
            float dist = Vector3.Distance(point, center);
            distSum += dist;
        }
        return(distSum > 0.5f);
    }
Exemple #2
0
    private void ListeningShotState()
    {
        if (hand.buttonsListener.GetStandardInteractionButtonUp())
        {
            Vector3 center       = SymbolsHelper.CalculateSymbolCenter(points);
            Vector3 head         = Player.instance.headCollider.transform.position;
            Vector3 targetVector = (center - head).normalized;

            //todo: to calculate speed vector use hand rotation, not center-head vector
            Game.EventService.SendMessage(new SpawnGodsFireballMessage(center, targetVector * 0.005f * points.Count));

            ToIdleState();
        }
    }
Exemple #3
0
    public static CustomSymbol CreateSymbol(List <Vector3> points)
    {
        List <Vector3> correctedCountPoints = CorrectPointsCount(points);
        Vector3        spellCenter          = SymbolsHelper.CalculateSymbolCenter(correctedCountPoints);

        Basis basisBasedOnPlayerSight       = CreateBasisBasedOnPlayerSight(spellCenter, Player.instance.headCollider.transform.position);
        Basis basisToProjectPointsToXyPlane = CreateBasisToProjectPointsToXyPlane(basisBasedOnPlayerSight);

        List <Vector3> poitnsProjectedToPlaneInPlayerSightBasis = MathHelper.ProjectPointsToPlane(correctedCountPoints, spellCenter, basisBasedOnPlayerSight.Forward);
        List <Vector3> pointsProjectedToXyPlane = ProjectPointsToXyPlane(poitnsProjectedToPlaneInPlayerSightBasis, spellCenter, basisToProjectPointsToXyPlane);
        List <Vector3> resizedPoints            = ResizeShapeToFitRecognitionSquare(pointsProjectedToXyPlane);

        SymbolAnalyzerResult result = SymbolAnalyzer.Instance.Analyze(resizedPoints);

        CustomSymbol newSymbol = new CustomSymbol();

        newSymbol.Type        = result.IsPassed() ? result.SymbolType : SymbolType.Unrecognized;
        newSymbol.Center      = spellCenter;
        newSymbol.Orientation = basisBasedOnPlayerSight;
        newSymbol.Size        = SymbolsHelper.GetWidthAndHeightOfShape(pointsProjectedToXyPlane).MaxDimension;

        return(newSymbol);
    }