void Hitting(Player_InHouse target) { _Hitting = true; _MySprite.SetAnimation("hit", "run", false); StartCoroutine(StopHitting(0.5f)); StartCoroutine(HitCharacter(0.25f, target)); }
void Update() { _MakeDelayTime -= Time.smoothDeltaTime; if (_MakeDelayTime <= 0.0f) { if (_CCTVView._Find) { _LockedPlayer = _CCTVView._VisibleTargets[0]; GameObject obj = NGUITools.AddChild(transform.parent.gameObject, PlayerMng.Data._CCTVDangerEffect); obj.transform.localPosition = gameObject.transform.localPosition + new Vector3(0, 100, 0); _MakeDelayTime = _Delay; StartCoroutine(MakeGuard(1.0f)); StartCoroutine(SearchStart(5.0f)); } } }
IEnumerator MakeGuard(float time) { yield return(new WaitForSeconds(time)); //float angle = (transform.localEulerAngles.z)*Mathf.Deg2Rad; //Vector3 plus = new Vector3(Mathf.Cos(angle)*_MakeGuardPos.transform.localPosition.x*2, Mathf.Sin(angle)*_MakeGuardPos.transform.localPosition.y*2,0); GameObject guard = NGUITools.AddChild(PlayerMng.Data._UIRoot.transform.parent.gameObject, PlayerMng.Data._SequrityGuard); Vector3 pos = transform.localPosition; float angle1 = Mathf.Atan2(_LockedPlayer.transform.parent.localPosition.y - pos.y, _LockedPlayer.transform.parent.localPosition.x - pos.x); angle1 *= Mathf.Rad2Deg; guard.transform.localEulerAngles = new Vector3(0, 0, angle1 - 90); guard.transform.localPosition = _MakeGuardPos.transform.localPosition; PlayerMng.Data._GameScore -= 500; _LockedPlayer = null; guard.GetComponent <SequrityGuard>().CCTVCalled(); guard.GetComponent <SequrityGuard>().Init(); //guard.transform.localEulerAngles = transform.localEulerAngles + new Vector3(0, 0, 90); }
void Update() { if (!_OneUse) { if (_HaveSleepBullet) { _SleepBulletHaveIcon.transform.localPosition = transform.localPosition + new Vector3(0, 100, 0); } else { _SleepBulletHaveIcon.SetActive(false); } } if (_AlphaDown) { _MySprite._MySprite.alpha -= Time.smoothDeltaTime / 2; _Circle.SetActive(false); if (_MySprite._MySprite.alpha <= 0) { if (_OneUse) { Destroy(gameObject); } else { transform.localPosition = _RouteList[0]; _NowListPosNumber = 1; _NowDestinationPos = _RouteList[1]; _MoveSpeed = 150; } _ViewObject.SetActive(true); _AlphaDown = false; _MySprite._MySprite.alpha = 1; } } else if (_Sleep) { _Circle.SetActive(false); } else { _ViewObject.SetActive(true); _Circle.SetActive(true); //_ViewMng._VisibleTargets.Clear(); for (int i = 0; i < 4; i++) { if (Vector3.Distance(transform.localPosition, PlayerMng.Data._PlayerArray[i].transform.parent.localPosition) < 150) { bool check = false; for (int j = 0; j < _ViewMng._VisibleTargets.Count; j++) { if (_ViewMng._VisibleTargets[j]._PlayerNumber == PlayerMng.Data._PlayerArray[i]._PlayerNumber) { check = true; } } if (!check && !PlayerMng.Data._PlayerArray[i]._Escaper_Camouflage) { _ViewMng._VisibleTargets.Add(PlayerMng.Data._PlayerArray[i]); } } } if (_ViewMng._VisibleTargets.Count != 0) { if (!_FindTheif) { GameObject obj = NGUITools.AddChild(transform.parent.gameObject, PlayerMng.Data._CCTVDangerEffect); obj.transform.localPosition = transform.localPosition; _FindTheif = true; _MoveSpeed = 225; _MySprite.SetAnimation("run", true); } for (int i = 0; i < _ViewMng._VisibleTargets.Count; i++) { if (Vector3.Distance(transform.localPosition, _ViewMng._VisibleTargets[i].transform.parent.localPosition) < 140 && !_Hitting) { Hitting(_ViewMng._VisibleTargets[i]); } } } else { if (_OneUse) { _MissingTime_One -= Time.smoothDeltaTime; if (_MissingTime_One <= 0.0f) { StartCoroutine(SetMissOne(0.0f)); } } if (_FindTheif) { if (_OneUse && _SearchingStart) { StartCoroutine(SetMissOne(0.0f)); } else if (!_OneUse) { Vector3 pos = _RouteList[_NowListPosNumber]; int listnum = _NowListPosNumber; //for (int i = 0; i < _RouteList.Count; i++) //{ // if (Vector3.Distance(transform.localPosition, pos) > Vector3.Distance(transform.localPosition, _RouteList[i])) // { // pos = _RouteList[i]; // listnum = i; // } //} //_NowListPosNumber = listnum; //_NowDestinationPos = _RouteList[_NowListPosNumber]; StartCoroutine(SetMiss(1.0f)); _MoveSpeed = 0; _Miss = true; _MySprite.SetAnimation("walk", true); } } else { _MoveSpeed = 150; } _FindTheif = false; } if (_FindTheif) { Player_InHouse nowlockplayer = _ViewMng._VisibleTargets[0]; for (int i = 1; i < _ViewMng._VisibleTargets.Count; i++) { if (Vector3.Distance(transform.localPosition, _ViewMng._VisibleTargets[i].transform.localPosition) < Vector3.Distance(transform.localPosition, nowlockplayer.transform.localPosition)) { nowlockplayer = _ViewMng._VisibleTargets[i]; } } _NowDestinationPos = nowlockplayer.transform.parent.localPosition; if (!_Hitting) { transform.localPosition = Vector3.MoveTowards(transform.localPosition, _NowDestinationPos, Time.smoothDeltaTime * _MoveSpeed); } float angle = Mathf.Atan2(transform.localPosition.y - _NowDestinationPos.y, transform.localPosition.x - _NowDestinationPos.x) * Mathf.Rad2Deg; transform.localEulerAngles = new Vector3(0, 0, angle + 90); } else if (!_Miss) { if (!_OneUse) { if (!_Turning) { if (!_Hitting) { transform.localPosition = Vector3.MoveTowards(transform.localPosition, _NowDestinationPos, Time.smoothDeltaTime * _MoveSpeed); } if (Vector3.Distance(transform.localPosition, _NowDestinationPos) < _CorrectionDistance) { transform.localPosition = _NowDestinationPos; ChangeTargetPos(); float turnangle = Mathf.Atan2(transform.localPosition.y - _NowDestinationPos.y, transform.localPosition.x - _NowDestinationPos.x) * Mathf.Rad2Deg; _DestinationAngle = new Vector3(0, 0, turnangle + 90); float oneangle = transform.localEulerAngles.z + 90; if (oneangle < 0) { oneangle = oneangle + 360; } float twoangle = turnangle; if (twoangle < 0) { twoangle = twoangle + 360; } if (oneangle >= 360) { oneangle = 0; } _PlusAngle = oneangle - twoangle; if (Mathf.Abs(_PlusAngle) > 180.0f) { if (_PlusAngle > 0) { _PlusAngle -= 360; } else { _PlusAngle += 360; } } if (Mathf.Abs(_PlusAngle) < 7) { _PlusAngle = -180; } //Debug.Log(oneangle.ToString() + " " + twoangle.ToString()); _Turning = true; //StartCoroutine(SetPatroling(2.0f)); } float angle = Mathf.Atan2(transform.localPosition.y - _NowDestinationPos.y, transform.localPosition.x - _NowDestinationPos.x) * Mathf.Rad2Deg; if (!_Turning) { transform.localEulerAngles = new Vector3(0, 0, angle + 90); } } else { transform.localEulerAngles += new Vector3(0, 0, _PlusAngle * Time.smoothDeltaTime); float myangle = transform.localEulerAngles.z; float desangle = _DestinationAngle.z; if (myangle < 0) { myangle += 360; } if (desangle < 0) { desangle += 360; } if (Mathf.Abs(desangle - myangle) < 8.0f) { transform.localEulerAngles = _DestinationAngle; _Turning = false; } } } } _ViewObject.transform.localEulerAngles = new Vector3(0, -transform.localEulerAngles.z, 0); } }
IEnumerator HitCharacter(float time, Player_InHouse target) { yield return(new WaitForSeconds(time)); target.HitGuard(); }