Ejemplo n.º 1
0
    private Vector3 AdjustMoveVector(Vector3 moveVector)
    {
        InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();

        if (inGameSceneMain != null)
        {
            Transform mainBGQuadTransform = inGameSceneMain.MainBGQuadTransform;
            Vector3   result = boxCollider.transform.position + boxCollider.center + moveVector;

            if (result.x - boxCollider.size.x * 0.5f < -mainBGQuadTransform.localScale.x * 0.5f)
            {
                moveVector.x = 0;
            }

            if (result.x + boxCollider.size.x * 0.5f > mainBGQuadTransform.localScale.x * 0.5f)
            {
                moveVector.x = 0;
            }

            if (result.y - boxCollider.size.y * 0.5f < -mainBGQuadTransform.localScale.y * 0.5f)
            {
                moveVector.y = 0;
            }

            if (result.y + boxCollider.size.y * 0.5f > mainBGQuadTransform.localScale.y * 0.5f)
            {
                moveVector.y = 0;
            }
        }

        return(moveVector);
    }
Ejemplo n.º 2
0
    void OnItemCollision(Collider other)
    {
        Player player = other.GetComponentInParent <Player>();

        if (player == null)
        {
            return;
        }

        if (player.IsDead)
        {
            return;
        }

        if (player.isLocalPlayer)
        {
            switch (itemEffect)
            {
            case ItemEffect.HPRecovery:
                player.IncreaseHP(HPRecoveryValue);
                break;

            case ItemEffect.ScoreAdd:
                InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();
                inGameSceneMain.GamePointAccumulator.Accumulate(ScoreAddValue);
                break;

            case ItemEffect.UsableItemAdd:
                player.IncreaseUsableItem();
                break;
            }
        }

        Disappear();
    }
Ejemplo n.º 3
0
    protected override void Initialize()
    {
        base.Initialize();


        InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();

        if (isLocalPlayer)
        {
            inGameSceneMain.Hero = this;
        }
        else
        {
            inGameSceneMain.OtherPlayer = this;
        }

        if (isServer && isLocalPlayer)
        {
            Host = true;
            RpcSetHost();
        }

        if (!Host)
        {
            MeshRenderer meshRenderer = GetComponentInChildren <MeshRenderer>();
            meshRenderer.material = ClientPlayerMaterial;
        }

        if (actorInstanceID != 0)
        {
            inGameSceneMain.ActorManager.Regist(actorInstanceID, this);
        }

        InitializePlayerHUD();
    }
Ejemplo n.º 4
0
    void InitializePlayerHUD()
    {
        InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();
        GameObject      go         = Resources.Load <GameObject>(PlayerHUDPath);
        GameObject      goInstance = Instantiate <GameObject>(go, Camera.main.WorldToScreenPoint(transform.position), Quaternion.identity, inGameSceneMain.DamageManager.CanvasTransform);
        PlayerHUD       playerHUD  = goInstance.GetComponent <PlayerHUD>();

        playerHUD.Initialize(this);
    }
Ejemplo n.º 5
0
    private void InitializeHud()
    {
        InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();
        GameObject      go         = Resources.Load <GameObject>(playerHudPath);
        GameObject      goInstance = Instantiate(go, inGameSceneMain.DamageManager.CanvasTransform);
        PlayerHud       playerHud  = goInstance.GetComponent <PlayerHud>();

        playerHud.Initialize(this);
    }
Ejemplo n.º 6
0
    void InitializePlayerHUD()
    {
        InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();
        GameObject      go          = Resources.Load <GameObject>(PlayerHUDPath);
        GameObject      goInstrance = Instantiate <GameObject>(go, inGameSceneMain.DamageManager.CanvasTransform);
        PlayerHUD       playerHUD   = goInstrance.GetComponent <PlayerHUD>();

        playerHUD.Initialize(this);
    }
Ejemplo n.º 7
0
 // Start is called before the first frame update
 void Start()
 {
     if (!((FWNetworkManager)FWNetworkManager.singleton).isServer)
     {
         InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();
         transform.SetParent(inGameSceneMain.BulletManager.transform);
         inGameSceneMain.BulletCacheSystem.Add(FilePath, gameObject);
         gameObject.SetActive(false);
     }
 }
Ejemplo n.º 8
0
    public void RpcGameStart()
    {
        CountingStartTime = Time.time;
        currentGameState  = GameState.Ready;

        InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();

        inGameSceneMain.EnemyManager.Prepare();
        inGameSceneMain.BulletManager.Prepare();
        inGameSceneMain.ItemBoxManager.Prepare();
    }
Ejemplo n.º 9
0
    public override void OnServerReady(NetworkConnection conn)
    {
        Debug.Log("OnServerReady : " + conn.address + ", " + conn.connectionId);
        base.OnServerReady(conn);

        PlayerCount++;
        if (PlayerCount >= WatingPlayerCount)
        {
            InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();
            inGameSceneMain.GameStart();
        }
    }
Ejemplo n.º 10
0
    // Start is called before the first frame update
    void Start()
    {
        if (!((FWNetwortkManager)FWNetwortkManager.singleton).isServer)
        {
            //클라이언트는 에너미를 호스트로부터 받아서 사용하기 때문에 따로 EnemyCacheSystem 등록해야함

            InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();
            transform.SetParent(inGameSceneMain.BulletManager.transform);
            inGameSceneMain.BulletCacheSystem.Add(FilePath, gameObject);
            gameObject.SetActive(false);
        }
    }
Ejemplo n.º 11
0
    protected override void OnDead()
    {
        base.OnDead();

        InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();

        inGameSceneMain.GamePointAccumulator.Accumulate(GamePoint);
        inGameSceneMain.EnemyManager.RemoveEnemy(this);

        GenerateItem();

        CurrentState = State.Dead;
    }
    public void RpcGameStart()
    {
        //서버에서 게임 시작하고 클라이언트에도 자동으로 전달됨.
        //게임 시작과 동시에 적, 총알, 이펙트 사전 준비(캐시 생성)

        Debug.Log("RpcGameStart");
        CountingStartTime = Time.time;
        currentGameState  = GameState.Ready;

        InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();

        inGameSceneMain.EnemyManager.Prepare();
        inGameSceneMain.BulletManager.Prepare();
    }
    public override void OnClientDisconnect(NetworkConnection conn)
    {
        Debug.Log("OnClientDisconnect : " + conn.hostId);

        if (!isServer)
        {
            InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();
            if (inGameSceneMain.CurrentGameState == GameState.End)
            {
                inGameSceneMain.GotoTitleScene();
                return;
            }
        }

        base.OnClientDisconnect(conn);
    }
Ejemplo n.º 14
0
 // Update is called once per frame
 void Update()
 {
     if (!AllSquadronGenerated)
     {
         CheckSquadronGeneratings();
     }
     else if (!ShowWarningUICalled)
     {
         InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();
         if (SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>().EnemyManager.GetEnemyListCount() == 0)
         {
             inGameSceneMain.ShowWarningUI();
             ShowWarningUICalled = true;
         }
     }
 }
Ejemplo n.º 15
0
    protected override void Initialize()
    {
        base.Initialize();

        InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();

        if (!((FWNetworkManager)FWNetworkManager.singleton).isServer)
        {
            transform.SetParent(inGameSceneMain.EnemyManager.transform);
            inGameSceneMain.EnemyCacheSystem.Add(FilePath, gameObject);
            gameObject.SetActive(false);
        }

        if (actorInstanceID != 0)
        {
            inGameSceneMain.ActorManager.Regist(actorInstanceID, this);
        }
    }
Ejemplo n.º 16
0
    void GenerateItem()
    {
        if (!isServer)
        {
            return;
        }

        // 아이템 생성 확율을 검사
        float ItemGen = Random.Range(0.0f, 100.0f);

        if (ItemGen > ItemDropRate)
        {
            return;
        }

        ItemDropTable  itemDropTable = SystemManager.Instance.ItemDropTable;
        ItemDropStruct dropStruct    = itemDropTable.GetDropData(ItemDropID);

        // 어느 아이템을 생성할 것인지 확율 검사
        ItemGen = Random.Range(0, dropStruct.Rate1 + dropStruct.Rate2 + dropStruct.Rate3);
        int ItemIndex = -1;

        if (ItemGen <= dropStruct.Rate1)     // 1번 아이템 비율보다 작은 경우
        {
            ItemIndex = dropStruct.ItemID1;
        }
        else if (ItemGen <= (dropStruct.Rate1 + dropStruct.Rate2))   // 2번 아이템 비율보다 작은 경우
        {
            ItemIndex = dropStruct.ItemID2;
        }
        else //if (ItemGen <= (dropStruct.Rate1 + dropStruct.Rate2 + dropStruct.Rate3)) // 3번 아이템 비율인 경우
        {
            ItemIndex = dropStruct.ItemID3;
        }

        Debug.Log("GenerateItem ItemIndex = " + ItemIndex);

        InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();

        inGameSceneMain.ItemBoxManager.Generate(ItemIndex, transform.position);
    }
Ejemplo n.º 17
0
    protected override void Intialize()
    {
        base.Intialize();

        InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();

        if (isLocalPlayer)
        {
            inGameSceneMain.Hero = this;
        }

        if (isServer && isLocalPlayer)
        {
            Host = true;
            RpcSetHost();
        }

        Transform startTransform;

        if (Host) //호스트라면 1번 위치
        {
            startTransform = inGameSceneMain.PlayerStartTransform1;
        }
        else // 아니면 2번위치
        {
            startTransform = inGameSceneMain.PlayerStartTransform2;
            MeshRenderer meshRenderer = GetComponentInChildren <MeshRenderer>();
            meshRenderer.material = ClientPlayerMaterial;
        }


        SetPosition(startTransform.position);

        if (actorInstanceID != 0)
        {
            inGameSceneMain.ActorManager.Regist(actorInstanceID, this);
        }

        InitializePlayerHUD();
    }
Ejemplo n.º 18
0
    protected override void Initialize()
    {
        base.Initialize();

        if (IsServer && IsLocalPlayer)
        {
            isHost.Value = true;
        }

        InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>();

        if (IsLocalPlayer)
        {
            inGameSceneMain.Player = this;
        }

        Transform startTransform;

        if (isHost.Value)
        {
            startTransform = inGameSceneMain.PlayerStartTransform1;
        }
        else
        {
            startTransform = inGameSceneMain.PlayerStartTransform2;
            MeshRenderer meshRenderer = GetComponentInChildren <MeshRenderer>();
            meshRenderer.material = clientPlayerMaterial;
        }

        SetPosition(startTransform.position);

        if (actorInstanceId.Value != 0)
        {
            // Player 등록
            inGameSceneMain.ActorManager.Regist(actorInstanceId.Value, this);
        }

        InitializeHud();
    }