private void OnTriggerEnter(Collider other) { if (other.transform.tag == "Stage") { Debug.Log("Tagging : " + other.gameObject.name.ToString()); StartCoroutine(EffectPlayAndReturn(effect2)); } if (other.transform.tag == "Wall") { Debug.Log("Tagging : " + other.gameObject.name.ToString()); StartCoroutine(EffectPlayAndReturn(effect1)); } if (other.transform.tag == "Player") { float damage = RirisFSMManager.Stat.damageCoefiiecient[0] * 0.01f * (RirisFSMManager.Stat.Str + RirisFSMManager.Stat.addStrPerRound * GameStatus.Instance.StageLevel) - PlayerFSMManager.Instance.Stat.Defense; var hitTarget = GameLib.SimpleDamageProcess(this.transform, 0.01f, "Player", RirisFSMManager.Stat, damage * damageType); Invoke("AttackSupport", 0.5f); dameged = true; Debug.Log("Tagging : " + other.gameObject.name.ToString()); StartCoroutine(EffectPlayAndReturn(effect1)); } }
private void Update() { //_manager.Sight.enabled = false; _manager.Sight.transform.gameObject.SetActive(false); if (GameLib.DetectCharacter2(_manager.Sight, _manager.PlayerCS)) { } _time += Time.deltaTime; if (_time > _idleTime) { _manager._sightCount++; if ((_manager._sightCount % 2) == 1) { _manager.SetState(SauronState.RIGHTSIGHT); } if ((_manager._sightCount % 2) == 0) { _manager.SetState(SauronState.LEFTSIGHT); } _time = 0; } }
public void Update() { // 마우스 클릭시 상태 변환 if (Input.GetMouseButtonDown(0)) { // 상태 변동 //if (CurrntState == PlayerState.IDLE) SetState(PlayerState.Run); //else SetState(PlayerState.IDLE); // 클릭시 선이 보임 Ray r = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit rayhit; if (Physics.Raycast(r, out rayhit, 10000.0f, clickLayer)) { if (rayhit.transform.gameObject.layer == 9) { _marker.position = rayhit.point; SetState(PlayerState.Run); } else if (rayhit.transform.gameObject.layer == 10) { GameLib.Log(this, "Monster"); _target = rayhit.transform; SetState(PlayerState.Chase); } _marker.position = rayhit.point; // 마커를 가져오는 로직. } } }
private void Update() { // 시야에 없으면서 동시에 추적 시간 5초가 넘었을 시에 아이들로 돌아온다? // 복귀타이머 -> 복귀 // 추적상태에서 attack으로 넘어갈 때 2초 후 공격 시작하는 형식으로 그 사이 애니메이션 작동 //if (Vector3.Distance(_manager.PlayerTransform.position, transform.position) >= _manager.Stat.AttackRange) if (!GameLib.DetectCharacter2(_manager.Sight, _manager.PlayerCS)) { _manager.SetState(DroneState.IDLE); return; } //if (GameLib.DetectCharacter2(_manager.Sight, _manager.PlayerCS)) //{ // _manager.SetState(DroneState.ATTACKDELAY); // return; //} if (Vector3.Distance(_manager.PlayerTransform.position, transform.position) < _manager.Stat.AttackRange) { _manager.SetState(DroneState.ATTACKDELAY); return; } //_manager.CC.CKMove(_manager.PlayerTransform.position, _manager.Stat); //transform.LookAt(_manager.PlayerTransform); }
private void Update() { //_manager.CC.CKMove(destination, _manager.Stat); //transform.LookAt(destination); if (Vector3.Distance(destination, transform.position) < 0.3f) { _manager.SetState(MP01State.IDLE); return; } //시야에 있다. if (GameLib.DetectCharacter2(_manager.Sight, _manager.PlayerCS)) { _manager.SetState(MP01State.WATCH); _manager.SightLight[0].SetActive(false); _manager.SightLight[1].SetActive(true); return; } if (_manager.isAlertPatrol) { timer += Time.deltaTime; _manager.SightLight[0].SetActive(false); _manager.SightLight[1].SetActive(true); if (timer >= fifteen) { timer = 0; _manager.SightLight[0].SetActive(true); _manager.SightLight[1].SetActive(false); _manager.isAlertPatrol = false; } } }
private void Update() { _time += Time.deltaTime; if (_time > _animTime) { _manager.SightLight[1].SetActive(true); _manager.Sight.transform.gameObject.SetActive(true); } if (GameLib.DetectCharacter2(_manager.Sight, _manager.PlayerCS)) { _manager.SetState(SauronState.ATTACK); _manager.SightLight[1].SetActive(false); _manager.SightLight[3].SetActive(true); } if (_time > _sightTime) { _manager.SetState(SauronState.IDLE); _manager.Sight.transform.Rotate(Vector3.left * 180); _time = 0; _manager.SightLight[1].SetActive(false); } }
public void ItemSetActive(Transform respawnTrans, CharacterController start, Collider target) { if (InActiveItem.Count == 0) { CreateItem(); } var item = InActiveItem.First.Value; InActiveItem.RemoveFirst(); item.transform.position = respawnTrans.position; try { item.GetComponent <MacBullet>().LookAtTarget(); item.GetComponent <MacBullet>().dir = GameLib.DirectionToCharacter(start, target); item.GetComponent <MacBullet>()._Move = true; item.GetComponent <MacBullet>().mac = respawnTrans.GetComponentInParent <MacFSMManager>(); } catch { } item.SetActive(true); ActiveItem.AddLast(item); }
private void Update() { _time += Time.deltaTime; //if(_time >=_scanTime && _scanCount > 0) //{ // _manager.SetState(DroneState.SCANCHASE); // _time = 0; // --_scanCount; // _manager.isScan = true; //} if (GameLib.DetectCharacter2(_manager.Sight, _manager.PlayerCS) && !_manager.isScan) { _manager.SetState(DroneState.CHASE); return; } //if (!GameLib.DetectCharacter2(_manager.Sight, _manager.PlayerCS) && !_manager.isScan) //{ // _manager.SetState(DroneState.IDLE); // return; //} if (Vector3.Distance(destination, transform.position) < 3f)// && !_manager.isScan) { _manager.SetState(DroneState.IDLE); return; } if (_manager.PlayerTransform.position.y > transform.position.y + 9f) { _manager.SetState(DroneState.GOUPSTAIR); return; } }
public override void BeginState() { base.BeginState(); GameLib.SimpleDamageProcess(transform, _manager.Stat.AttackRange, "Player", _manager.Stat); Debug.Log("Damage"); }
public override void BeginState() { base.BeginState(); GetComponent <RedHatHIT>().StopAllCoroutines(); if (_manager.dashEffect != null) { _manager.dashEffect.SetActive(false); _manager.dashEffect = null; } StartCoroutine(GameLib.BlinkOff(_manager.materialList)); GameLib.DissoveActive(_manager.materialList, true); StartCoroutine(GameLib.Dissolving(_manager.materialList)); var voice = _manager.sound.monsterVoice; voice.PlayMonsterVoice(this.gameObject, voice.redhatDeadVoice); useGravity = false; _manager.CC.detectCollisions = false; _manager.mr.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; _manager.agent.speed = 0; _manager.agent.angularSpeed = 0; }
protected override void Update() { base.Update(); playerTrans = new Vector3(_manager.PlayerCapsule.transform.position.x, transform.position.y, _manager.PlayerCapsule.transform.position.z); DahsCheck(); this.transform.localRotation = Quaternion.RotateTowards(this.transform.rotation, Quaternion.LookRotation(PlayerFSMManager.GetLookTargetPos(transform) - transform.position, Vector3.up), 2f * Time.deltaTime); if (GameLib.DistanceToCharacter(_manager.CC, _manager.priorityTarget) < _manager.Stat.AttackRange) { _manager.SetState(RedHatState.ATTACK); } else { _manager.transform.LookAt(PlayerFSMManager.GetLookTargetPos(this.transform)); _manager.agent.destination = playerTrans; if (_manager.agent.remainingDistance >= 1.5f) { _manager.agent.isStopped = false; } else { _manager.agent.isStopped = true; } } }
protected override void Update() { _Time += Time.deltaTime; float maxDistance = _DashTime * _manager.Stat.statData._DashSpeed; if (_Time < _DashReadyTime) { } else if (_Time < _DashReadyTime + _DashTime) { _manager.isNotChangeState = true; transform.position = Vector3.MoveTowards(this.transform.position, dashEndPos, _manager.Stat.statData._DashSpeed * Time.deltaTime); } else if (_Time < _DashReadyTime + _DashTime + _DashAfterDelay) { _manager.CC.detectCollisions = true; } else if (_Time > _DashReadyTime + _DashTime + _DashAfterDelay) { if (GameLib.DistanceToCharacter(_manager.CC, _manager.priorityTarget) <= _manager.Stat.AttackRange) { _manager.SetState(RedHatState.ATTACK); } else { _manager.SetState(RedHatState.CHASE); } } }
public override void BeginState() { base.BeginState(); Vector3 direction = (_manager.PlayerCapsule.transform.forward).normalized; direction.y = 0; if (_manager.CurrentAttackType != AttackType.SKILL2) { try { StartCoroutine(GameLib.Blinking(_manager.materialList, Color.white)); } catch { } } if (!PlayerFSMManager.Instance.isSkill4) { var voice = _manager.sound.monsterVoice; voice.PlayMonsterVoice(this.gameObject, voice.redhatDamegedVoice); } _manager.agent.acceleration = 0; _manager.agent.velocity = Vector3.zero; }
private void OnTriggerEnter(Collider other) { if (_Dameged) { return; } if (other.transform.tag == "Player") { if (_Type == MacBulletType.Normal) { float damage = mac.Stat.damageCoefiiecient[0] * 0.01f * (mac.Stat.Str + mac.Stat.addStrPerRound * GameStatus.Instance.StageLevel) - PlayerFSMManager.Instance.Stat.Defense; var hitTarget = GameLib.SimpleDamageProcess(this.transform, 0.01f, "Player", mac.Stat, damage); Invoke("AttackSupport", 0.5f); _Dameged = true; var sound = mac.sound.monsterSFX; sound.PlayMonsterSFX(this.gameObject, sound.macSmallBallHit); if (!_Destroy) { _MoveEffect.SetActive(false); _DestroyEffect.SetActive(true); PlayEffect(_DestroyEffectParticles); _Destroy = true; } } if (_Type == MacBulletType.Skill) { float damage = mac.Stat.damageCoefiiecient[1] * 0.01f * (mac.Stat.Str + mac.Stat.addStrPerRound * GameStatus.Instance.StageLevel) - PlayerFSMManager.Instance.Stat.Defense; var hitTarget = GameLib.SimpleDamageProcess(this.transform, 0.01f, "Player", mac.Stat, damage); Invoke("AttackSupport", 0.5f); _Dameged = true; } } if (other.transform.tag == "DreamPillar") { _Dameged = true; if (!_Destroy) { _MoveEffect.SetActive(false); _DestroyEffect.SetActive(true); PlayEffect(_DestroyEffectParticles); _Destroy = true; } } }
void Update() { GameLib.JJRotate(transform, manager.PlayerCc.transform.position, manager.stat); if (Vector3.Distance(transform.position, manager.PlayerCc.transform.position) >= manager.stat.slimeRange) { manager.SetState(SlimeState.CHASE); return; } }
void Update() { if (Vector3.Distance(transform.position, manager.target.position) > manager.stat.attackRange) { manager.SetState(PlayerState.CHASE); return; } GameLib.JJRotate(transform, manager.target.position, manager.stat); }
private void Update() { GameLib.Log(this, "GoblinIDLE"); time += Time.deltaTime; if (time > idleTime) { _manager.SetState(MonsterStates.Patrol); } }
private void Update() { GameLib.Log(this, "MonsterAttack"); if ((Vector3.Distance(_manager.playerTran.position, transform.position) >= _manager.MonsterState.AttackRange)) { _manager.SetState(MonsterStates.Chase); return; } transform.LookAt(_manager.playerTran); }
public void AttackCheck() { var hitTarget = GameLib.SimpleDamageProcess(transform, _manager.Stat.AttackRange, "Monster", _manager.Stat); if (hitTarget != null) { _manager._lastAttack = hitTarget; } }
//캐릭터주변블러 = 맞았을때? 공격할때? 스킬쓸떄? 연구해야징 private void OnTriggerEnter(Collider other) { if (_Dameged) { return; } if (redHat.CurrentState == RedHatState.ATTACK) { if (other.transform.tag == "Player") { float damage = redHat.Stat.damageCoefiiecient[0] * 0.01f * (redHat.Stat.Str + redHat.Stat.addStrPerRound * GameStatus.Instance.StageLevel) - PlayerFSMManager.Instance.Stat.Defense; Debug.Log(damage); var hitTarget = GameLib.SimpleDamageProcess( this.transform, 1f, "Player", redHat.Stat, MonsterType.RedHat, damage); Transform effectTransform = MonsterEffects.Instance.redHatAttackEffect. ItemSetActive(PlayerFSMManager.Instance.Anim.transform, "Effect"); var sound = redHat.sound.monsterSFX; sound.PlayMonsterSFX(hitTarget.gameObject, sound.redhatAttackHit); effectTransform.rotation = redHat.transform.rotation; Invoke("AttackSupport", 0.5f); _Dameged = true; } } else if (redHat.CurrentState == RedHatState.DASH) { if (other.transform.tag == "Player") { float damage = redHat.Stat.damageCoefiiecient[1] * 0.01f * (redHat.Stat.Str + redHat.Stat.addStrPerRound * GameStatus.Instance.StageLevel) - PlayerFSMManager.Instance.Stat.Defense; var hitTarget = GameLib.SimpleDamageProcess(this.transform, 1f, "Player", redHat.Stat, damage); Transform effectTransform = MonsterEffects.Instance.redHatSkillEffect1. ItemSetActive(PlayerFSMManager.Instance.Anim.transform, "Effect"); var sound = redHat.sound.monsterSFX; sound.PlayMonsterSFX(hitTarget.gameObject, sound.redhatDashHit); Invoke("AttackSupport", 0.5f); _Dameged = true; } } }
void Update() { GameLib.JJMove(manager.cc, manager.target, manager.stat); Vector3 diff = manager.target.position - transform.position; diff.y = 0.0f; if (diff.magnitude < manager.stat.attackRange) { manager.SetState(PlayerState.ATTACK); } }
public override void EndState() { base.EndState(); useGravity = true; _manager.CC.detectCollisions = true; _time = 0; GetComponent <TiberDEAD>().StopAllCoroutines(); GameLib.DissoveActive(_manager.materialList, false); MonsterPoolManager._Instance._Tiber.ItemReturnPool(gameObject, MonsterType.Tiber); }
// Update is called once per frame // A-B=AB> void Update() { Debug.Log("RUN"); GameLib.JJMove(manager.cc, manager.marker, manager.stat); Vector3 diff = manager.marker.position - transform.position; diff.y = 0.0f; if (diff.magnitude < 0.1f) { manager.SetState(PlayerState.IDLE); } }
public void Update() { //Plane[] ps = GeometryUtility.CalculateFrustumPlanes(_manager.sight); //bool _isDestected = GeometryUtility.TestPlanesAABB(ps, _manager._testTarget.bounds); //if (_isDestected) //{ // Debug.Log(_manager._testTarget.bounds); // // GameLib.Log() //} Vector3 dest = _manager.Marker.transform.position; dest.y = 0.0f; Vector3 playerPos = transform.position; playerPos.y = 0.0f; if (Vector3.Distance(dest, playerPos) < Mathf.Epsilon) { _manager.SetState(PlayerState.IDLE); return; } GameLib.Log(this, "RUN"); //_marker.Maerker.postion; // 이동. Vector3 deltaMove = Vector3.zero; Vector3 moveDir = _manager.Marker.position - transform.position; moveDir.y = 0.0f; Vector3 nextMove = Vector3.MoveTowards(transform.position, _manager.Marker.position, _manager.playerState.moveSpeed * Time.deltaTime); deltaMove = nextMove - transform.position; deltaMove += Physics.gravity * Time.deltaTime; _manager.CC.Move(deltaMove); // 방향 전환 if (moveDir != Vector3.zero) { transform.rotation = Quaternion.RotateTowards(transform.rotation, Quaternion.LookRotation(moveDir), _manager.playerState.turnSpeed * Time.deltaTime); } // Quaternion playerRotation = Quaternion.LookRotation(Vector3 rot(transform.rotation, 0.0f, 0.0f)); }
private void Update() { if (!GameLib.DetectCharacter(_manager.Sight, _manager.PlayerCC)) { _manager.SetState(NPCState.Stand); return; } time += Time.deltaTime; if (time > SkillTime) { _manager.SetState(NPCState.Attack); } }
private AgentAction ShakeOut(Map map) { var adjacent = map.GetAdjacentWalkableTiles(playerTile); if (adjacent.Count == 0) { return(AgentAction.BombDown); } Random random = new Random(); var randomAdjTile = adjacent.OrderBy(x => random.Next()).First(); return(GameLib.DirectionTo(playerTile, randomAdjTile)); }
public void AttackCheck() { if (_manager.CurrntState != PlayerState.Attack) { return; } GameLib.Log(this, "call Attack Check"); // 타겟에 대한 스테이트를 가져온다. CharacterState targetState = _manager.target.GetComponent <CharacterState>(); playerState.ProcessDamage(_manager.playerState, targetState); }
private void Update() { if (GameLib.DetectCharacter(_manager.Sight, _manager.PlayerCC)) { _manager.SetState(GoblinState.CHASE); return; } time += Time.deltaTime; if (time > idleTime) { _manager.SetState(GoblinState.PATROL); } }
public void SetState(PlayerState newState) { if (_isinit) { _state[_currentState].enabled = false; _state[_currentState].EndState(); GameLib.Log(this, "False"); } _currentState = newState; _state[_currentState].BeginState(); _state[_currentState].enabled = true; // 지정한 친구만 로그를 보여준다. _anim.SetInteger("CurrentState", (int)_currentState); }
private void Update() { if (!GameLib.DetectCharacter2(_manager.Sight, _manager.PlayerCS) && isRecognition) { //인식시간보다 덜 인식했다. if (_time < ReconCapture) { _manager.SetState(MP01State.ALERT); //_manager.SightLight[1].SetActive(true); return; } } }
public LinkedList<Actor> GetActorsByType(GameLib.PhysicsObject.PhysicsType type) { LinkedList<Actor> temp = new LinkedList<Actor>(); foreach (Actor actor in Actors) { if (actor.PhysicsObject.physicsType.Equals(type) && !actor.IsShutdown) { temp.AddLast(actor); } } return temp; }
private void onPlayerLostGame(GameLib.Scene sender) { MessageBox.Show("Unfortunately you have lost the game! Press OK to restart the game.", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); game.Restart(); UpdateForm(); }