示例#1
0
    void OnCollisionEnter2D(Collision2D collision)
    {
        //Debug.Log(collision.collider.gameObject.layer);

        if (collision.collider.gameObject.layer == LayerMask.NameToLayer("ground"))
        {
            //print("object is " + collision.collider.gameObject.name);
            Destroy(gameObject);
        }
        else if (collision.collider.gameObject.layer == LayerMask.NameToLayer("enemy"))
        {
            //print("object is " + collision.collider.gameObject.name);
            Instantiate(BloodEffect, this.transform.position, Quaternion.identity);
            //Debug.Log("spawned blood effect");
            Destroy(gameObject);
        }

        ObjectToDamage = GameObject.Find(collision.collider.gameObject.name);
        HP             = ObjectToDamage.GetComponent <ObjectHP>();
        if (HP != null)
        {
            HP.reduceHP(playerBullateDamage);



            //print(ObjectToDamage.name + " has " + HP.currentHP);
        }

        Destroy(gameObject);
        //Collidedrb2D = gameObject.GetComponent<Rigidbody2D>();
    }
    void OnCollisionEnter2D(Collision2D collision)
    {
        //Debug.Log(collision.collider.gameObject.layer);

        if (collision.collider.gameObject.layer == LayerMask.NameToLayer("ground"))
        {
            //print("object is " + collision.collider.gameObject.name);
            Destroy(gameObject);
        }
        else if (collision.collider.gameObject.layer == LayerMask.NameToLayer("player"))
        {
            //print("object is " + collision.collider.gameObject.name);
            Destroy(gameObject);
        }
        else
        {
            Destroy(gameObject);
        }



        ObjectToDamage = GameObject.Find(collision.collider.gameObject.name);

        HP = ObjectToDamage.GetComponent <ObjectHP>();
        if (HP != null)
        {
            Collidedrb2D = gameObject.GetComponent <Rigidbody2D>();
            HP.reduceHP(enemyBulleteDamage);
        }

        //print(ObjectToDamage.name + " has " + HP.currentHP);
    }
示例#3
0
    void explodeBarrel()
    {
        //print("executed explode func");

        //instanciate partical effect
        Collider2D[] objectsInExplotion = Physics2D.OverlapCircleAll(transform.position, xplotionRadious);

        foreach (Collider2D nearbyObject in objectsInExplotion)
        {
            ObjectHP hp = nearbyObject.GetComponent <ObjectHP>();
            if (hp != null)
            {
                hp.reduceHP(BarrelDamage);
            }
            Rigidbody2D rb2d = nearbyObject.GetComponent <Rigidbody2D>();
            if (rb2d != null && nearbyObject.name != this.name)
            {
                //AddExplosionForce(rb2d, xplotionForce,transform.position);
                var explotionDir  = rb2d.position - (Vector2)transform.position;
                var explotionDist = explotionDir.magnitude;

                explotionDir.y = explotionDir.y + upwardsModifier;
                explotionDir.Normalize();
                //print("Name -- " + nearbyObject.name + " normalize explotdir -- " + explotionDir + "  explot dist --" + explotionDist);

                rb2d.AddForce(xplotionForce * explotionDir, ForceMode2D.Impulse);
            }
        }



        for (int i = 0; i < checkpointRad; i++)
        {
            float angle = i;
            for (float incremental = 0; incremental < xplotionRadious; incremental = incremental + .2f)
            {
                float x = Mathf.Cos(angle) * incremental;
                float y = Mathf.Sin(angle) * incremental;
                incermntlTileDustructForBarrel = this.transform.position + new Vector3(x, y, 0);
                Debug.DrawRay(incermntlTileDustructForBarrel, Vector3.up, Color.red);
                if (tilHlt.destructableTileMap.HasTile(tilHlt.destructableTileMap.WorldToCell(incermntlTileDustructForBarrel)))
                {
                    tilHlt.destructableTileMap.SetTile(tilHlt.destructableTileMap.WorldToCell(incermntlTileDustructForBarrel), null);
                    Instantiate(DestructionEffect, incermntlTileDustructForBarrel, Quaternion.identity);
                }
            }
        }



        willDestroyNextFrame = true;
        //explosionCameraShake.instance.shakeCamera(xPlotionshake, xPlotiontime);
    }
示例#4
0
    void Start()
    {
        mkbulletspnr = mookBulPoint.GetComponent <mookBulletSpawner>();
        playerPos    = GameObject.Find("player");


        rbenmy = GetComponent <Rigidbody2D>();
        mkbulletspnr.FireRate = 0;
        gndChecker            = gndChkrObjct.GetComponent <Transform>();
        myHP = GetComponent <ObjectHP>();

        //print(mkbulletspnr.FireRate);

        if (this.transform.eulerAngles.y == 180)
        {
            //Debug.Log(this.name+"is facing right");
            isMovingRight = true;
            isMovingLeft  = false;
        }
        if (this.transform.eulerAngles.y == 0)
        {
            //Debug.Log(this.name+"is facing left");
            isMovingRight = false;
            isMovingLeft  = true;
        }

        dicisionspread = UnityEngine.Random.Range(highValue, lowValue);
        if (dicisionspread > .5)
        {
            IsMoving      = true;
            IstakingBreak = false;
        }
        else if (dicisionspread < .5)
        {
            IsMoving      = false;
            IstakingBreak = true;
        }
    }