void OnCollisionEnter(Collision collision)
    {
        if ("Hero".Equals(collision.collider.tag))
        {
            HeroController hero = collision.collider.GetComponent <HeroController>();
            if (_playerID == hero._heroID)
            {
                Debug.Log("子弹打到自己了。。。");
            }
        }
        if ("Player".Equals(collision.collider.tag))
        {
            PlayerController player = collision.collider.GetComponent <PlayerController>();
            if (_playerID != player._playerID)
            {
                Pb.Position position = new Pb.Position();
                position.X = collision.contacts[0].point.x;
                position.Y = collision.contacts[0].point.y;
                position.Z = collision.contacts[0].point.z;

                Pb.SkillContact crash = new Pb.SkillContact();
                crash.BulletId   = _bulletID;
                crash.SkillId    = _skillID;
                crash.SrcPid     = _playerID;
                crash.TargetPid  = player._playerID;
                crash.ContactPos = position;

                byte[] message = crash.ToByteArray();
                NetworkHandler.Instance.SendMessage(Protocol.GAME_MSG_SKILL_CONTACT, message);
            }
        }

        Destroy(this.gameObject);
    }
 private void SendPosition()
 {
     Pb.Position pos = new Pb.Position();
     pos.X          = this.transform.position.x;
     pos.Y          = this.transform.position.y;
     pos.Z          = this.transform.position.z;
     pos.V          = this.transform.localEulerAngles.y; //当前玩家的面朝方向应该获取欧拉角度的y轴旋转角度
     pos.BloodValue = this.HP;
     NetworkController.Instance.SendMessage(3, pos);
 }
    public void post()
    {
        Pb.Position position = new Pb.Position();
        position.X          = this.transform.position.x;
        position.Y          = this.transform.position.y;
        position.Z          = this.transform.position.z;
        position.V          = this.transform.localEulerAngles.y;
        position.BloodValue = (int)(_heroBlood.value * 1000.0f);

        byte[] message = position.ToByteArray();
        NetworkHandler.Instance.SendMessage(Protocol.GAME_MSG_NEW_POSTION, message);
    }
Exemple #4
0
 private void OnCollisionEnter(Collision collision)
 {
     //Debug.Log(collision.rigidbody.gameObject.tag);
     if (collision.collider.tag == "Player")
     {
         var pc = collision.collider.GetComponent <PlayerController>();
         if (PlayerId == pc.Pid)
         {
             return;
         }
     }
     else if (collision.collider.tag == "OtherPlayer")
     {
         var ai = collision.collider.GetComponent <AIController>();
         if (ai != null)
         {
             if (ai.Pid == this.PlayerId)
             {
                 return;
             }
             Pb.SkillContact contact = new Pb.SkillContact();
             contact.BulletId  = this.BulletId;
             contact.SkillId   = this.SkillId;
             contact.SrcPid    = this.PlayerId;
             contact.TargetPid = ai.Pid;
             Pb.Position contacPos = new Pb.Position();
             contacPos.X        = collision.contacts[0].point.x;
             contacPos.Y        = collision.contacts[0].point.y;
             contacPos.Z        = collision.contacts[0].point.z;
             contact.ContactPos = contacPos;
             NetworkController.Instance.SendMessage(NetworkController.Protocol.GAME_MSG_SKILL_CONTACT, contact);
         }
         else
         {
             Debug.Log("Can not get other player script");
         }
     }
     Destroy(this.gameObject);
 }