ዝርዝር ሁኔታ:

ቀላል የአንድነት መቆጣጠሪያ: 5 ደረጃዎች
ቀላል የአንድነት መቆጣጠሪያ: 5 ደረጃዎች

ቪዲዮ: ቀላል የአንድነት መቆጣጠሪያ: 5 ደረጃዎች

ቪዲዮ: ቀላል የአንድነት መቆጣጠሪያ: 5 ደረጃዎች
ቪዲዮ: ከወሲብ በፊት ይህን ከጠጣህ አለቀላት ! | ማለቂያ ለሌለው የወሲብ ብቃት | 2024, ሀምሌ
Anonim
ቀላል የአንድነት መቆጣጠሪያ
ቀላል የአንድነት መቆጣጠሪያ

መግለጫ

ይህ ፕሮጀክት ተጫዋቹ በግራ እና በቀኝ የሚሄድበትን የሠራሁትን ጨዋታ ለመቆጣጠር የተቀየስኩትን አዝራሮች በመጫን ጊዜ ለአንድነት ግብዓት ሊሰጥ የሚችል በጣም ቀላል ተቆጣጣሪ ነው። በእርግጥ ለተጨማሪ መቆጣጠሪያዎች ሁል ጊዜ ሊያስተካክሉት ይችላሉ። ምንም ተጨማሪ ቤተመጽሐፍት መጠቀም አያስፈልግም።

ደረጃ 1: ቁሳቁሶች

አካላት ያስፈልጋሉ

  • -አርዱዲኖ 2x ተከላካይ
  • -[~ 220 Ohm
  • -ይፈልጋል
  • -2x አዝራሮች
  • -የዳቦ ሰሌዳ

ደረጃ 2 - የዳቦ ሰሌዳ

የዳቦ ሰሌዳ
የዳቦ ሰሌዳ

የ arduino GND ወደብ ከአሉታዊ (-) ፒን ከዳቦ ሰሌዳው በግራ በኩል በማገናኘት እና 5 ቮን ከዳቦርዱ በቀኝ በኩል ወደ አዎንታዊ (+) በማገናኘት ጀመርኩ።

ከዚያ በኋላ ቁልፎቹን እኔ በፈለግኩበት ቦታ ላይ አስቀምጫለሁ። እና ከሽቦዎች እና ከተቃዋሚዎች ጋር በመጠቀም ያገናኙዋቸው።

ደረጃ 3: አርዱዲኖን ኮድ መስጠት

በመጀመሪያ እርስዎ አርዱዲኖ እንዲሮጡ የተወሰነ ኮድ መጻፍ ያስፈልግዎታል። የሚያደርገውን የሚያብራሩ አስተያየቶችን በኮዱ ውስጥ አስቀምጫለሁ።

// አዝራሮች የተገናኙባቸውን ፒኖች ይግለጹ።

const int buttonPin1 = 3; const int buttonPin2 = 4;

ባዶነት ማዋቀር ()

{// ተከታታይ Serial.begin (9600) ይጀምሩ ፤ // ፒኖችን እንደ ውፅዓት ያዋቅሩ። pinMode (አዝራር ፒን 1 ፣ ግቤት); pinMode (አዝራር ፒን 2 ፣ ግቤት); }

ባዶነት loop ()

{// የአዝራሩን ሁኔታ ያንብቡ (digitalRead (buttonPin1) == HIGH) {// ግዛቱ ከፍተኛ ከሆነ ይህንን መስመር ያትሙ። Serial.println ("ግራ"); መዘግየት (20); } ከሆነ (digitalRead (buttonPin2) == HIGH) {// ግዛት ከፍተኛ ከሆነ ይህን መስመር ያትሙ። Serial.println ("ቀኝ"); መዘግየት (20); }}

ደረጃ 4 - አንድነት

ጨዋታ ዝግጁ ከሌለዎት ይህ ኮድ በማንኛውም የጨዋታ ነገር ላይ በአንድነት ይሠራል።

ይህ ከሆነ ለመንቀሳቀስ የጨዋታ ነገር ያስፈልግዎታል።

ለቀላልነት ወደ GameObject-> 3D Object-> Cube በመሄድ ኩብ እንፈጥራለን

አንዴ ኩብ በእርስዎ ትዕይንት ውስጥ ካለ ፣ ይምረጡት እና የመደመር አካል ቁልፍን ይጫኑ እና አዲስ ስክሪፕት ይፍጠሩ።

እንዲሁም ለ System. IO. Ports ቤተ -መጽሐፍት እንዲሠራ የአፒ ተኳሃኝነት ደረጃን መለወጥ ያስፈልግዎታል።

ይህንን ለማድረግ ወደ አርትዕ-> የፕሮጀክት ቅንብሮች-> ተጫዋች ይሂዱ

የ Api ተኳሃኝነት ደረጃን እስኪያገኙ ድረስ እና በ. Net 2.0 ንዑስ ምትክ. NET 2.0 ን እስኪመርጡ ድረስ በዚህ ምናሌ ውስጥ ወደ ታች ይሸብልሉ።

አሁን ኮድ መስጠት ለመጀመር ዝግጁ ነዎት።

System. Collections በመጠቀም ፣ System. Collections. Generic; UnityEngine ን በመጠቀም; System. IO. Ports ን በመጠቀም;

የህዝብ ክፍል PlayerMovement: MonoBehaviour

{የሕዝብ ተንሳፋፊ ፍጥነት; የመንሳፈፍ እንቅስቃሴ;

SerialPort sp = አዲስ SerialPort ("COM3", 9600);

ባዶነት ጀምር ()

{// ተከታታይ ወደቡን OpenSerialPort () ለመክፈት ኮዱን ያሂዱ ፣ }

ባዶ OpenSerialPort ()

{// ተከታታይ ወደቡን ይክፈቱ sp. Open (); sp. ReadTimeout = 1; }

ባዶ እንቅስቃሴ (ሕብረቁምፊ አቅጣጫ)

{// አርዱinoኖ (አቅጣጫ == "ግራ") {እንቅስቃሴ = -1 ከሆነ የትኛውን አቅጣጫ እንዳስተላለፈ ያረጋግጡ። } ከሆነ (አቅጣጫ == "ቀኝ") {እንቅስቃሴ = 1; } // የጨዋታው ነገር የሚንቀሳቀስበትን ተንሳፋፊ ትርጉም = እንቅስቃሴ * ፍጥነትን ያስሉ። // እንቅስቃሴውን ወደ የጨዋታ ንዑስ ለውጡ ይተግብሩ። ተርጉም (ትርጉም ፣ 0 ፣ 0) ፤ }

ባዶነት አዘምን ()

{ከሆነ (sp. IsOpen) {serialport ክፍት እንቅስቃሴ በሚሆንበት ጊዜ {// ይሞክሩት {// የእንቅስቃሴውን ተግባር ያከናውኑ እና አርዱዲኖ እንቅስቃሴን የሚያትመው መስመር ይለፉ (sp. ReadLine ()) ፤ } መያዝ (System. Exception) {

}

}

} }

ደረጃ 5 የመጨረሻ ማስታወሻዎች

የእርስዎ ክፍሎች እየሰሩ መሆኑን ያረጋግጡ

ይህ በሚፈጠርበት ጊዜ ያጋጠመኝ ችግር ሁሉም ሽቦዎች እና ኮዶች ትክክል ነበሩ እና ምንም ችግር ሊኖር አይገባም ፣ ግን አልሰራም። በእኔ ሁኔታ ግን የማይሰራ ሽቦ ነበር ፣ በአንዳንድ ሌሎች ክፍሎችዎ ላይ ተመሳሳይ ሁኔታ ሊከሰት ይችላል።

የሚመከር: