private void AutoMove() { if ((GameValues.AutoMoveX || GameValues.AutoMoveY) && !isHoldingObject) { //bool isAboveBlender = false; Monster monster = null; // GameObject monsterGo = null; //if(targetMonster == null) targetMonster = EUtils.GetNearestObject(waveSpawner.SpawnedMonsters, transform.position); RaycastHit[] hit; if (targetMonster != null) { //BlenderCatch blender = GameObject.FindObjectOfType<BlenderCatch>(); Defendable defendAble = GameObject.FindObjectOfType <Defendable>(); //Vector3 castPosition = new Vector3(transform.position.x, transform.position.y + (EUtils.GetObjectCollUnitSize(gameObject).y), transform.position.z); hit = Physics.RaycastAll(targetMonster.transform.position, -Vector3.up /* * 0.5f*/, float.MaxValue); //Debug.DrawRay(castPosition, transform.forward * attackDistance, Color.red); // Debug.Log(hit.Length); for (int i = 0; i < hit.Length; i++) { Defendable blenderCatch = hit[i].collider.GetComponent <Defendable>(); if (blenderCatch != null) { targetMonster = null; return; } } monster = targetMonster.GetComponent <Monster>(); } if (GameValues.AutoMoveX) { if (monster != null) { Ray monsterRay = new Ray(monster.transform.position, -Vector3.up); RaycastHit monsterHit; if (!monster.isInBlender && !monster.isStunned) { Vector3 targetPosition = new Vector3(monster.transform.position.x, transform.position.y, transform.position.z); transform.position = Vector3.MoveTowards(transform.position, targetPosition, 10 * Time.deltaTime); } } } if (GameValues.AutoMoveY) { if (monster != null) { //Vector3.Distance(transform.position, monster.transform.position) < 1) //if (!monster.isInBlender && transform.position.x == monster.transform.position.x) if (!monster.isInBlender && !monster.isStunned && Mathf.Abs(transform.position.x - monster.transform.position.x) < 1) { Vector3 targetPosition = new Vector3(transform.position.x, monster.transform.position.y, transform.position.z); transform.position = Vector3.MoveTowards(transform.position, targetPosition, 10 * Time.deltaTime); } } } if (GameValues.AutoGrab) { if (monster != null) { if (!monster.isInBlender && !monster.isStunned && Vector3.Distance(transform.position, monster.transform.position) < 1) { VisualSqueeze(monster.minPressure + 4); } } } } else if ((GameValues.AutoMoveX || GameValues.AutoMoveY) && isHoldingObject) { BlenderCatch blender = GameObject.FindObjectOfType <BlenderCatch>();//EUtils.GetNearestObject(waveSpawner.SpawnedMonsters, transform.position); if (GameValues.AutoMoveX) { //if (blender != null && /*transform.position.y == blender.transform.position.y + 7.50f*/) if (blender != null && Mathf.Abs(transform.position.y - blender.transform.position.y) > 5.50f) { Vector3 targetPosition = new Vector3(blender.transform.position.x, transform.position.y, transform.position.z); transform.position = Vector3.MoveTowards(transform.position, targetPosition, 10 * Time.deltaTime); } } if (GameValues.AutoMoveY) { if (blender != null) { Vector3 targetPosition = new Vector3(transform.position.x, blender.transform.position.y + 5.75f, transform.position.z); transform.position = Vector3.MoveTowards(transform.position, targetPosition, 10 * Time.deltaTime); } } if (GameValues.AutoGrab) { if (blender != null) { //if (transform.position.y == blender.transform.position.y + 7.50f && Mathf.Abs(transform.position.x - blender.transform.position.x) < 1) if (Mathf.Abs(transform.position.y - blender.transform.position.y) > 5.50f && Mathf.Abs(transform.position.x - blender.transform.position.x) < 0.5f) { VisualSqueeze(1); } } } } }