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); }
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(); }
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(); }
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); }
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); }
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); }
// 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); } }
public void RpcGameStart() { CountingStartTime = Time.time; currentGameState = GameState.Ready; InGameSceneMain inGameSceneMain = SystemManager.Instance.GetCurrentSceneMain <InGameSceneMain>(); inGameSceneMain.EnemyManager.Prepare(); inGameSceneMain.BulletManager.Prepare(); inGameSceneMain.ItemBoxManager.Prepare(); }
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(); } }
// 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); } }
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); }
// 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; } } }
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); } }
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); }
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(); }
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(); }