// Update is called once per frame void Update() { //вниз if (Input.GetKey(KeyCode.S)) { if (!raycastManager.Detection(acterManager.Direction(), 0.6f, Color.white)) { acterManager.MoveBack(); } } //Верх if (Input.GetKey(KeyCode.W)) { if (!raycastManager.Detection(acterManager.Direction(), 0.6f, Color.white)) { acterManager.MoveForward(); } } //Вправо if (Input.GetKey(KeyCode.A)) { if (!raycastManager.Detection(acterManager.Direction(), 0.6f, Color.white)) { acterManager.MoveLeft(); } } //Влево if (Input.GetKey(KeyCode.D)) { if (!raycastManager.Detection(acterManager.Direction(), 0.6f, Color.white)) { acterManager.MoveRight(); } } //Пока впереди нет преграды двигатся по направлению if (raycastManager.Detection(acterManager.Direction(), 0.6f, Color.blue)) { if (raycastManager.Name == "Block") { acterManager.MoveStop(); } } //Остановится if (Input.GetKey(KeyCode.Space)) { acterManager.MoveStop(); } }
void Update() { switch (state) { case StateList.right: if (!raycastManager.Detection(new Vector3(0, 0, 1), 0.6f, Color.red)) { acterManager.MoveRight(); } break; case StateList.forward: if (!raycastManager.Detection(new Vector3(-1, 0, 0), 0.6f, Color.red)) { acterManager.MoveForward(); } break; case StateList.left: if (!raycastManager.Detection(new Vector3(0, 0, -1), 0.6f, Color.red)) { acterManager.MoveLeft(); } break; case StateList.back: if (!raycastManager.Detection(new Vector3(1, 0, 0), 0.6f, Color.red)) { acterManager.MoveBack(); } break; case StateList.inactivity: acterManager.MoveStop(); break; } //Пока впереди нет преграды двигатся по направлению if (raycastManager.Detection(acterManager.Direction(), 0.6f, Color.blue)) { if (raycastManager.Name == "Block") { acterManager.MoveStop(); } } /*//Убить пакмана при сближений * if (pacman != null && raycastManager.Detection(pacman.transform.position, 0.6f, Color.blue)) * { * Destroy(pacman); * }*/ }