コード例 #1
0
 protected virtual void OnTriggerEnter(Collider other)
 {
     if (other.gameObject.layer == LayerMask.NameToLayer("Area"))
     {
         currentArea = other.gameObject.GetComponent <Area>();
         OnEnterArea?.Invoke(this, new FrisbeeEventArgs(lastPlayer, currentArea));
     }
     else if (other.gameObject.layer == LayerMask.NameToLayer("Player"))
     {
         Player player = other.gameObject.GetComponent <Player>();
         player.OnCatchFrisbee(this);
     }
     else if (other.gameObject.layer == LayerMask.NameToLayer("Wall"))
     {
         Wall wall = other.gameObject.GetComponent <Wall>();
         Bounce(wall.BouncingVector);
     }
     else if (other.gameObject.layer == LayerMask.NameToLayer("Deadzone"))
     {
         FindObjectOfType <GameMatchManager>().Goal(false, 0);
     }
     else if (other.gameObject.layer == LayerMask.NameToLayer("Goal"))
     {
         var fake = gameObject.GetComponent <FakeFrisbee>();
         if (fake == null)
         {
             var goal = other.gameObject.GetComponent <Goal>();
             OnGoal?.Invoke(this, new FrisbeeGoalEventArgs(goal));
         }
     }
 }
コード例 #2
0
 private void OnTriggerEnter(Collider other)
 {
     if (other.gameObject.tag == "cubic")
     {
         if (other.TryGetComponent(out Renderer rend))
         {
             rend.material = collectedCubeMat;
         }
         other.attachedRigidbody.velocity = (transform.position - other.transform.position) * magnetForce;
         other.gameObject.layer           = 8;
         OnEnterArea?.Invoke(this);
     }
 }
コード例 #3
0
 private void EnterArea(params object[] param)
 {
     OnEnterArea?.Invoke(param[0]);
 }