Talaan ng mga Nilalaman:

Simple Unity Controller: 5 Hakbang
Simple Unity Controller: 5 Hakbang

Video: Simple Unity Controller: 5 Hakbang

Video: Simple Unity Controller: 5 Hakbang
Video: Beginner VERY EASY First Person Controller with Playmaker in Unity 3D 2024, Hulyo
Anonim
Simpleng Unity Controller
Simpleng Unity Controller

Paglalarawan

Ang proyektong ito ay isang napaka simpleng controller na maaaring magbigay ng input sa Pagkakaisa kapag pinindot ang mga pindutan ay dinisenyo ko ito upang makontrol ang isang laro na ginawa ko kung saan ang player ay maaaring makakaliwa at pakanan. Siyempre maaari mong palaging ayusin ito para sa higit pang mga kontrol. Hindi na kailangang gumamit ng anumang labis na mga aklatan.

Hakbang 1: Mga Kagamitan

Mga sangkap na kailangan

  • -Arduino 2x risistor
  • - [~ 220 Ohm
  • -Wires
  • -2x Butones
  • -Breadboard

Hakbang 2: Breadboarding

Breadboarding
Breadboarding

Nagsimula ako sa pamamagitan ng pagkonekta sa arduino GND port sa isang negatibong (-) pin sa kaliwang bahagi ng breadboard, at ikonekta ang 5V sa isang positibo (+) sa kanang bahagi ng breadboard.

Pagkatapos nito inilagay ko ang mga pindutan sa lugar na nais kong maging. At ikinonekta ang mga ito gamit ang mga wires at resistors.

Hakbang 3: Pag-coding ng Arduino

Una sa lahat kakailanganin mong magsulat ng ilang code para sa iyo upang tumakbo ang Arduino. Naglagay ako ng mga komento sa code na nagpapaliwanag kung ano ang ginagawa nito.

// Ideklara ang mga pin na konektado ang mga pindutan.

Const int buttonPin1 = 3; Const int buttonPin2 = 4;

walang bisa ang pag-setup ()

{// Simulan ang serial Serial.begin (9600); // I-configure ang mga pin bilang output. pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

walang bisa loop ()

{// Basahin ang estado ng pindutan kung (digitalRead (buttonPin1) == TAAS) {// i-print ang linyang ito kung ang estado ay TAAS. Serial.println ("Kaliwa"); pagkaantala (20); } kung (digitalRead (buttonPin2) == TAAS) {// i-print ang linyang ito kung ang estado ay TAAS. Serial.println ("Kanan"); pagkaantala (20); }}

Hakbang 4: Pagkakaisa

Kung wala kang handa na laro, gagana ang code na ito sa anumang gameobject sa pagkakaisa.

kung ito ang kaso kakailanganin mo ang isang gameobject upang lumipat.

Para sa kapakanan ng pagiging simple lilikha kami ng isang kubo sa pamamagitan ng pagpunta sa GameObject-> 3D Object-> Cube

sa sandaling ang kubo ay nasa iyong eksena, piliin ito at pindutin ang pindutang Idagdag ang Bahagi, at lumikha ng bagong script.

Gayundin kakailanganin mong baguhin ang antas ng pagiging tugma ng Api upang gumana ang library ng System. IO. Ports.

Upang gawin ito pumunta sa I-edit-> Mga Setting ng Proyekto-> Player

mag-scroll pababa sa menu na ito hanggang sa makita mo ang Antas ng Pagkakatugma ng Api at piliin ang. NET 2.0 sa halip na. Net 2.0 subset

Handa ka na ngayon upang simulan ang pag-coding.

gamit ang System. Collection; using System. Collection. Generic; gamit ang UnityEngine; gamit ang System. IO. Ports;

pampublikong klase PlayerMovement: MonoBehaviour

{bilis ng float ng publiko; float kilusan;

SerialPort sp = bagong SerialPort ("COM3", 9600);

walang bisa Start ()

{// Patakbuhin ang code upang buksan ang serial port OpenSerialPort (); }

walang bisa ang OpenSerialPort ()

{// Buksan ang serial port sp. Open (); sp. ReadTimeout = 1; }

walang bisa Kilusan (Direksyon ng string)

{// Suriin kung anong direksyon ang naipasa ng arduino kung (Direksyon == "Kaliwa") {movement = -1; } kung (Direksyon == "Tama") {kilusan = 1; } // kalkulahin ang halaga kung saan ililipat ang gameobject float translation = kilusan * bilis; // Ilapat ang kilusan sa transform ng gameobject. Translate (pagsasalin, 0, 0); }

walang bisa ang Pag-update ()

{if (sp. IsOpen) {subukan {// habang bukas ang serialport ay isagawa ang paggalaw ng paggalaw at ipasa ang linya na pini-print ng Arduino ang Kilusan (sp. ReadLine ()); } catch (System. Exception) {

}

}

} }

Hakbang 5: Huling Mga Tala

Suriin kung gumagana ang iyong mga sangkap

Ang isang problema na nakasalamuha ko sa paglikha ng ito ay ang lahat ng mga wire at code ay tama at dapat walang problema sa lahat, ngunit hindi ito gumagana. Sa aking kaso ito ay isang kawad na hindi gumagana, bagaman ang pareho ang maaaring mangyari sa ilan sa iyong iba pang mga bahagi.

Inirerekumendang: