/// <summary> /// 리벤지 모드일대는 드래그로 Enemy를 조준한다. /// </summary> /// <param name="position">드래그한 위치</param> /// <param name="action">터치 상태(Move, End)</param> public void Revenge(Vector3 position, Common.INPUT action) { //드래그한 위치에 Ray를 쏴서 맞은 Enemy를 확인. //적이 겹치면 문제 발생! Ray ray = Camera.main.ScreenPointToRay(position); RaycastHit hit; //드래그 할때는 Enemy를 조준함 if (action == Common.INPUT.INPUT_MOVE) { if (!Physics.Raycast(ray, out hit)) { return; } //드래그한 적 선 그리기 if (hit.transform.tag.Equals("Enemy")) { hit.transform.tag = "AimLock"; csSoundManager.Instance().PlaySfx(revengeAimSound); pathPoints.Add(hit.transform.position + Vector3.up * 1.25f); } } //땠을 때는 조준한 Enemy를 죽임 else if (action == Common.INPUT.INPUT_END) { StartCoroutine(FinalShot()); } }
/// <summary> /// Input Manager가 호출한다. /// </summary> /// <param name="position">스크린을 터치한 위치</param> /// <param name="action">터치한 상태(Begin,Move, End,Null)</param> public void DoAction(Vector3 position, Common.INPUT action) { if (isHighNoon && action != Common.INPUT.INPUT_BEGIN) { Revenge(position, action); } else if (!isHighNoon && action == Common.INPUT.INPUT_BEGIN) { Shot(position); } }