예제 #1
0
 public void Destroy_Stone()//오브젝트 파괴시 서버에 정보를 넘겨줌
 {
     if (Singleton.instance.pStone.status == 1)
     {
         DIE_M des_num = Stones[Singleton.instance.pStone.number].GetComponent <DIE_M>();
         Destroy(des_num.gameObject);
         Singleton.instance.Reset_Stone();
     }
 }
예제 #2
0
 public void Destroy_bullet() // 오브젝트 파괴 시 서버에 번호를 넘겨줌
 {
     if (Singleton.instance.pBullet.status == 1)
     {
         DIE_M des_num = bullets[Singleton.instance.pBullet.number].GetComponent <DIE_M>();
         Destroy(des_num.gameObject);
         Singleton.instance.Reset_Bullet();
     }
 }
예제 #3
0
 public void Destroy_tree() //오브젝트 파괴 시 번호를 서버에 넘겨줌
 {
     if (Singleton.instance.pTree.status == 1)
     {
         DIE_M des_num = trees[Singleton.instance.pTree.number].GetComponent <DIE_M>();
         Destroy(des_num.gameObject);
         Singleton.instance.Reset_Tree();
     }
 }
예제 #4
0
 public void Set_Num()//시작 시 오브젝트 번호 설정
 {
     for (int i = 0; i < bullets.Length; i++)
     {
         DIE_M num = bullets[i].GetComponent <DIE_M>();
         if (num != null)
         {
             num.Num = i;
         }
     }
 }
예제 #5
0
    public void Rays()
    {
        RaycastHit rayhit;

        if (Mode == 0)
        {
            Atk = true;
            transform.GetComponent <AudioSource>().clip = AttackSound;
            transform.GetComponent <AudioSource>().Play();
            if (player == Player_number)
            {
                if (Physics.Raycast(cam.transform.position, cam.transform.forward, out rayhit, 0.2f, layerMask))
                {
                    DIE_M dies = rayhit.transform.GetComponent <DIE_M>();
                    if (dies != null)
                    {
                        ParticleSystem PCS = Instantiate(PS.gameObject).GetComponent <ParticleSystem>();
                        PCS.transform.position = new Vector3(rayhit.transform.position.x, transform.position.y + 0.2f, rayhit.transform.position.z);
                        PCS.transform.LookAt(transform);
                        PCS.Play();
                        dies.ondie(Player_number);
                    }
                    if (rayhit.transform.tag == "Player")
                    {
                        rayhit.transform.GetComponent <Rigidbody>().velocity = new Vector3(0, 1, 0) + transform.forward * 1.5f;
                    }
                }
            }
        }
        else if (Mode == 1 && minBullet > 0) //사격 모드
        {
            if (player == Player_number && cam.fieldOfView > 10)
            {
                GameObject Sep1 = Instantiate(Shotep1, T_Shotep1);
                GameObject Sep2 = Instantiate(Shotep2, T_Shotep1);
            }
            else
            {
                GameObject Sep1 = Instantiate(Shotep1, T_Shotep2);
                GameObject Sep2 = Instantiate(Shotep2, T_Shotep2);
            }
            GameObject gShot = Instantiate(shot, shotposition);
            gShot.GetComponent <Shot>().name      = Guns;
            gShot.GetComponent <Shot>().layermask = layerMask;
            MouseX += G_Rebound(Guns, 2);
            MouseY += G_Rebound(Guns, 1);
            shotposition.DetachChildren();
            ani.SetLayerWeight(1, 0.8f);
            minBullet--;
        }
        else if (Mode == 2) // 빌트박스를 통해 건물 오브젝트 설치
        {
            if (MinMaterial <= MaxMaterial)
            {
                if (Buildbox.active)
                {
                    float   dis = Vector3.Distance(cam.transform.position, Buildbox.transform.position);
                    Vector3 v3  = Buildbox.transform.position - cam.transform.position;
                    if (Physics.Raycast(cam.transform.position, v3, out rayhit, dis, LayerMask.NameToLayer("UI"))) // 중복체크
                    {
                        if (rayhit.transform.tag == "floor")
                        {
                            CreateCheck = false;
                        }
                        else
                        {
                            CreateCheck = true;
                        }
                    }
                    else
                    {
                        CreateCheck = true;
                    }
                    if (Buildbox.GetComponent <buildbox>().Check&& CreateCheck)
                    {
                        MaxMaterial -= MinMaterial;
                        MaterialChange(MaxMaterial);
                        Singleton.instance.Send_Floor(MaterialMode, Buildbox.transform.position.x, Buildbox.transform.position.y, Buildbox.transform.position.z, Player_number);
                        gb = Instantiate(selobj);
                        gb.transform.position = Buildbox.transform.position;
                    }
                }
                else if (Buildbox2.active)
                {
                    if (Buildbox2.GetComponent <WallbuildBox>().Check)
                    {
                        gb = Instantiate(selobj);
                        gb.transform.position = Buildbox2.transform.position;
                        gb.transform.rotation = Buildbox2.transform.rotation;
                        MaxMaterial          -= MinMaterial;
                        MaterialChange(MaxMaterial);
                    }
                }
            }
        }
    }