Beispiel #1
0
    void OnTriggerEnter(Collider other)
    // void OnCollisionEnter(Collision other)
    {
        Debug.Log("colidertest1:" + other);
        //other는 부딪힌 오브젝트 벽 또는 적에 맞으면 총알이 사라진다
        if (other.gameObject.tag == "Playerbullet")
        {
            Debug.Log("colidertest2:" + other);
            var player = GameObject.FindWithTag("Player").GetComponent <bossplayerinfo>();

            //몬스터의 체력은 플레이어 공격력 만큼 감소
            monsterhp = monsterhp - player.playerpower;

            if (monsterhp <= 0)
            {
                monsterhp = 0;
            }

            builder = new FlatBufferBuilder(1024);
            Monster.StartMonster(builder);
            Monster.AddMonsterstate(builder, 0);
            Monster.AddPower(builder, 0);
            Monster.AddHp(builder, 0);
            Monster.AddMonsterpos(builder, Vec3.CreateVec3(builder, 0, 0, 0));
            Monster.AddMonsterrot(builder, 0);
            Monster.AddAttacked(builder, 1);
            Monster.AddCurrenthp(builder, monsterhp);
            Offset <Monster> raidbossmonster = Monster.EndMonster(builder);

            var monsters = new Offset <Monster> [1];
            monsters[0] = raidbossmonster;
            var monstersOffset = Game.CreateMonsterVector(builder, monsters);


            Player.StartPlayer(builder);
            Player.AddStartstate(builder, PlayerStart.Play);
            Player.AddPower(builder, player.playerpower);
            Offset <Player> pypplayer = Player.EndPlayer(builder);



            Game.StartGame(builder);
            Game.AddPlayer(builder, pypplayer);
            Game.AddMonster(builder, monstersOffset);
            Game.AddTablenum(builder, 1);
            Offset <Game> game = Game.EndGame(builder);

            builder.Finish(game.Value);
            sendBuffer = builder.SizedByteArray();
            sendbb     = new ByteBuffer(sendBuffer);


            if (findteam.stream.CanWrite)
            {
                //데이터를 서버에 스트림으로 보낸다 bytearray
                findteam.stream.Write(sendBuffer, 0, sendBuffer.Length);
                findteam.stream.Flush();
            }



            string hp = monsterhp.ToString();
            //  monhp_text.text = hp;
            //  monhpbar.value = (float)monsterhp / (float)monstermaxhp;
            Debug.Log("player_hp: " + monsterhp);
        }

        if (other.gameObject.tag == "skill")
        {
            var player = GameObject.FindWithTag("Player").GetComponent <bossplayerinfo>();

            //몬스터의 체력은 플레이어 공격력 만큼 감소
            monsterhp = monsterhp - player.playerskillatk;

            if (monsterhp <= 0)
            {
                monsterhp = 0;
            }


            builder = new FlatBufferBuilder(1024);
            Monster.StartMonster(builder);
            Monster.AddMonsterstate(builder, 0);
            Monster.AddPower(builder, 0);
            Monster.AddHp(builder, 0);
            Monster.AddMonsterpos(builder, Vec3.CreateVec3(builder, 0, 0, 0));
            Monster.AddMonsterrot(builder, 0);
            Monster.AddCurrenthp(builder, monsterhp);
            Offset <Monster> raidbossmonster = Monster.EndMonster(builder);

            var monsters = new Offset <Monster> [1];
            monsters[0] = raidbossmonster;
            var monstersOffset = Game.CreateMonsterVector(builder, monsters);

            Player.StartPlayer(builder);
            Player.AddStartstate(builder, PlayerStart.Play);
            Player.AddPower(builder, player.playerskillatk);
            Offset <Player> pypplayer = Player.EndPlayer(builder);

            Game.StartGame(builder);
            Game.AddPlayer(builder, pypplayer);
            Game.AddMonster(builder, monstersOffset);
            Game.AddTablenum(builder, 1);
            Offset <Game> game = Game.EndGame(builder);

            builder.Finish(game.Value);
            sendBuffer = builder.SizedByteArray();
            sendbb     = new ByteBuffer(sendBuffer);


            if (findteam.stream.CanWrite)
            {
                //데이터를 서버에 스트림으로 보낸다 bytearray
                findteam.stream.Write(sendBuffer, 0, sendBuffer.Length);
                findteam.stream.Flush();
            }


            string hp = monsterhp.ToString();
            //monhp_text.text = hp;
            //monhpbar.value = (float)monsterhp / (float)monstermaxhp;
            Debug.Log("player_hp: " + monsterhp);
        }
    }