Exemple #1
0
    protected override void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.layer == 9)
        {
            TakeOverBehaviour.TakeOver(other.gameObject);
        }

        Invoke("Kill", 0.02f);
        TimeBehaviour.EndSlowMotion();
    }
Exemple #2
0
    private void CalculateIfPlayerHitsFromBehind(RaycastHit hit)
    {
        Vector3 playerForwardVector = transform.forward;
        Vector3 enemyForwardVector  = hit.collider.gameObject.transform.forward;


        //reset height
        playerForwardVector.y = enemyForwardVector.y;
        Debug.DrawRay(hit.collider.transform.position, hit.collider.gameObject.transform.forward, Color.red, 3.0f);
        Debug.DrawRay(this.transform.position, transform.forward, Color.green, 3.0f);
        //check if player attacks from behind
        float dotProductResult = Vector3.Dot(playerForwardVector, enemyForwardVector);

        dotProductResult = dotProductResult / (playerForwardVector.magnitude * enemyForwardVector.magnitude);
        if (Mathf.Acos(dotProductResult) < _acceptedAngleFromBehindInRadians)
        {
            _takeOverBehaviour.TakeOver(hit.collider.gameObject);
        }
    }