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

Unity เป็นระบบการสร้างเกมข้ามแพลตฟอร์มที่มุ่งเน้นกระบวนการไปป์ไลน์ที่ง่าย ประกอบด้วยเอ็นจิ้นเกมและสภาพแวดล้อมการพัฒนาแบบรวม การสร้างสคริปต์ของเอ็นจิ้นเกมสร้างขึ้นบนโมโน

2
วิธีการทำให้ฟิลด์มองเห็น (สิ่งที่แนบได้) ในตัวตรวจสอบ แต่ไม่สามารถเข้าถึงได้ด้วยรหัส (ส่วนตัว - เหมือน)?
สมมติว่าผมมีชื่อตัวแปรbuttonชนิดซึ่งเป็นหลักสูตรButtonSystem.Serializable ฉันต้องการตัวแปรนั้นสามารถกำหนดได้ผ่านทางผู้ตรวจสอบดังนั้นฉันจึงทำมันpublic: public class SomeScript : MonoBehaviour{ public Button button; } ซึ่งให้ฉันว่า: ตอนนี้ฉันต้องการรักษารหัสให้สะอาดและปลอดภัย (จัดระเบียบ) และมีเหตุผลที่แท้จริงว่าทำไมฉันจึงต้องรักษาความห่อหุ้มไว้ ฉันรู้ว่ามีหลายวิธีในการดึงส่วนประกอบบนรันไทม์เช่นtransform.Find("Some/Genius/TypeUnsafe/Path")หรือGameObject.Find("3 seconds scene iteration").GetComponent(...).ฉันต้องการที่จะหลีกเลี่ยง ฉันจะผสมตัวแปรเข้าprivate accessกับpublic accessตัวตรวจสอบได้อย่างไร

2
วิธีการหลีกเลี่ยงสปาเก็ตตี้ในอนิเมเตอร์?
ฉันกำลังทำงานกับแอนิเมชั่นใน Unity และจนถึงตอนนี้ฉันได้สร้างเพียงสี่ (ขึ้นลงซ้ายและขวา) และหน้าต่างภาพเคลื่อนไหวของฉันมีลักษณะดังต่อไปนี้ ... ปัญหาคือถ้าฉันขยับขึ้นฉันต้องการให้ฮีโร่คอยมองหาอย่าไป 'ว่างกลาง' (หรือเขาเริ่ม) แต่นั่นหมายความว่าฉันมีตำแหน่งว่าง 4 ตำแหน่ง ... และแต่ละคนสามารถเปลี่ยนเป็นขึ้นลง ไปทางซ้ายหรือขวาและพวกมันจะอธิบายแบบทวีคูณในแต่ละแอ็คชั่นเพิ่มเติม ... ซึ่งทำให้ฉันรู้สึกว่าฉันกำลังทำอะไรผิดไป .... มีวิธีที่ดีกว่าในการเปลี่ยนระหว่างการกระทำที่แตกต่างกันหรือไม่?
9 unity  2d  animation 

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 

1
พื้นผิวเคลื่อนไหวสำหรับรุ่น; วิธีการเขียน Shader หรือไม่?
กำลังดู Rocket League และสังเกตว่ามีสติ๊กเกอร์เคลื่อนไหวและล้อ . ฉันต้องการใช้งานสิ่งที่คล้ายกับเอฟเฟกต์ในภาพด้านบน ฉันจะเขียน Unity Shader เพื่อสร้างเอฟเฟกต์ล้อได้อย่างไร ฉันไม่ค่อยรู้เรื่อง Shaders มากนัก แต่ฉันสามารถแก้ไข Unity Shader มาตรฐานเพื่อสร้างเอฟเฟกต์ภาพเคลื่อนไหวได้หรือไม่?

4
ทำไมรหัส C # 6 ของฉันไม่รวบรวมใน Unity
เหตุใด Unity จึงไม่สามารถทำงานกับรหัสC # 6 ได้ มันทำให้ฉันมีข้อผิดพลาดคอมไพเลอร์เสมอ นี่คือตัวอย่างรหัสบางส่วน: using static System.Convert; using static System.Environment; $"€{punten}{NewLine}€{Money}{NewLine}€{KilledEnemies}{NewLine}€{bonus}{NewLine}€{total}"; ฉันใช้ Visual Studio เป็นเครื่องมือแก้ไขรหัสและสร้างโดยไม่มีข้อผิดพลาด ถ้าฉันกดเล่นด้วยความสามัคคีมันจะไม่สร้างขึ้น
9 unity  c# 

1
การแก้ปัญหาข้อยกเว้น: ไม่พบสิ่งประดิษฐ์ของผู้สมัครสำหรับ com.google.android.gms: play-services-games: 8.1+
รับข้อผิดพลาดนี้: EditorAssemblies.ProcessEditorInitializeOnLoad (ชนิด System.Type) (ที่ C: /buildslave/unity/build/Editor/Mono/EditorAssemblies.cs: 123) ถูก Rethrow เป็น TargetInvocationException: ข้อยกเว้นถูกโยนทิ้งโดยเป้าหมายของการเรียกใช้ System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, พารามิเตอร์ System.Object [], พารามิเตอร์ System.Globalization.CultureInfo วัฒนธรรม (ที่ / ผู้ใช้ / builduser / buildslave / mono-runtime- และ -liblibs / build / mcs / class / corlib / System.Reflection / MonoMethod.cs: 519) …

1
สร้าง Octree สำหรับการสร้างภูมิประเทศ
ก่อนหน้านี้ฉันได้ใช้การเดินขบวน cubes / tetrahedra เพื่อสร้าง IsoSurface มันใช้งานได้ ( YouTube ) แต่ประสิทธิภาพการทำงานแย่มากเพราะฉันไม่เคยได้รับการใช้งานระดับรายละเอียดที่แปรผันตามระยะทางในการดู ฉันตัดสินใจที่จะมีอีกไปและทำอย่างถูกต้องในเวลานี้ ฉันเริ่มต้นด้วยการสร้าง OctreeNode ที่ทำงานดังนี้เมื่อBuild()ถูกเรียก หากชิ้นเล็กเกินไปที่จะสร้างกลับมาทันที ทำงานถ้าพื้นผิวผ่านปริมาตรอันนี้ ถ้าเป็นเช่นนั้นตัดสินใจว่าเราต้องการยก LOD (เพราะกล้องปิด) ถ้าเป็นเช่นนั้นให้วางไข่เด็ก 8 คนและเรียกกระบวนการเดียวกันกับพวกเขา ถ้าไม่สร้างตาข่ายโดยใช้ขนาดของโหนดปัจจุบัน บาง PseudoCode: OctNode Build() { if(this.ChunkSize < minChunkSize) { return null; } densityRange = densitySource¹.GetDensityRange(this.bounds); if(densityRange.min < surface < densityRange.max) { if(loDProvider.DesiredLod(bounds)² > currentLoD) { for(i …
9 unity  c#  voxels  octree 

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 

1
ฉันจะวาดส่วนของแผ่นสไปรต์ด้วยตนเองได้อย่างไร
ฉันทำงานใน Unity และฉันพบว่าอนิเมเตอร์ไม่ทำงานในสิ่งที่ฉันพยายามทำในเกม 2D ของฉัน ฉันต้องการสร้างภาพเคลื่อนไหวที่เฉพาะเจาะจงโดยใช้แผ่นงานสไปรต์และสามารถนำภาพเคลื่อนไหวเดิมมาใช้ซ้ำกับสไปรต์อื่น ๆ ที่มีขนาดและมิติเท่ากันโดยเซลล์ หลังจากการวิจัยบางอย่างฉันพบว่ามันเป็นไปไม่ได้ ฉันพยายามสร้างสคริปต์ภาพเคลื่อนไหวของตัวเอง แต่ฉันไม่เข้าใจวิธีบอก Unity ให้วาดเพียงบางส่วนของสไปรต์ บางสิ่งที่เหมือนใน XNA ซึ่งคุณสามารถแสดงเฉพาะรูปสี่เหลี่ยมผืนผ้าของสไปรต์โดยใช้พิกัดเริ่มต้นและสิ้นสุด ฉันจะวาดส่วนของแผ่นสไปรต์ด้วยตนเองได้อย่างไร

3
Slerping กระจกหมุน
ฉันหมุนตัวละครเกมของฉันเพื่อดูที่เป้าหมายโดยใช้รหัสต่อไปนี้: transform.rotation = Quaternion.Slerp(startQuaternion, lookQuaternion, turningNormalizer*turningSpeed/10f) startQuaternion เป็นการหมุนปัจจุบันของตัวละครเมื่อกำหนดเป้าหมายใหม่ lookQuaternion เป็นทิศทางที่ตัวละครควรมองและมันก็เป็นแบบนี้: destinationVector = currentWaypoint.transform.position - transform.position; lookQuaternion = Quaternion.LookRotation(destinationVector, Vector3.up); TurningNormalizer เพิ่งTime.deltaTimeเพิ่มขึ้นและturningSpeedเป็นค่าคงที่ที่กำหนดในตัวแก้ไข ปัญหาคือในขณะที่ตัวละครเปลี่ยนตามที่ควรจะเป็นส่วนใหญ่มันมีปัญหาเมื่อมันต้องเข้าใกล้ 180 องศา จากนั้นในบางครั้งก็กระวนกระวายใจและสะท้อนการหมุน: ในภาพที่วาดไม่ดีตัวละคร (ด้านขวา) จะเริ่มหันไปทางวงกลมทางด้านซ้าย แทนที่จะแค่หมุนไปทางซ้ายหรือขวามันเริ่มต้น "mirror dance" นี้: มันเริ่มหมุนไปทางด้านหน้าใหม่ จากนั้นมันก็หันไปที่มุมเดียวกันทันที แต่อยู่อีกด้านหนึ่งและหมุนไปเรื่อย ๆ มันเป็นการ“ ทำมิเรอร์” นาน ๆ จนกว่ามันจะมองไปที่เป้าหมาย นี่คือสิ่งที่มี quaternions, slerping / lerping หรืออย่างอื่น? แก้ไข 1: เห็นได้ชัดว่าปัญหาไม่ได้เกิดจากการหมุนของตัวเอง …

2
Coroutines ในซีรีส์
ฉันจะไปเกี่ยวกับการรวบรวมชุดการโทร Coroutine ที่ควรดำเนินการหลังจากที่อื่นได้อย่างไร ฉันได้ลองรับเอฟเฟกต์สีที่กระพริบวนลูปสีใน coroutine แต่มันไม่ทำงาน
9 unity 

1
ฉันจะบันทึกจากกล้องในเกมที่สองและส่งออกเป็นไฟล์วิดีโอในภายหลังได้อย่างไร
ฉันสร้างเกม PC Horror ใน Unity และฉันต้องการให้มีการจำลองกล้องบันทึกในเกม - ดังนั้นคุณสามารถออกจากสถานที่ที่น่าขนลุกได้ทุกเวลาและคุณจะมีเทปพร้อมสิ่งที่คุณบันทึกไว้ในกล้องขณะสำรวจ ในทางเทคนิคแล้วฉันต้องแนบกล้องตัวที่สอง (มือลูกเบี้ยว) เข้ากับมือของตัวละครแล้วปล่อยให้ผู้เล่นมองผ่านช่องมองภาพด้วยการกดปุ่ม แต่ในตำแหน่งใด ๆ กล้องมือต้องบันทึกทุกสิ่งที่อยู่ในโฟกัส ณ จุดนั้น - พื้นบันไดขยะ ฯลฯ ไม่ว่าจะลดระดับมือหรือยกระดับขึ้นเพื่อให้ตรงกับมุมมองของผู้เล่น เมื่อเกมจบลง (ผู้เล่นออกจากหรือตาย) ฉันต้องการตัวเลือกในการบันทึกเทปที่บันทึกไว้ในไฟล์วิดีโอ (หากไม่สามารถทำได้จากนั้นให้บันทึกไฟล์บางไฟล์) ฉันจะใช้คุณสมบัติดังกล่าวในเกมได้อย่างไร มีเทคนิคพิเศษ Unity หรือ Add-on และโมดูลเพิ่มเติมหรือไม่ ประหยัดการตกแต่งและฉากด้วยทริกเกอร์ที่ใช้งานอยู่หรือเพียงแค่จับวิดีโอจากหน้าจอ? ด้านล่างเป็นแนวคิด MSPaint อย่างรวดเร็วของสิ่งที่ฉันหมายถึง:

1
2D โปรไฟล์ผิวด้านบนของน้ำ
ฉันพยายามสร้างเอฟเฟกต์ของความหนาของผิวน้ำด้วย shader ที่ยอด ฉันอยู่ในสภาพแวดล้อมของเกม 3 มิติ แต่มันเป็นมุมมองเลื่อนดังนั้นมุมมอง "2D" นี่คือบทแนะนำที่ดีเกี่ยวกับการสร้างเอฟเฟกต์ดังกล่าวใน 2D จริงโดยใช้ตัวแบ่งส่วน แต่ฉันคิดว่ามันใช้ไม่ได้ในกรณีนี้ สำหรับช่วงเวลาที่ฉันมีเครื่องบินเพียงลำเดียวฉันก็ใช้การหักเหแสง และฉันต้องการใช้เอฟเฟกต์ความหนาของน้ำ แต่ฉันไม่รู้จะทำยังไง ฉันไม่ได้พยายามที่จะสร้างการเสียรูป / การเคลื่อนที่ของน้ำโดยใช้จุดยอดในขณะนี้นี่ไม่ใช่ประเด็น ฉันไม่รู้ว่ามันเป็นไปได้หรือเปล่ากับ quad ที่เรียบง่ายบางทีฉันควรใช้วัตถุแบบนี้ นี่คือตัวอย่างบางส่วน. ฉันไม่มีความคิดเกี่ยวกับวิธีสร้างเอฟเฟกต์นี้ ขอบคุณมาก ! [ แก้ไข ] เพิ่มเอฟเฟกต์น้ำเรย์แมนเพื่อการอ้างอิงที่ดีขึ้นของเอฟเฟกต์

1
จะสร้างพอร์ทัลเอฟเฟกต์คุณภาพสูงและรวดเร็วได้อย่างไร?
แก้ไข: ดังนั้นฉันจึงได้รับพอร์ทัลวิชวลเอฟเฟกต์ทำงานโดยไม่มีประสิทธิภาพในการทำงานและฉันได้รับการตั้งค่าทางฟิสิกส์ของวัตถุที่มีวัตถุเคลื่อนที่ผ่านทางพอร์ทัลอย่างราบรื่นและวัตถุที่มีตัวควบคุมตัวละครเคลื่อนไหวอย่างราบรื่น สิ่งเดียวที่ฉันพยายามคิดตอนนี้คือการผสมผสานมุมมองของกล้องสองตัวเพื่อให้ได้เอฟเฟกต์การเปลี่ยนคนแรกที่เหมาะสม มีแนวคิดใดบ้างที่ฉันจะผสมผสานสองสิ่งนี้เข้าด้วยกัน? ฉันกำลังคิดบางอย่างที่ใช้ shader ที่มีความลึกเท่านั้นหรือ rect ของวิวพอร์ตปกติ ปัญหาหลักของฉันคือการคำนวณว่าในเวลาจริงและมีมุม ดังนั้นฉันจึงพยายามสร้างพอร์ทัลเอฟเฟกต์ใน Unity3D เห็นได้ชัดว่าฉันได้ยึดพอร์ทัลของ Valve เป็นอิทธิพลอย่างมากต่อการเขียนโปรแกรมนี้ ขณะนี้ฉันเพียงแค่ใช้การเรนเดอร์พื้นผิวของกล้องเพื่อให้ได้เอฟเฟกต์กราฟิกแบบข้ามและจากนั้นโค้ดบางอย่างที่เหลือ ปัญหาอยู่ที่ 2048x2048 ดูเหมือนว่าคุณภาพสูงเท่ากับพอร์ทัล แต่เป็นสาเหตุของการสูญเสีย FPS หนัก เพื่อแก้ปัญหานี้ฉันต้องลดคุณภาพพื้นผิวหรือลดจำนวนครั้งที่ฉันอัปเดตพื้นผิว Valve ประสบความสำเร็จในการสร้างเอฟเฟกต์พอร์ทัลคุณภาพสูงโดยไม่ทำให้เฟรมเรตสูญหาย ฉันจะทำสิ่งเดียวกันได้อย่างไร ใครบ้างมีความคิดที่ดีสำหรับการแสดงผลพื้นผิวความละเอียดสูงโดยไม่ทำให้เกิดการสูญเสียเฟรม? ฉันกำลังพิจารณาที่จะสร้างรหัสของตัวเองสำหรับการแสดงผลพื้นผิวแทนที่จะใช้ระบบในตัวของ Unity มันเป็นไปได้ แต่น่าจะเป็นเรื่องยุ่งยาก ดังนั้นความคิดความคิดหรือคำแนะนำใด ๆ จึงเป็นที่นิยมอย่างสูง
9 unity  valve  portals 

1
วิธีการปิดไฟใน Unity3D ได้อย่างไร
ก่อนอื่นฉันเป็นเจ้าของ Unity Pro ฉันกำลังมองหาที่จะปิดไฟเมื่อพวกเขาไม่ได้รับการดูในขณะนี้เพื่อปรับปรุงประสิทธิภาพ วิธีการหลักที่ฉันใช้ในการใช้ BecameVisible () และทดสอบ frustum ของกล้อง ปัญหาหลักของฉันคือถ้าผู้เล่นกำลังดูพื้นที่ที่จะสว่างด้วยแสงฉันยังต้องการแสงที่จะเปิด ขณะนี้ฉันใช้วิธีการตรวจสอบเพื่อดูว่าพื้นที่แสงสว่างอยู่ใน frustum ของกล้องหรือไม่ แต่บางครั้งปัญหาไฟอยู่ใน frustum โดยที่ผู้เล่นไม่สามารถมองเห็นได้ (เช่นกำแพงกั้นระหว่างพวกเขากับเครื่องเล่น) ฉันลอง raycasting กับพวกมัน แต่คุณไม่สามารถรับรายละเอียดเพียงพอสำหรับพื้นที่ที่เกิดขึ้นจริง (สิ่งที่ดีที่สุดที่ฉันคิดได้คือใช้ renderer.bounds.extent และ renderer.bounds.center เพื่อคำนวณจุดส่องสว่างสูงสุดจากแสง) ไม่มีใครรู้วิธีที่ง่าย ๆ ใน Unity Pro เพื่อปิดไฟ? หรือคุณสามารถบอกวิธีที่ดีในการใช้วิธีการที่ศูนย์กลางกล้องที่ฉันพูดถึง?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.