คำถามติดแท็ก gui

ส่วนต่อประสานกราฟิกกับผู้ใช้ คำที่ใช้อธิบายเครื่องมือที่ผู้เล่นมีให้เพื่อโต้ตอบกับเกม

2
ใน GUI ควรจัดการอินพุตเมื่อกดหรือปล่อยปุ่ม?
ในระบบเมนูสำหรับเกมของเรา (เลือกระดับตัวเลือก ฯลฯ ) ผู้เล่นกดปุ่มบน gamepad เพื่อไปยังหน้าจอถัดไป ฉันเข้ารหัสระบบเมนูเพื่อรอจนกว่าจะปล่อยปุ่มก่อนที่จะดำเนินการใด ๆ (เช่นการแสดงหน้าจอถัดไป) ข้อเสนอแนะ playtest ล่าสุดบางข้อเสนอแนะให้เราทำในทางตรงกันข้าม: ดำเนินการทันทีที่กดปุ่ม ฉันสงสัยว่าอะไรเป็นวิธีมาตรฐานในการจัดการและมันสร้างความแตกต่างได้หรือไม่?
12 input  gui 

1
แยกฟิสิกส์และตรรกะเกมออกจากรหัส UI
ฉันกำลังทำงานในเกมตัวต่อที่ง่าย การเล่นเกมประกอบไปด้วยบล็อกที่เคลื่อนไหวได้ค่อนข้างมากในบริเวณเกมดังนั้นมันเป็นการจำลองทางฟิสิกส์ที่ไม่สำคัญ อย่างไรก็ตามการใช้งานของฉันอยู่ในความคิดของฉันไกลจากอุดมคติและฉันสงสัยว่าถ้าคุณสามารถให้คำแนะนำกับฉันเกี่ยวกับวิธีที่จะทำให้ดีขึ้น ฉันแบ่งรหัสออกเป็นสองส่วน: ตรรกะของเกมและ UI อย่างที่ฉันทำกับเกมปริศนามากมาย: ตรรกะของเกมรับผิดชอบกฎทั่วไปของเกม (เช่นระบบกฎอย่างเป็นทางการในหมากรุก) UI แสดงพื้นที่เกมและชิ้นส่วน (เช่นกระดานหมากรุกและชิ้นส่วน) และรับผิดชอบภาพเคลื่อนไหว (เช่นการเคลื่อนไหวของชิ้นส่วนหมากรุก) ตรรกะของเกมแสดงถึงสถานะของเกมเป็นตารางตรรกะซึ่งแต่ละหน่วยเป็นความกว้าง / ความสูงของเซลล์หนึ่งในตาราง ดังนั้นสำหรับกริดที่มีความกว้าง 6 คุณสามารถย้ายบล็อกของความกว้าง 2 ได้สี่ครั้งจนกว่ามันจะชนกับขอบเขต UI ใช้กริดนี้และวาดโดยการแปลงขนาดโลจิคัลเป็นขนาดพิกเซล (นั่นคือคูณด้วยค่าคงที่) อย่างไรก็ตามเนื่องจากเกมแทบจะไม่ได้มีตรรกะของเกมเลยเลเยอร์ตรรกะในเกมของฉัน [1] จึงไม่ต้องทำอะไรมากมายนอกจากการตรวจจับการชน นี่คือวิธีการทำงาน: ผู้เล่นเริ่มลากชิ้นส่วน UI ถามตรรกะของเกมสำหรับพื้นที่การเคลื่อนไหวทางกฎหมายของชิ้นส่วนนั้นและให้ผู้เล่นลากมันภายในพื้นที่นั้น ผู้เล่นปล่อยชิ้นส่วนไป UI จัดเรียงส่วนเข้ากับกริด (เพื่อให้อยู่ในตำแหน่งตรรกะที่ถูกต้อง) UI บอกตรรกะของเกมถึงตำแหน่งโลจิคัลใหม่ (ผ่านวิธีการเปลี่ยนแปลงซึ่งฉันควรหลีกเลี่ยง) ฉันไม่ค่อยมีความสุขกับสิ่งนั้น: ฉันกำลังเขียนการทดสอบหน่วยสำหรับเลเยอร์เกมตรรกะของฉัน แต่ไม่ใช่ UI และมันกลับกลายเป็นว่ารหัสที่ยุ่งยากทั้งหมดนั้นอยู่ใน UI: การหยุดชิ้นส่วนจากการชนกับผู้อื่นหรือขอบเขตและสแนปอินตาราง ฉันไม่ชอบความจริงที่ว่า UI บอกตรรกะของเกมเกี่ยวกับสถานะใหม่ฉันอยากให้มันเรียกmovePieceLeft()วิธีการหรืออะไรทำนองนั้นเหมือนในเกมอื่น ๆ …

3
วิธีที่ดีที่สุดในการทำระบบเมนูหลักคืออะไร?
ฉันรู้ว่ามันเป็นเรื่องง่ายที่จะสร้างปุ่มที่เน้นเมื่อคุณเลื่อนเมาส์ไปที่พวกเขา แต่เมื่อพูดถึงเมนูย่อยฉันรู้สึกแย่ ใครมีเคล็ดลับเกี่ยวกับวิธีที่ดีที่สุดในการมีเมนูหลักพร้อมเมนูย่อย? (เช่น Singleplayer -> โหลดบันทึก -> บันทึก 1-5? -> เริ่มเกมเป็นต้น)
12 gui 

9
จะไปเกี่ยวกับองค์ประกอบ GUI ได้อย่างไร
หมายเหตุ: ฉันวางแผนที่จะสร้างระบบ GUI ของตัวเอง มันจะเป็นการดีสำหรับการเรียนรู้น้ำหนักเบามีเพียงบิตที่ฉันต้องการผูกติดกับเกมเป็นต้น ฉันกำลังคิดเกี่ยวกับวิธีการทำ องค์ประกอบที่ฉันหมายถึงคือ: ปุ่มตัวเลือก ป้อนข้อความที่นี่กล่อง ปุ่ม sliders ช่องทำเครื่องหมาย ฉันไม่ได้มองว่าจะทำอย่างไร แต่พวกเขาจะไปได้อย่างไร ความคิด ฉันจะมีแต่ละรัฐที่ต้องการสิ่งต่าง ๆ ดังนั้นเกือบทั้งหมดมีคอนเทนเนอร์ขององค์ประกอบ องค์ประกอบแต่ละชิ้นเป็น GUI แต่ละคนมีตำแหน่งกราฟิก ฯลฯ บิตที่ฉันติดมากขึ้นคือตรรกะของพวกเขา ความคิดของฉันสำหรับสิ่งนั้นเพื่อให้เป็นโมดุลและความเรียบง่ายคือการหลีกเลี่ยง MainMenuStartButton a OptionsOneBackButton เป็นต้นและสามารถใช้ Slider slider1 แทน หรือปุ่มเริ่ม; แต่แต่ละรายการจะมีฟังก์ชั่น boost :: ไปยังฟังก์ชันในเนมสเปซ GUI เช่น Gui :: StartButtonClick หรือ GUI :: ColourSliderHover ฉันแค่สงสัยว่ามันจะช้าเป็นพิเศษหรือไม่ และสำหรับเรื่องนั้นมีผู้ใดบ้าง ง่ายและเรียบง่ายในการทำ GUI สำหรับเกมหรือไม่? …
12 c++  architecture  gui 

1
วิธีการจับคู่ขนาดตัวอักษรกับความละเอียดหน้าจอ?
ดังนั้นฉันทำงานเกมโดยใช้ LibGDX และฉันมีปัญหา เพื่อให้เกมของฉันเหมาะสมกับความละเอียดที่สุดฉันได้สร้างเนื้อหาพื้นฐานสำหรับแต่ละอัตราส่วนตัวอย่างเช่นรูปภาพพื้นหลังเมนูหลักฉันสร้างเป็น 800X600 สำหรับ 4: 3, 1280X720 สำหรับ 16: 9 เป็นต้น ตอนนี้ฉันกำลังพยายามรวมTextButtonเกมเข้าด้วยกันเพื่อเป็นทางเลือก ปัญหาของฉันคือฉันไม่สามารถหาขนาดตัวอักษรที่ตรงกับความละเอียดของหน้าจอได้ มีวิธีคิดออกหรือไม่ฉันต้องไปทีละความละเอียดแต่ละฉันมีและตรงกับข้อความที่ความละเอียดด้วยตนเอง?

2
Unity UI square ที่เติมความกว้างหรือความสูง
ฉันกำลังพยายามสร้างบอร์ดด้วยข้อกำหนดนี้: มันจะเป็นรูปสี่เหลี่ยมจัตุรัส มันจะพอดีกับความกว้างหรือความสูงที่มีอยู่ มันจะอยู่กึ่งกลางในผืนผ้าใบ มันอาจถูกห่อไว้ในผืนผ้ากลางเพิ่มเติมตามความจำเป็น ฉันกำลังเล่นกับแองเคอร์ แต่ฉันไม่พบการรวมกันใด ๆ ที่จะทำอย่างนั้น ทางออกเดียวที่ฉันคิดได้ก็คือสคริปต์ "OnResize" ของคอนเทนเนอร์และตั้งค่าขนาดของบอร์ดโดยทางโปรแกรม นี่คือเค้าโครงดั้งเดิม (1) คือ BoardCanvas (2) คือคณะกรรมการ ฉันต้องการถ้าหน้าจอสูงขึ้นสี่เหลี่ยมก็จะโตขึ้น แต่ก็ยังเป็นสี่เหลี่ยมจัตุรัส: หรือลด: แต่ถึงแม้ว่าตัวอย่างก่อนหน้านี้จะถูกตัดไปที่ขอบด้านบนและด้านล่าง แต่ฉันก็ต้องการที่ถ้าพื้นที่แนวตั้งจะสูงกว่าความกว้างที่มีอยู่สี่เหลี่ยมจัตุรัสจะ จำกัด ขนาดของมันขึ้นอยู่กับเส้นขอบซ้ายและขวา: Q1:มีวิธีทำเช่นนี้กับสมอ / pivots หรือไม่? ไม่เป็นไรสำหรับฉันที่จะสร้างผืนผ้ากลางระหว่าง BoardCanvas และ Board เองถ้าใช้งานได้ Q2:ถ้าเป็นเช่นนั้นฉันควรวางตำแหน่งจุดยึดที่ไหน ฉันต้องการวัตถุระดับกลางหรือไม่ Q3:ถ้าไม่สคริปต์แก้ปัญหาคืออะไร? มี OnResize ใด ๆ บนผืนผ้าใบเพื่อจัดการ? ฉันไม่เห็นเหตุการณ์การปรับขนาดใด ๆ ในรายการ แต่บางทีฉันก็ไม่รู้จะหาได้ที่ไหน ฉันรู้สึกว่าการทดสอบในทุกเฟรมดูเหมือนว่าเกินความเป็นจริงการขับเคลื่อนของเหตุการณ์ดูเหมือนจะดีกว่า ขอบคุณ!

5
ทำไมฉันไม่สามารถใช้โอเปอเรเตอร์ '> =' กับ Vector3s ได้
ฉันพยายามที่จะได้รับรูปสี่เหลี่ยมผืนผ้าย้ายไปมาระหว่างสองตำแหน่งที่ผมพูดถึงและ_positionA ทั้งสองประเภท_positionB Vector3สี่เหลี่ยมผืนผ้าเคลื่อนไหวได้ดี อย่างไรก็ตามเมื่อมันมาถึง_positionBมันจะไม่เคลื่อนที่ในทิศทางตรงกันข้ามเหมือนอย่างที่ควร ฉันกลับไปที่โค้ดเพื่อดู ฉันมาถึงข้อสรุปว่าเป็นวัตถุย้ายที่ifงบในรหัสพลาดเฟรมซึ่งในตำแหน่ง rects _positionBเท่ากับ ฉันตัดสินใจที่จะปรับเปลี่ยนรหัสไปในทิศทางที่ตรงกันข้ามถ้าตำแหน่ง rects คือมากกว่าหรือเท่ากับ _positionBรหัสของฉันไม่ยาวเกินไปดังนั้นฉันจะแสดงด้านล่าง: using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

2
วิธีการตรวจหาเม้าส์สำหรับภาพ UI ใน Unity 5
ฉันมีภาพที่ฉันได้ตั้งค่าเพื่อเลื่อนไปมาและซูมเข้าและออกจาก ปัญหาคือการซูมสามารถทำได้จากทุกที่ในฉาก แต่ฉันต้องการแค่ซูมเมื่อเมาส์อยู่เหนือภาพ ฉันได้ลองใช้ OnMouseEnter, OnMouseOver, ทริกเกอร์เหตุการณ์, ทั้งสามตัวที่ไม่มี collider, กับ collider, กับ collider trigger, และทั้งหมดที่อยู่บนภาพเองและบนวัตถุเกมที่ว่างเปล่า อย่างไรก็ตามไม่มีของเหล่านั้นทำงานได้ ... ดังนั้นฉันจึงนิ่งงันอย่างแน่นอน ... ใครช่วยฉันออกจากที่นี่! นี่คือสคริปต์ของฉัน: private float zoom; public float zoomSpeed; public Image map; public float zoomMin; public float zoomMax; void Update () { zoom = (Input.GetAxis("Mouse ScrollWheel") * Time.deltaTime * zoomSpeed); map.transform.localScale += …
9 unity  c#  gui  image  mouse 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.