private void Moving() { Vector3 movement = Vector3.zero; Vector3 adjustedPos = new Vector3(); if (isColEvd) { adjustedPos = new Vector3(evdPoints[0].transform.position.x, transform.position.y, evdPoints[0].transform.position.z); } else { adjustedPos = new Vector3(_targetPos.x, transform.position.y, _targetPos.z); } if (_targetPos != Vector3.one) { Quaternion targetRot = Quaternion.LookRotation(adjustedPos - transform.position); // transform.rotation = Quaternion.Slerp(transform.rotation, targetRot, rotSpeed * Time.deltaTime); movement = _curSpeed * Vector3.forward; movement = transform.TransformDirection(movement); } if (isColEvd) { } else { //Debug.Log(Vector3.Distance(adjustedPos, transform.position)); if (Vector3.Distance(adjustedPos, transform.position) < targetBuffer) { _curSpeed -= deceleration * Time.deltaTime; if (_curSpeed <= 0) { _targetPos = Vector3.one; } } } if (needAni) { _animator.SetFloat("Speed", movement.sqrMagnitude); } movement *= Time.deltaTime; _charController.Move(movement); if (isColEvd) { CollisionEvading(); } else { RaycastHit hit; GameObject hitObject = null; Debug.DrawRay(checkColPoint.transform.position + (transform.up * 2), checkColPoint.transform.TransformDirection(Vector3.forward) * colCheckDistance, Color.blue); if (Physics.Raycast(checkColPoint.transform.position + transform.up, checkColPoint.transform.TransformDirection(Vector3.forward), out hit, colCheckDistance)) { Debug.Log("Raycast Hit"); hitObject = hit.transform.gameObject; UnitMove colUnit = hitObject.gameObject.GetComponent <UnitMove>(); if (colUnit) { UnitStatSystem colUnitStat = colUnit.GetComponent <UnitStatSystem>(); if (colUnitStat && colUnitStat.GetOwner() == stat.GetOwner()) { if (colUnit.GetCurrentSpeed() < _curSpeed) { if (evdPoints.Count == 0) { //StartColEvade(); } } } else { UnitGroupSystem colGroup = hitObject.GetComponent <UnitGroupSystem>(); if (colGroup && colGroup.GetOwner() == stat.GetOwner()) { if (evdPoints.Count == 0) { //StartColEvade(); } } } } else { if (evdPoints.Count == 0) { //StartColEvade(); } } } else { isColEvd = false; } } }