예제 #1
0
 public void OnCollisionEnter(Collision collision)
 {
     //计算完全弹性碰撞更新移动方向
     if (collision.gameObject.tag == "wall")
     {
         // StartCoroutine(Dunzhen());
         ContactPoint cp   = collision.contacts[0];
         Vector3      rdir = Vector3.Reflect(tdir, cp.normal);
         rdir.y = 0;
         transform.DOScale(CalculateScaleMatrix(tdir, 0.5f) * tempscaleAnim, 0.1f);//碰撞时的缩放动画
         tdir = rdir.normalized;
         //碰撞特效
         Material wallmat = collision.gameObject.transform.GetComponent <Renderer>().material;
         if (wallmat != null)
         {
             wallmat.SetVector("_Center", cp.point);
             wallmat.SetFloat("_speed", 0f);
             wallmat.SetFloat("_GridEmission", 20f);
             wallmat.SetFloat("_width", 1f);
         }
     }
     else if (collision.gameObject.tag == "Enemy")
     {
         if (gameMode == GameMode.Normal)
         {
             if (!isGameOver)
             {
                 //gameManager.showGlitchAndOver(2.0f, 2.0f);
                 isGameOver = true;
             }
         }
         else if (gameMode == GameMode.Teaching)
         {
             //gameManager.showGlitch(2.0f);
         }
         gameManager.GameOver();
     }
     if (audioSource)
     {
         audioSource.Play();
     }
 }