Arduino 컨트롤러와 키보드를 동시에 사용하려면 어떻게해야합니까?

MangaHu

컨트롤러와 키보드를 동시에 사용하려면 어떻게합니까?

그래서 Arduino를 컨트롤러로 사용하여 ReadByte()입력으로 사용 합니다. 여기 내 플레이어 용 스크립트가 있습니다.

void Start() 
{      
    controller = GetComponent<Controller2D>();  // Je krijgt toegang tot de script Controller2D
    sp.DtrEnable = true;
    sp.ReadTimeout = 100;       

    sp.Open();  // Uw serialpoort openen      
}

void Update() 
{
    if (sp.IsOpen)    // Als uw serialpoort open is
    {
        try
        {
            print(sp.ReadByte());   // Ga je de inkomende waarde lezen
        }
        catch (System.Exception) { }
    }      

    if (controller.collisions.above || controller.collisions.below)    // Als je een botsing hebt van boven of beneden dan ga je stoppen met springen
    {
        moveDistance.y = 0;
    }

    if (Input.GetKeyDown(KeyCode.Space) || sp.ReadByte() == 1 && controller.collisions.below)   // Als je op spatie drukt en als je op een platform staat dan ga je boven springen
    {
        moveDistance.y = jumpDistance;  // Je gaat springen langs de y-as
        //moveDistance.x = 0;     // Als je alleen springt dan ga je loodrecht boven en niet schuin
    }

    Vector2 input = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));  // Je neemt de Horizontal en vertical inputs van de unity zelf

    if (sp.ReadByte() == 2)       // Als je de 2de drukknop indrukt
    {
        moveDistance.x = -moveSpeed ;   // Ga je links bewegen
    }
    if (sp.ReadByte() == 3)        // Als je de 3de druknop indrukt
    {
        moveDistance.x = moveSpeed;     // Ga je rechts bewegen
    }

    moveDistance.x = input.x * moveSpeed;   // Door input kan je nu links of rechts bewegen met de pijlen
    moveDistance.y += gravity * Time.deltaTime;     // Je valt met een zwaartekracht dus je gaat sneller en sneller vallen.       
    controller.Move(moveDistance * Time.deltaTime);     // Leest de input 
}

일반적으로 컨트롤러와 키보드를 모두 입력으로 사용하고 싶지만이 게임을 실행 한 후 즉시

TimeoutException : 작업 시간이 초과되었습니다.

오류이지만 Arduino를 입력으로 사용할 수 있지만 어떤 이유로 비활성화되는 키보드 일뿐입니다.

derHugo

확실하지 않은 오류의 원인 일 수 있지만 일반적으로 sp.ReadByte()반복적으로 사용하지 않고 한 번만 사용하고 값을 저장하고 비교합니다.

void Update() 
{
    byte arduinoInput = 0;
    if (sp.IsOpen)    // Als uw serialpoort open is
    {
        try
        {
            arduinoInput  = sp.ReadByte();
            print(arduinoInput);   // Ga je de inkomende waarde lezen
        }
        catch (System.Exception) { }
    }      

    if (controller.collisions.above || controller.collisions.below)    // Als je een botsing hebt van boven of beneden dan ga je stoppen met springen
    {
        moveDistance.y = 0;
    }

    if (Input.GetKeyDown(KeyCode.Space) || arduinoInput == 1 && controller.collisions.below)   // Als je op spatie drukt en als je op een platform staat dan ga je boven springen
    {
        moveDistance.y = jumpDistance;  // Je gaat springen langs de y-as
        //moveDistance.x = 0;     // Als je alleen springt dan ga je loodrecht boven en niet schuin
    }

    Vector2 input = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));  // Je neemt de Horizontal en vertical inputs van de unity zelf

    if (arduinoInput == 2)       // Als je de 2de drukknop indrukt
    {
        moveDistance.x = -moveSpeed ;   // Ga je links bewegen
    }
    if (arduinoInput == 3)        // Als je de 3de druknop indrukt
    {
        moveDistance.x = moveSpeed;     // Ga je rechts bewegen
    }

    moveDistance.x = input.x * moveSpeed;   // Door input kan je nu links of rechts bewegen met de pijlen
    moveDistance.y += gravity * Time.deltaTime;     // Je valt met een zwaartekracht dus je gaat sneller en sneller vallen.       
    controller.Move(moveDistance * Time.deltaTime);     // Leest de input 
}

이미 읽기를 시도했거나 단순히 다중 액세스로 인해 포트가 열려 있지 않은 경우 프레임에 대해 오류가 발생할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Rails : Devise 컨트롤러와 Devise 경로를 동시에 재정의하려면 어떻게해야합니까?

분류에서Dev

laravel / socialite 및 facebook / graph-sdk를 사용하는 동안 컨트롤러에서 Facebook 페이지 게시물을 보내려면 어떻게해야합니까?

분류에서Dev

게시 후 Rails 컨트롤러에서보기를 변경하려면 어떻게해야합니까?

분류에서Dev

USB를 통해 PS3 Sixasis 컨트롤러를 작동 시키려면 어떻게해야합니까?

분류에서Dev

USB를 통해 PS3 Sixasis 컨트롤러를 작동 시키려면 어떻게해야합니까?

분류에서Dev

SAP UI의 컨트롤러에서 사용자 지정 컨트롤러를 정의하려면 어떻게해야합니까?

분류에서Dev

뷰 컨트롤러에서 여러 UIImage 뷰를 이동하려면 어떻게해야합니까?

분류에서Dev

탭 표시 줄을 유지하면서 탭보기 컨트롤러에 자식보기 컨트롤러를 추가하려면 어떻게해야합니까?

분류에서Dev

테이블 뷰 셀의 텍스트를 사용하고 부모 뷰 컨트롤러에서 레이블로 표시하려면 어떻게해야합니까?

분류에서Dev

Xib를 동일한 뷰 컨트롤러에 연결하려면 어떻게해야합니까?

분류에서Dev

iOS에서 릴리스 (스토리 보드 사용)와 디버깅을 위해 뷰 컨트롤러에서 다른 뷰를 표시하려면 어떻게해야합니까?

분류에서Dev

컨트롤러에서 동작으로 변수를 보내려면 어떻게해야합니까? cakePHP

분류에서Dev

컨트롤러 경로에서 슬래시를 제거하려면 어떻게해야합니까?

분류에서Dev

Swift : 사용자 지정 segue 이후에 임베디드 네비게이션 컨트롤러를 유지하려면 어떻게해야합니까?

분류에서Dev

org.joda.time.LocalDate와 java.time.LocalDate를 동시에 사용하려면 어떻게해야합니까?

분류에서Dev

인터넷에 연결된 32 비트 12.04 PC와 USB 플래시 드라이브를 사용하여 64 비트 12.10에 Atheros AR8161 이더넷 컨트롤러 용 드라이버를 설치하려면 어떻게해야합니까?

분류에서Dev

AngularJS 컨트롤러간에 데이터를 올바르게 공유하려면 어떻게해야합니까?

분류에서Dev

Blazor 웹 어셈블리 프로젝트의 서버 측 컨트롤러에서 사용자를 인증하려면 어떻게해야합니까?

분류에서Dev

Zookeper와 Kafka를 동시에 시작하려면 어떻게해야합니까?

분류에서Dev

macOS에서 Ubiquiti의 UniFi 네트워크 컨트롤러를 실행하려면 어떻게해야합니까?

분류에서Dev

findFragmentByTag를 참조하여 소프트 키보드를 다시 표시하려면 어떻게해야합니까?

분류에서Dev

컨트롤러에서 매개 변수 값을 검색하여 보려면 어떻게해야합니까?

분류에서Dev

보기에서 컨트롤러로 목록을 전달 (저장)하려면 어떻게해야합니까?

분류에서Dev

laravel4를 사용하여 컨트롤러에서 모델에 액세스하려면 어떻게해야합니까?

분류에서Dev

RequestMapping을 사용하여 컨트롤러의 두 가지 다른 메서드에 양식을 매핑하려면 어떻게해야합니까?

분류에서Dev

iOS의 모든 애플리케이션 컨트롤러에서 계속 작동하는보기를 표시하려면 어떻게해야합니까?

분류에서Dev

MVC 5 Visual Studio 2013 Ultimate에 컨트롤러를 추가하려면 어떻게해야합니까?

분류에서Dev

서비스에서 컨트롤러로 데이터를 전달하려면 어떻게해야합니까?

분류에서Dev

컨트롤러를 angularstrap 모달에 함수로 추가하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    Rails : Devise 컨트롤러와 Devise 경로를 동시에 재정의하려면 어떻게해야합니까?

  2. 2

    laravel / socialite 및 facebook / graph-sdk를 사용하는 동안 컨트롤러에서 Facebook 페이지 게시물을 보내려면 어떻게해야합니까?

  3. 3

    게시 후 Rails 컨트롤러에서보기를 변경하려면 어떻게해야합니까?

  4. 4

    USB를 통해 PS3 Sixasis 컨트롤러를 작동 시키려면 어떻게해야합니까?

  5. 5

    USB를 통해 PS3 Sixasis 컨트롤러를 작동 시키려면 어떻게해야합니까?

  6. 6

    SAP UI의 컨트롤러에서 사용자 지정 컨트롤러를 정의하려면 어떻게해야합니까?

  7. 7

    뷰 컨트롤러에서 여러 UIImage 뷰를 이동하려면 어떻게해야합니까?

  8. 8

    탭 표시 줄을 유지하면서 탭보기 컨트롤러에 자식보기 컨트롤러를 추가하려면 어떻게해야합니까?

  9. 9

    테이블 뷰 셀의 텍스트를 사용하고 부모 뷰 컨트롤러에서 레이블로 표시하려면 어떻게해야합니까?

  10. 10

    Xib를 동일한 뷰 컨트롤러에 연결하려면 어떻게해야합니까?

  11. 11

    iOS에서 릴리스 (스토리 보드 사용)와 디버깅을 위해 뷰 컨트롤러에서 다른 뷰를 표시하려면 어떻게해야합니까?

  12. 12

    컨트롤러에서 동작으로 변수를 보내려면 어떻게해야합니까? cakePHP

  13. 13

    컨트롤러 경로에서 슬래시를 제거하려면 어떻게해야합니까?

  14. 14

    Swift : 사용자 지정 segue 이후에 임베디드 네비게이션 컨트롤러를 유지하려면 어떻게해야합니까?

  15. 15

    org.joda.time.LocalDate와 java.time.LocalDate를 동시에 사용하려면 어떻게해야합니까?

  16. 16

    인터넷에 연결된 32 비트 12.04 PC와 USB 플래시 드라이브를 사용하여 64 비트 12.10에 Atheros AR8161 이더넷 컨트롤러 용 드라이버를 설치하려면 어떻게해야합니까?

  17. 17

    AngularJS 컨트롤러간에 데이터를 올바르게 공유하려면 어떻게해야합니까?

  18. 18

    Blazor 웹 어셈블리 프로젝트의 서버 측 컨트롤러에서 사용자를 인증하려면 어떻게해야합니까?

  19. 19

    Zookeper와 Kafka를 동시에 시작하려면 어떻게해야합니까?

  20. 20

    macOS에서 Ubiquiti의 UniFi 네트워크 컨트롤러를 실행하려면 어떻게해야합니까?

  21. 21

    findFragmentByTag를 참조하여 소프트 키보드를 다시 표시하려면 어떻게해야합니까?

  22. 22

    컨트롤러에서 매개 변수 값을 검색하여 보려면 어떻게해야합니까?

  23. 23

    보기에서 컨트롤러로 목록을 전달 (저장)하려면 어떻게해야합니까?

  24. 24

    laravel4를 사용하여 컨트롤러에서 모델에 액세스하려면 어떻게해야합니까?

  25. 25

    RequestMapping을 사용하여 컨트롤러의 두 가지 다른 메서드에 양식을 매핑하려면 어떻게해야합니까?

  26. 26

    iOS의 모든 애플리케이션 컨트롤러에서 계속 작동하는보기를 표시하려면 어떻게해야합니까?

  27. 27

    MVC 5 Visual Studio 2013 Ultimate에 컨트롤러를 추가하려면 어떻게해야합니까?

  28. 28

    서비스에서 컨트롤러로 데이터를 전달하려면 어떻게해야합니까?

  29. 29

    컨트롤러를 angularstrap 모달에 함수로 추가하려면 어떻게해야합니까?

뜨겁다태그

보관