コード例 #1
0
ファイル: Projectile.cs プロジェクト: Arqu3/Sol
    void OnCollisionEnter2D(Collision2D col)
    {
        GameObject particles = (GameObject)SolGame.SpawnResourceByName("ProjectileParticles", col.contacts[0].point, 1.0f);
        Vector2    normal    = col.contacts[0].normal;

        particles.transform.rotation = Quaternion.FromToRotation(Vector3.forward, normal);
        ProjectileParticles pp = particles.GetComponent <ProjectileParticles>();

        if (pp)
        {
            pp.SetColor(GetComponent <SpriteRenderer>().color);
        }

        PhysicsEntity pEntity = col.gameObject.GetComponent <PhysicsEntity>();

        if (pEntity)
        {
            pEntity.OnHit();
        }

        if (m_Bounce)
        {
            if (m_CurBounce >= m_NumBounce)
            {
                Destroy(gameObject);
            }
            else
            {
                ++m_CurBounce;
                m_Rigidbody.velocity = Vector2.Reflect(m_Velocity, normal);
                m_Velocity           = m_Rigidbody.velocity;
            }
        }
        else
        {
            Destroy(gameObject);
        }
    }
コード例 #2
0
    void OnCollisionEnter2D(Collision2D col)
    {
        if (m_IsDash)
        {
            string tag = col.gameObject.tag;
            if (tag != "Enemy" && tag != "Projectile")
            {
                InterruptDash();
            }

            PhysicsEntity pEntity = col.gameObject.GetComponent <PhysicsEntity>();
            if (pEntity)
            {
                pEntity.OnHit();

                DashCooldown cd = GetFirstActiveCooldown();
                if (cd)
                {
                    cd.Reset();
                }
            }
        }
    }