Đề thi trắc nghiệm

PRU213 - Đề SP 2025 lần 1 (50 câu)

50Câu hỏi
Game Programming with C# - Lập tringh Game với C#Môn học

Phiên có lưu tiến độ dùng toàn bộ 50 câu của bộ đề để tiến độ khớp với máy chủ.

Phiên sắp tạo
50 câu Chế độ học Không giới hạn

Bạn cần đăng nhập để bắt đầu làm bài và lưu tiến độ.

Tổng câu hỏi

50

Thời gian làm bài

Không giới hạn

Lượt xem

1

Câu có lời giải

50

Câu có link chi tiết

50

Xem trước câu hỏi

Bấm vào từng câu để xem đáp án
#001
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ABy making the interface visually complex
By giving users instant responses to their actionsĐÚNG
CBy providing extensive tutorials
DBy maintaining uniformity in design elements
Giải thích

Sự nguyên tắc phản hồi tức thời giúp nâng cao trải nghiệm người dùng trong thiết kế UI bằng cách cung cấp cho người dùng phản hồi tức thời khi họ thực hiện các hành động. Điều này cho phép người dùng biết được kết quả của hành động của họ ngay lập tức, giúp họ hiểu rõ hơn về cách sử dụng sản phẩm và giảm thiểu sự nhầm lẫn. Phản hồi tức thời cũng giúp người dùng cảm thấy được hỗ trợ và hướng dẫn, từ đó tăng cường sự tin tưởng và hài lòng với sản phẩm.

#002
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ABy assigning functions or methods to buttons
BThrough scripting to define custom behaviors
Using Unity's animation system or event triggersĐÚNG
DBy using sprite atlases or sprite sheets for optimization
Giải thích

Để tạo hiệu ứng thu hút cho nút trong Unity, bạn có thể sử dụng các phương pháp sau. Thứ nhất, bạn có thể gán các hàm hoặc phương thức vào nút để tạo ra các hành động tùy chỉnh. Thứ hai, bạn có thể sử dụng hệ thống animation hoặc event triggers của Unity để tạo ra các hiệu ứng động. Điều này cho phép bạn tạo ra các hiệu ứng như nhấp nháy, thay đổi màu sắc, hoặc thậm chí là tạo ra các hiệu ứng 3D. Ngoài ra, bạn cũng có thể sử dụng các sprite atlases hoặc sprite sheets để tối ưu hóa quá trình tạo hiệu ứng.

#003
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Using sprite atlases or sprite sheets to minimize draw calls and improve performanceĐÚNG
BAssigning functions or methods to buttons
CScripting custom button behaviors
DUsing Unity's animation system to animate buttons
Giải thích

Kỹ thuật tối ưu hóa được khuyến nghị cho tài nguyên nút trong Unity là sử dụng sprite atlas hoặc sprite sheet để giảm số lần gọi và cải thiện hiệu suất. Việc sử dụng sprite atlas hoặc sprite sheet giúp giảm số lượng draw call, từ đó cải thiện hiệu suất của trò chơi. Điều này đặc biệt quan trọng khi bạn có nhiều nút trên màn hình, vì mỗi nút đều cần một draw call riêng biệt. Ngoài ra, sử dụng sprite atlas hoặc sprite sheet cũng giúp giảm thiểu việc tải và lưu trữ tài nguyên, từ đó cải thiện hiệu suất tổng thể của trò chơi.

#004
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AScriptable Objects
BAnimation Controller
CCanvas Renderer
State TransitionsĐÚNG
Giải thích

Tính năng trong Unity cho phép tạo sự khác biệt hình ảnh giữa các trạng thái nút như Normal, Highlighted, Pressed và Disabled được gọi là State Transitions. Đây là một tính năng quan trọng giúp bạn có thể tạo ra các nút có giao diện đẹp mắt và dễ sử dụng. Với State Transitions, bạn có thể dễ dàng tạo ra các trạng thái khác nhau cho nút, chẳng hạn như trạng thái bình thường, trạng thái được chọn, trạng thái nhấn và trạng thái bị vô hiệu hóa. Điều này giúp bạn có thể tạo ra các nút có giao diện chuyên nghiệp và dễ sử dụng.

#005
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AToggle
BDropdown
CSlider
Scroll ViewĐÚNG
Giải thích

Trong Unity, có nhiều loại thành phần uGUI khác nhau để tạo ra các giao diện người dùng. Để xử lý nội dung có thể cuộn, chẳng hạn như danh sách dài hoặc nội dung không thể chứa trong một khu vực cố định, bạn cần sử dụng thành phần phù hợp. Trong các lựa chọn trên, thành phần "Scroll View" là lựa chọn tốt nhất. Nó cho phép người dùng cuộn qua nội dung khi nó vượt quá giới hạn của khu vực hiển thị. Điều này rất hữu ích khi bạn cần hiển thị một lượng lớn dữ liệu mà không cần phải tạo ra một khu vực hiển thị quá lớn.

#006
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AServing as a container for other UI elements
BRendering 2D images or sprites
Enabling user input for text, numbers, or passwordsĐÚNG
DDisplaying text content with various styles
Giải thích

Trong Unity, Input Field là một thành phần quan trọng trong hệ thống UI (User Interface). Nó được sử dụng để nhận và xử lý đầu vào từ người dùng. Cụ thể, Input Field cho phép người dùng nhập văn bản, số hoặc mật khẩu. Nó có thể được sử dụng trong nhiều trường hợp khác nhau, chẳng hạn như nhập tên người dùng, mật khẩu, địa chỉ email, v.v. Input Field cũng cung cấp các tính năng như kiểm tra nhập liệu, xác thực mật khẩu và hiển thị văn bản theo nhiều kiểu khác nhau. Nó là một phần quan trọng trong việc tạo ra giao diện người dùng thân thiện và dễ sử dụng.

#007
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AEnsuring interfaces are visually appealing
Creating user-friendly and easy-to-navigate interfacesĐÚNG
CMaking interfaces complex and feature-rich
DProviding extensive documentation
Giải thích

Giải pháp Usability trong thiết kế giao diện tương tác tập trung vào việc tạo ra các giao diện người dùng thân thiện và dễ sử dụng. Điều này có nghĩa là các nhà thiết kế phải ưu tiên tính dễ hiểu và dễ sử dụng của giao diện, giúp người dùng có thể dễ dàng tìm kiếm và thực hiện các chức năng mong muốn. Điều này bao gồm việc sắp xếp các yếu tố giao diện một cách hợp lý, sử dụng ngôn ngữ và biểu tượng rõ ràng, và đảm bảo rằng giao diện dễ dàng sử dụng trên các thiết bị khác nhau. Mục tiêu của Usability là giảm thiểu sự khó khăn và thất vọng của người dùng khi sử dụng giao diện, đồng thời tăng cường trải nghiệm người dùng và cải thiện hiệu suất của giao diện.

#008
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ATexture maps
BJoints
CRigid parts
BonesĐÚNG
Giải thích

Các phần mềm dẻo của một mô hình được gọi là gì? Các phần mềm dẻo của một mô hình 3D là các điểm nối giữa các phần cứng khác nhau, cho phép mô hình có thể di chuyển và thay đổi hình dạng. Chúng thường được sử dụng trong các ứng dụng như đồ họa máy tính, trò chơi điện tử và thiết kế sản phẩm. Các phần mềm dẻo giúp mô hình có thể thể hiện các chuyển động và hành động tự nhiên hơn, tạo ra trải nghiệm chân thực hơn cho người dùng.

#009
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Managing the flow of animations and statesĐÚNG
BCreating smooth transitions between animations
CSynchronizing animations with gameplay events
DFine-tuning animation behavior based on parameters
Giải thích

Animator Controller trong Unity là một công cụ quan trọng giúp quản lý luồng hoạt động và trạng thái của các nhân vật trong trò chơi. Nó cho phép bạn thiết lập các trạng thái khác nhau cho nhân vật, chẳng hạn như đi, chạy, nhảy, tấn công, v.v. Mỗi trạng thái có thể có các hoạt động riêng biệt, chẳng hạn như chuyển động, hiệu ứng ánh sáng, âm thanh, v.v. Animator Controller cũng cho phép bạn tạo ra các chuyển tiếp mượt mà giữa các trạng thái khác nhau, giúp tạo ra hiệu ứng hoạt động mượt mà và tự nhiên.

#010
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
image.sprite = newSprite;ĐÚNG
Bimage.SetSprite(newSprite);
Cimage.UpdateSprite(newSprite);
Dimage.Replace(newSprite);
Giải thích

Để thay thế hình ảnh của một thành phần Image tại thời điểm chạy chương trình, bạn cần sử dụng thuộc tính sprite của Image. Trong các lựa chọn trên, câu trả lời đúng là "image.sprite = newSprite;". Điều này có nghĩa là bạn cần gán giá trị mới của hình ảnh vào thuộc tính sprite của Image. Ví dụ, nếu bạn muốn thay thế hình ảnh của một Image có tên là 'myImage' bằng một hình ảnh mới có tên là 'newSprite', bạn có thể sử dụng mã sau: myImage.sprite = newSprite;

#011
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AImage
BText
CCanvas/Panel
ButtonĐÚNG
Giải thích

Trong Unity, uGUI là một công cụ giúp tạo giao diện người dùng (UI) cho các ứng dụng. Để tạo ra một thành phần UI có thể tương tác với người dùng, chúng ta cần sử dụng một thành phần uGUI phù hợp. Trong các lựa chọn trên, thành phần nào có thể nhận được sự tương tác của người dùng bằng cách phản hồi với các lần nhấp chuột hoặc chạm vào màn hình, sau đó kích hoạt các hành động trong ứng dụng?

#012
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Aanimator.SetClipSpeed(float speed);
Banimator.Play("ClipName", speed);
animator.speed = speed;ĐÚNG
Danimation.speed = speed;
Giải thích

Để điều chỉnh tốc độ của một animation tại thời điểm chạy chương trình, bạn cần sử dụng một số phương thức khác nhau tùy thuộc vào ngôn ngữ lập trình và thư viện animation mà bạn đang sử dụng. Trong trường hợp này, chúng ta đang tìm kiếm phương thức phù hợp với Unity Engine. Với Unity, bạn có thể sử dụng phương thức animator.speed = speed; để điều chỉnh tốc độ của animation. Phương thức này cho phép bạn thay đổi tốc độ của animation một cách dễ dàng và linh hoạt. Ví dụ, nếu bạn muốn tăng tốc độ của animation lên gấp hai lần, bạn chỉ cần gán giá trị 2 vào biến speed.

#013
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ACircle Collider
Wheel ColliderĐÚNG
CTerrain Collider
DComposite Collider 2D
Giải thích

Trong Unity, có một số loại Collider khác nhau được sử dụng để mô phỏng các vật thể khác nhau. Khi nói đến việc mô phỏng bánh xe của xe, chúng ta cần sử dụng một loại Collider cụ thể. Wheel Collider là một loại Collider được thiết kế riêng để mô phỏng bánh xe của xe. Nó cho phép bạn mô phỏng các bánh xe của xe, bao gồm cả chuyển động và va chạm. Wheel Collider cũng cho phép bạn tùy chỉnh các thuộc tính của bánh xe, chẳng hạn như bán kính và tốc độ quay. Điều này giúp bạn tạo ra các mô hình xe thực tế và chính xác hơn.

#014
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
APhysics and Colliders
BAI (Artificial Intelligence)
State MachinesĐÚNG
DPlayer Controls
Giải thích

Trong game logic, có một số thành phần quan trọng giúp quản lý các trạng thái khác nhau của trò chơi. Trạng thái có thể bao gồm menu chính, gameplay và menu tạm dừng. Một trong những thành phần quan trọng này là State Machines (Máy trạng thái). Nó giúp quản lý các trạng thái khác nhau của trò chơi bằng cách chuyển đổi giữa chúng một cách linh hoạt và hiệu quả. Ví dụ, khi người chơi vào menu chính, máy trạng thái sẽ chuyển sang trạng thái menu chính, và khi người chơi bắt đầu gameplay, máy trạng thái sẽ chuyển sang trạng thái gameplay. Điều này giúp trò chơi trở nên linh hoạt và dễ dàng quản lý.

#015
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AThe color, bounciness and texture of objects
BThe object's position, rotation, and sound effects
The object's friction, bounciness, and sound effectsĐÚNG
DThe object's animation behavior, position, rotation
Giải thích

Trong Unity, vật liệu vật lý (physics materials) được gán vào các collider sẽ kiểm soát các thuộc tính sau: độ ma sát (friction), độ bồng bềnh (bounciness) và âm thanh (sound effects). Điều này có nghĩa là vật liệu vật lý sẽ quyết định cách vật thể tương tác với môi trường xung quanh, bao gồm cả việc trượt, bồng bềnh và tạo ra âm thanh khi va chạm. Ví dụ, một vật liệu vật lý có độ ma sát cao sẽ giúp vật thể trượt ít hơn khi di chuyển trên bề mặt, trong khi một vật liệu vật lý có độ bồng bềnh cao sẽ giúp vật thể bồng bềnh nhiều hơn khi va chạm.

#016
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ABox Collider
BCylinder Collider
CCapsule Collider
Sphere ColliderĐÚNG
Giải thích

Trong Unity, khi cần tạo ra các đối tượng hình cầu như bóng đá, quả bóng,... thì bạn nên sử dụng Collider hình cầu. Collider hình cầu có thể được sử dụng để tạo ra các đối tượng có hình dạng gần giống với hình cầu. Nó có thể được sử dụng để tạo ra các đối tượng như bóng đá, quả bóng, hoặc bất kỳ đối tượng hình cầu nào khác. Khi sử dụng Collider hình cầu, bạn có thể dễ dàng tạo ra các đối tượng có hình dạng phức tạp và có thể tương tác với các đối tượng khác trong môi trường Unity.

#017
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ASphere Collider
BMesh Collider
Capsule ColliderĐÚNG
DBox Collider
Giải thích

Trong Unity, có nhiều loại collider khác nhau được sử dụng để tương tác vật thể trong môi trường 3D. Khi nói đến các hình dạng trụ (cylindrical), chúng ta thường sử dụng Capsule Collider. Hình dạng trụ thường được sử dụng để mô tả các vật thể như xe hơi, người hoặc các vật thể có hình dạng tương tự. Capsule Collider là một loại collider đặc biệt được thiết kế để tương tác với các hình dạng trụ. Nó hoạt động bằng cách tạo ra một hình nón (cylinder) xung quanh vật thể và kiểm tra xem có vật thể nào chạm vào hình nón đó hay không. Điều này giúp đảm bảo rằng vật thể sẽ tương tác chính xác với môi trường xung quanh.

#018
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ATo use the actual mesh of a 3D model as the collider
BTo enable realistic wheel interactions with terrain
To combine multiple colliders into a single collider for improved performance in 2D physicsĐÚNG
DTo optimize collision detection for terrains created with Unity's terrain system
Giải thích

Mục đích chính của Composite Collider 2D trong hệ thống vật lý Unity là để kết hợp nhiều collider riêng biệt thành một collider duy nhất. Điều này giúp cải thiện hiệu suất trong vật lý 2D bằng cách giảm số lượng collider cần được kiểm tra trong quá trình phát hiện va chạm. Composite Collider 2D cho phép bạn tạo ra một collider phức tạp bằng cách kết hợp nhiều collider đơn giản, chẳng hạn như hình chữ nhật, hình tròn, hình đa giác, v.v. Điều này giúp bạn có thể mô phỏng các vật thể phức tạp trong game của mình mà không cần phải tạo ra một collider phức tạp.

#019
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AObject Interactions
Enemy BehaviorĐÚNG
CPlayer Controls
DPhysics and Colliders
Giải thích

Logic chơi game đóng vai trò quan trọng trong việc quản lý tương tác với nhân vật không chơi được (NPCs) hoặc kẻ thù. Logic chơi game xác định cách nhân vật không chơi được hoặc kẻ thù sẽ hành động, phản ứng và tương tác với người chơi. Điều này bao gồm cả việc quyết định hành động của nhân vật không chơi được hoặc kẻ thù dựa trên tình huống và trạng thái của trò chơi. Ví dụ, logic chơi game có thể quyết định một nhân vật không chơi được sẽ tấn công người chơi khi họ đến gần, hoặc một kẻ thù sẽ chạy trốn khi bị thương. Logic chơi game giúp tạo ra trải nghiệm chơi game chân thực và thú vị hơn.

#020
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
APlayerPrefs
BScriptableObjects
SceneReconstructionĐÚNG
DExternal files
Giải thích

Unity cung cấp nhiều phương pháp để lưu trữ dữ liệu. Trong đó, PlayerPrefs, ScriptableObjects và External files là những phương pháp phổ biến. PlayerPrefs thường được sử dụng để lưu trữ dữ liệu nhỏ, chẳng hạn như cài đặt người dùng. ScriptableObjects được sử dụng để lưu trữ dữ liệu phức tạp, chẳng hạn như mô hình 3D. External files được sử dụng để lưu trữ dữ liệu lớn, chẳng hạn như hình ảnh hoặc âm thanh. Tuy nhiên, SceneReconstruction không phải là một phương pháp lưu trữ dữ liệu trong Unity. SceneReconstruction là một kỹ thuật được sử dụng để tái tạo không gian 3D từ hình ảnh, nhưng nó không liên quan đến việc lưu trữ dữ liệu.

#021
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
The dynamic GameObject's movement and subsequent reaction to the collision are influenced by its mass and the gravity scale. A higher mass results in less impact from the collision, whereas a higher gravity scale increases the GameObject's speed upon collision.ĐÚNG
BThe dynamic GameObject will pass through the static GameObject, as static bodies do not interact with other physics bodies.
CThe collision will result in the static GameObject being pushed by the dynamic GameObject, demonstrating a physical response.
DThe dynamic GameObject will stop immediately upon collision, regardless of its mass or the gravity scale set.
Giải thích

Khi một GameObject có Rigidbody 2D với loại cơ thể động (dynamic body type) và quy mô trọng lực không bằng không (non-zero gravity scale) va chạm với một GameObject khác có loại cơ thể tĩnh (static body type) và thành phần Collider 2D, hiệu ứng của va chạm sẽ phụ thuộc vào các thuộc tính khối lượng và quy mô trọng lực của GameObject có cơ thể động. Nếu khối lượng của GameObject có cơ thể động cao, nó sẽ ít bị ảnh hưởng bởi va chạm. Ngược lại, nếu quy mô trọng lực cao, GameObject sẽ tăng tốc độ khi va chạm. Điều này cho thấy rằng GameObject có cơ thể động sẽ phản ứng với va chạm theo cách vật lý.

#022
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Update() runs every frame, while FixedUpdate() runs at a fixed time step.ĐÚNG
BUpdate() is used for physics calculations, while FixedUpdate() is not.
CFixedUpdate() is called only when physics objects collide.
DUpdate() stops running when the game is paused, while FixedUpdate() doesn't.
Giải thích

Câu hỏi này yêu cầu bạn hiểu sự khác biệt giữa hai hàm Update() và FixedUpdate() trong Unity. Hàm Update() chạy mỗi khung hình, trong khi FixedUpdate() chạy theo bước thời gian cố định. Điều này có nghĩa là Update() sẽ chạy nhanh hơn khi khung hình chạy nhanh hơn, trong khi FixedUpdate() sẽ chạy đều đặn bất kể khung hình chạy nhanh hay chậm. Điều này rất quan trọng trong việc đảm bảo tính ổn định và chính xác của các tính toán vật lý trong trò chơi. Ví dụ, nếu bạn sử dụng Update() để cập nhật vị trí của một vật thể, nó có thể chạy nhanh hơn khi khung hình chạy nhanh hơn, dẫn đến vị trí không chính xác. Trong khi đó, nếu bạn sử dụng FixedUpdate(), vị trí của vật thể sẽ được cập nhật đều đặn và chính xác.

#023
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AIt reduces code complexity by centralizing all object references.
It allows for easier testing and reduces coupling between components.ĐÚNG
CIt increases runtime performance by removing dependencies.
DIt simplifies debugging by throwing runtime errors when dependencies are missing.
Giải thích

Tập trung vào việc sử dụng dependency injection trong dự án Unity thay vì sử dụng tham chiếu trực tiếp đến đối tượng giúp giảm độ phức tạp của mã nguồn. Điều này được thực hiện bằng cách tập trung tất cả các tham chiếu đối tượng vào một vị trí duy nhất, giúp dễ dàng quản lý và bảo trì mã nguồn. Ngoài ra, sử dụng dependency injection còn giúp dễ dàng thử nghiệm và giảm độ kết nối giữa các thành phần. Khi sử dụng dependency injection, bạn có thể dễ dàng thay thế các đối tượng phụ thuộc bằng các đối tượng giả lập trong quá trình thử nghiệm, giúp tăng hiệu suất và giảm thời gian thử nghiệm. Điều này giúp giảm độ kết nối giữa các thành phần và tăng tính linh hoạt của mã nguồn.

#024
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AProject
BInspector
HierarchyĐÚNG
DConsole
Giải thích

Trong Unity, cửa sổ nào thể hiện một bản thể hiện văn bản hiyerarchi của tất cả GameObject trong Scene? Cửa sổ Hierarchy là nơi bạn có thể xem và điều chỉnh cấu trúc của các GameObject trong Scene. Nó hiển thị một bản thể hiện văn bản hiyerarchi của tất cả GameObject, bao gồm cả các GameObject con và cha. Điều này giúp bạn dễ dàng quản lý và điều chỉnh cấu trúc của các GameObject trong Scene.

#025
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AConverting data into a serializable format
BManaging storage medium for data persistence
CRetrieving saved data from storage
Restoring the scene's previous state using deserialized dataĐÚNG
Giải thích

Quá trình tái tạo cảnh (scene reconstruction) trong quá trình tải dữ liệu trong Unity là một bước quan trọng trong việc lưu trữ và tải dữ liệu. Mục đích chính của quá trình tái tạo cảnh là phục hồi trạng thái cảnh trước đó sử dụng dữ liệu được giải mã (deserialized). Điều này có nghĩa là khi bạn tải dữ liệu đã được lưu trữ, Unity sẽ sử dụng dữ liệu đó để tái tạo lại cảnh như ban đầu, bao gồm vị trí của các đối tượng, trạng thái của các thành phần và các thông số khác. Quá trình tái tạo cảnh giúp đảm bảo rằng cảnh được tải lại chính xác và không bị thay đổi, giúp duy trì trải nghiệm chơi game mượt mà và không bị gián đoạn.

#026
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ABoth objects will trigger OnCollisionEnter().
The kinematic object will remain unaffected by the collision.ĐÚNG
CNo collision will be detected.
DThe kinematic object will move according to the collision force.
Giải thích

Khi hai đối tượng Rigidbody va chạm, nhưng một trong chúng có isKinematic được bật, thì đối tượng kinematic sẽ không bị ảnh hưởng bởi va chạm. Điều này có nghĩa là đối tượng kinematic sẽ không di chuyển hoặc thay đổi vị trí theo lực va chạm. Thay vào đó, nó sẽ giữ nguyên vị trí và trạng thái ban đầu. Điều này là do isKinematic được thiết kế để ngăn chặn đối tượng kinematic bị ảnh hưởng bởi các lực bên ngoài, bao gồm cả va chạm. Vì vậy, đối tượng kinematic sẽ không kích hoạt phương thức OnCollisionEnter() và sẽ không di chuyển theo lực va chạm.

#027
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ATo save data directly to PlayerPrefs
To convert data into a format suitable for storageĐÚNG
CTo manage the storage location of saved files
DTo restore the scene's previous state
Giải thích

Serialization trong Unity là quá trình chuyển đổi dữ liệu thành một định dạng phù hợp cho việc lưu trữ. Mục đích chính của việc này là giúp dữ liệu có thể được lưu trữ và tải lại một cách dễ dàng. Khi dữ liệu được serial hóa, nó sẽ được chuyển đổi thành một chuỗi ký tự hoặc một tệp tin có thể được đọc bởi Unity. Điều này cho phép bạn lưu trữ dữ liệu một cách an toàn và có thể tải lại khi cần thiết. Ví dụ, bạn có thể sử dụng serialization để lưu trữ thông tin về trạng thái của trò chơi, như điểm số, cấp độ, hoặc vị trí của nhân vật. Sau đó, bạn có thể tải lại dữ liệu này khi trò chơi được khởi động lại, giúp đảm bảo rằng trò chơi vẫn còn trạng thái như trước khi tắt.

#028
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ASceneManager.LoadLevel()
BSceneManager.SwitchScene()
CSceneManager.AddScene()
SceneManager.LoadScene()ĐÚNG
Giải thích

Để tải một cảnh mới trong Unity, bạn cần sử dụng hàm từ UnityEngine.SceneManagement. Trong các lựa chọn trên, có bốn hàm khác nhau: SceneManager.LoadLevel(), SceneManager.SwitchScene(), SceneManager.AddScene() và SceneManager.LoadScene(). Tuy nhiên, hàm chính xác được sử dụng để tải một cảnh mới là SceneManager.LoadScene(). Hàm này cho phép bạn tải một cảnh mới vào Unity và có thể được sử dụng để thay thế hoặc thêm cảnh mới vào ứng dụng của bạn. Ngoài ra, bạn cũng có thể sử dụng các tham số tùy chọn để điều khiển cách cảnh mới được tải vào, chẳng hạn như cách cảnh mới được tải vào (synchronous hoặc asynchronous) và trạng thái của cảnh mới (loaded hoặc unloaded).

#029
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AAsset Store
TilemapĐÚNG
CSpeed Tree
DNavMesh
Giải thích

Trong Unity, tính năng thường được sử dụng để tạo môi trường trò chơi dựa trên gạch (tile-based game environment) là Tilemap. Tilemap cho phép bạn tạo và quản lý các ô gạch (tile) trong môi trường trò chơi của mình. Bạn có thể thêm các loại gạch khác nhau, tạo các khu vực khác nhau và thiết lập các quy tắc cho các gạch. Điều này giúp bạn tạo ra một môi trường trò chơi phức tạp và thú vị mà không cần phải viết mã phức tạp. Ngoài ra, Tilemap cũng hỗ trợ các tính năng như tạo các đường đi cho nhân vật, tạo các khu vực không thể di chuyển và nhiều tính năng khác.

#030
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AThe Collider is set to Convex.
BBoth objects are set as Triggers (isTrigger = true).
One of the objects does not have a Rigidbody.ĐÚNG
DThe Physics system is disabled in the project settings.
Giải thích

Một đối tượng có Collider có thể không kích hoạt sự kiện va chạm vì một số lý do. Nếu Collider được đặt thành Convex, nó sẽ không kích hoạt sự kiện va chạm. Ngoài ra, nếu cả hai đối tượng đều được đặt làm Triggers (isTrigger = true), chúng sẽ không kích hoạt sự kiện va chạm. Một lý do khác là nếu một trong hai đối tượng không có Rigidbody, chúng sẽ không kích hoạt sự kiện va chạm. Cuối cùng, nếu hệ thống vật lý bị tắt trong cài đặt dự án, sự kiện va chạm sẽ không được kích hoạt.

#031
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ATo allow physics-based collisions.
To ignore physics forces but still detect overlaps.ĐÚNG
CTo optimize rendering of Colliders.
DTo enable rigid body interaction with other objects.
Giải thích

Tính chất isTrigger của một Collider được bật để cho phép vật thể tương tác với nhau mà không cần phải dựa vào lực vật lý. Khi bật tính chất này, vật thể sẽ không bị ảnh hưởng bởi các lực vật lý như trọng lực, lực ma sát, nhưng vẫn có thể phát hiện ra sự chồng lấp của các vật thể. Điều này đặc biệt hữu ích trong các trường hợp như phát hiện va chạm, tạo ra các hiệu ứng đặc biệt, hoặc trong các trò chơi cần tính toán chính xác vị trí và hướng di chuyển của các vật thể.

#032
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
APlatform-Specific Issues
BSyntax Errors
Logic ErrorsĐÚNG
DRuntime Errors
Giải thích

Lỗi logic là loại lỗi khiến chương trình hoạt động không như mong đợi do có sự sai sót trong logic của mã nguồn. Nó thường không gây ra sự cố hoặc lỗi hệ thống. Thay vào đó, nó có thể dẫn đến kết quả không mong muốn hoặc không chính xác. Ví dụ, một chương trình có thể chạy mà không bị lỗi, nhưng nó sẽ không thực hiện đúng chức năng như mong muốn. Lỗi logic thường khó phát hiện hơn so với các loại lỗi khác vì nó không gây ra sự cố rõ ràng.

#033
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ALog messages and warnings
BDebugging for remote devices
Performance metrics and analysis to identify bottlenecksĐÚNG
DProperties and components of game objects
Giải thích

Trong Unity, Profiler là một công cụ giúp bạn theo dõi và phân tích hiệu suất của trò chơi. Nó cung cấp các thông số và phân tích để giúp bạn xác định các điểm nghẽn trong trò chơi. Với Profiler, bạn có thể theo dõi các hoạt động như thời gian thực hiện các tác vụ, lượng bộ nhớ sử dụng, và các thông số khác. Điều này giúp bạn tối ưu hóa hiệu suất của trò chơi và đảm bảo trải nghiệm chơi game mượt mà cho người dùng.

#034
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AThe texture and appearance of the object
The space for collision detectionĐÚNG
CThe sound effects associated with the object
DThe object's script behavior
Giải thích

Trong Unity, Collider là một thành phần quan trọng giúp xác định khu vực va chạm của một đối tượng. Nó giúp phát hiện khi hai đối tượng chạm vào nhau, từ đó cho phép thực hiện các hành động tương ứng. Khi thêm Collider vào một đối tượng, bạn có thể tùy chỉnh các thuộc tính như hình dạng va chạm, kích thước và vị trí của nó. Điều này giúp bạn tạo ra các hiệu ứng va chạm chân thực và thú vị trong trò chơi hoặc ứng dụng của mình.

#035
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ATo encapsulate data within classes
BTo define abstract classes and interfaces
To enable type-safe function pointersĐÚNG
DTo handle exceptions and errors
Giải thích

Trong lập trình C#, đại diện (delegate) là một khái niệm quan trọng giúp chúng ta có thể ánh xạ một hàm (method) vào một biến. Mục đích chính của đại diện là để cho phép chúng ta tạo ra các hàm trỏ (function pointers) an toàn về kiểu dữ liệu. Điều này cho phép chúng ta truyền các hàm vào các biến và tham số như các đối tượng khác. Đại diện cũng giúp chúng ta có thể xử lý các hàm phức tạp và tạo ra các giao diện lập trình (API) dễ dàng hơn. Ngoài ra, đại diện còn giúp chúng ta có thể xử lý các sự kiện và các luồng dữ liệu trong ứng dụng.

#036
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AState transitions and parameters
keyframes, curves, and eventsĐÚNG
CAudio data and effects
DPhysics interactions and collision data
Giải thích

Animation Clips trong Unity lưu trữ các thông tin về các khung hình (keyframes), các đường cong (curves) và các sự kiện (events) trong một hoạt ảnh. Các keyframes đại diện cho các trạng thái của hoạt ảnh tại một thời điểm cụ thể, trong khi các curves giúp định hình chuyển động giữa các keyframes. Các events có thể được sử dụng để kích hoạt các hành động hoặc hiệu ứng đặc biệt tại các thời điểm cụ thể trong hoạt ảnh. Tóm lại, Animation Clips là một công cụ quan trọng trong Unity để tạo ra các hoạt ảnh phức tạp và đa dạng.

#037
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Delegate that enables one object to notify other objects about actionsĐÚNG
BObjects that hold data and methods that operate on the data
CType definitions that specify the methods signature
DSpecial methods used for asynchronous programming and store data
Giải thích

Trong lập trình C#, sự kiện (events) là một khái niệm quan trọng giúp cho các đối tượng (objects) có thể thông báo cho nhau về các hành động (actions) cụ thể. Một sự kiện thường bao gồm một hoặc nhiều hành động, và các đối tượng có thể đăng ký (subscribe) để nhận thông báo khi sự kiện đó xảy ra. Điều này cho phép các đối tượng có thể tương tác và giao tiếp với nhau một cách linh hoạt và hiệu quả. Trong câu hỏi này, sự kiện được mô tả là một đại diện (delegate) cho phép một đối tượng thông báo cho các đối tượng khác về các hành động. Đây là một định nghĩa chính xác và phù hợp với khái niệm sự kiện trong lập trình C#.

#038
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ABy applying physics materials
Through event handling and scriptingĐÚNG
CBy using animation clips
DThrough collision detection
Giải thích

Để làm cho các yếu tố UI trong Unity trở nên tương tác, bạn cần sử dụng kỹ thuật xử lý sự kiện và lập trình. Điều này cho phép bạn tạo ra các hành động cụ thể khi người dùng tương tác với các yếu tố UI như nút bấm, thanh trượt, v.v. Xử lý sự kiện và lập trình là công cụ mạnh mẽ giúp bạn tạo ra các ứng dụng có giao diện người dùng thân thiện và dễ sử dụng. Bạn có thể sử dụng các ngôn ngữ lập trình như C# để tạo ra các hành động và xử lý sự kiện trong Unity.

#039
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Prints "Jump" when the Space key is pressed, "Run" when the LeftShift key is pressed, and "Idle" when nothing is pressed.ĐÚNG
BOnly prints "Jump" when the Space key is pressed and does nothing for other keys.
CPrints "Jump" when the Space key is pressed and "Idle" in all other cases.
DPrints "Idle" regardless of which key is pressed.
Giải thích

Khi bạn nhấn phím Space, chương trình Unity sẽ thực hiện hành động in ra "Jump". Nếu bạn nhấn phím LeftShift, chương trình sẽ in ra "Run". Trong trường hợp bạn không nhấn bất kỳ phím nào, chương trình sẽ in ra "Idle". Điều này có nghĩa là chương trình sẽ kiểm tra trạng thái các phím trên bàn phím và thực hiện hành động tương ứng. Ví dụ, nếu bạn nhấn Space và LeftShift cùng lúc, chương trình sẽ in ra "Jump" vì điều kiện Input.GetKeyDown(KeyCode.Space) sẽ được thực hiện trước. Điều này cho thấy chương trình sử dụng điều kiện if-else để kiểm tra trạng thái các phím và thực hiện hành động phù hợp.

#040
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AExecuting game logic updates once per frame
Handling frame updates for physics-related updatesĐÚNG
CInitializing variables for script execution
DExecuting late updates after all other functions have been called
Giải thích

Hàm FixedUpdate trong Unity được sử dụng để cập nhật logic vật lý trong trò chơi. Nó được gọi một lần mỗi frame, nhưng không phụ thuộc vào tốc độ khung hình. Điều này giúp đảm bảo rằng các cập nhật vật lý được thực hiện một cách đều đặn và chính xác, ngay cả khi tốc độ khung hình thay đổi. Hàm FixedUpdate thường được sử dụng để cập nhật vị trí, tốc độ và quán tính của các đối tượng vật lý trong trò chơi. Nó cũng có thể được sử dụng để cập nhật các hệ thống vật lý khác, chẳng hạn như hệ thống va chạm và hệ thống lực hấp dẫn. Tóm lại, hàm FixedUpdate là một phần quan trọng của Unity và được sử dụng để tạo ra các trò chơi có hiệu ứng vật lý chân thực.

#041
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
To provide a base class with methods and properties essential for scripting GameObject behavior in Unity.ĐÚNG
BTo manage the user interface elements of a Unity game.
CTo define the main game mechanics and rules.
DTo act as the main entry point for Unity applications.
Giải thích

Trong Unity C#, lớp MonoBehaviour đóng vai trò quan trọng khi tất cả các script trong Unity đều kế thừa từ nó. Lớp này cung cấp một số phương thức và thuộc tính cơ bản cần thiết để lập trình hành vi của GameObject trong Unity. Ví dụ, các phương thức như Start(), Update(), OnDestroy() cho phép lập trình viên thực hiện các hành động khi GameObject được tạo, mỗi frame hoặc khi GameObject bị hủy. Ngoài ra, lớp MonoBehaviour cũng cung cấp các thuộc tính như GetComponent(), GetComponentInChildren() để giúp lập trình viên truy cập và sử dụng các thành phần của GameObject. Tóm lại, lớp MonoBehaviour là lớp cơ sở quan trọng giúp lập trình viên có thể tạo ra các script hiệu quả và dễ dàng quản lý hành vi của GameObject trong Unity.

#042
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AAs thick 3D objects in z-axis
BAs transparent objects in all axes
As paper-thin objects with no Z-widthĐÚNG
DAs rotating objects aligned with the camera
Giải thích

Khi được xem trong không gian 3D trong Unity, sprites xuất hiện như các đối tượng mỏng như giấy mà không có chiều rộng Z. Điều này có nghĩa là chúng không có kích thước Z, chỉ có chiều rộng và chiều cao. Điều này giúp chúng có thể được render nhanh chóng và hiệu quả trong môi trường 3D. Trong Unity, sprites được sử dụng rộng rãi để tạo ra các đối tượng 2D như nhân vật, đối tượng, và các yếu tố khác. Chúng có thể được thêm vào không gian 3D để tạo ra một môi trường đa dạng và thú vị. Tuy nhiên, vì chúng không có chiều rộng Z, chúng sẽ không thể được nhìn thấy từ phía sau, vì vậy chúng cần được đặt ở vị trí phù hợp để có thể được nhìn thấy rõ ràng.

#043
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Through attached ScriptsĐÚNG
BThrough external plugins
CThrough built-in Components exclusively
DThrough visual scripting tools
Giải thích

Trong Unity, hành vi của GameObjects được kiểm soát chủ yếu thông qua các script được gắn vào chúng. Các script này có thể được viết bằng nhiều ngôn ngữ lập trình khác nhau như C#, UnityScript, Boo, v.v. Các script có thể được sử dụng để tạo ra các hành vi phức tạp cho GameObjects, chẳng hạn như di chuyển, quay, tương tác với người dùng, v.v. Ngoài ra, các script cũng có thể được sử dụng để tạo ra các hệ thống logic phức tạp, chẳng hạn như hệ thống trò chơi, hệ thống quản lý tài nguyên, v.v. Vì vậy, các script đóng vai trò quan trọng trong việc kiểm soát hành vi của GameObjects trong Unity.

#044
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AThey execute synchronously and block the program until completion
They allow for non-blocking execution and can be paused and resumedĐÚNG
CThey are used only for mathematical calculations
DThey require manual memory management
Giải thích

Coroutines là một tính năng quan trọng trong lập trình máy tính. So với các hàm hoặc phương thức thông thường, coroutines cho phép thực hiện không chặn và có thể tạm dừng và tiếp tục. Điều này có nghĩa là một coroutine có thể thực hiện một số công việc, sau đó tạm dừng và chuyển quyền cho một coroutine khác thực hiện công việc khác mà không cần chờ đợi công việc trước đó hoàn thành. Điều này giúp cải thiện hiệu suất và giảm thiểu thời gian chờ đợi trong các ứng dụng đa nhiệm. Ngoài ra, coroutines cũng giúp giảm thiểu việc sử dụng tài nguyên hệ thống và tăng cường khả năng mở rộng của ứng dụng.

#045
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ARendering graphics for GameObjects
BHandling user input and interactions
Dynamically generating GameObjects during gameplayĐÚNG
DManaging scene lighting and effects
Giải thích

Prefabs trong Unity là những bản sao của GameObject có thể được sử dụng để tạo ra nhiều bản sao khác nhau trong một dự án. Chúng chủ yếu được sử dụng để tạo ra các đối tượng động trong thời gian chơi game. Điều này có nghĩa là bạn có thể tạo ra một bản sao của một GameObject và sau đó sử dụng nó để tạo ra nhiều bản sao khác nhau trong một dự án. Điều này giúp giảm bớt thời gian và công sức khi tạo ra các đối tượng động trong thời gian chơi game. Ngoài ra, prefabs cũng có thể được sử dụng để tạo ra các đối tượng có thể được sử dụng lại nhiều lần trong một dự án.

#046
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AIt simplifies 3D object rendering
It provides support for a wider range of input devicesĐÚNG
CIt automatically creates prefabs for input-related objects
DIt limits input sources for improved efficiency
Giải thích

Unity Input System hiện đại so với Input Manager cổ điển có một số lợi thế. Một trong số đó là khả năng hỗ trợ một loạt rộng hơn các thiết bị đầu vào. Điều này có nghĩa là các nhà phát triển có thể dễ dàng thêm hỗ trợ cho các loại thiết bị như chuột, bàn phím, tay cầm chơi game, cảm biến, v.v. mà không cần phải viết mã phức tạp. Điều này giúp giảm bớt thời gian và công sức cần thiết để tạo ra trải nghiệm người dùng đa dạng và linh hoạt. Ngoài ra, Input System hiện đại còn cung cấp các tính năng như hỗ trợ đa nền tảng, khả năng tùy chỉnh cao và khả năng mở rộng dễ dàng.

#047
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ADrag and drop the image into the Scene view
Place the image directly into the Unity project's Assets folderĐÚNG
CAdd the image to the Hierarchy window
DConvert the image to a 3D model before importing
Giải thích

Để nhập một hình ảnh vào Unity dưới dạng sprite, bạn có thể thực hiện theo các bước sau. Đầu tiên, hãy chọn hình ảnh mà bạn muốn nhập vào Unity. Sau đó, hãy kéo thả hình ảnh vào thư mục Assets của dự án Unity. Khi bạn kéo thả hình ảnh vào thư mục Assets, Unity sẽ tự động chuyển đổi hình ảnh thành một sprite và thêm nó vào thư viện tài nguyên của dự án. Điều này cho phép bạn sử dụng hình ảnh trong dự án của mình mà không cần phải thực hiện bất kỳ bước nào khác. Ngoài ra, bạn cũng có thể sử dụng công cụ Import Settings để tùy chỉnh cách hình ảnh được nhập vào Unity.

#048
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Use Input.GetKeyDown(KeyCode.W) in Update().ĐÚNG
BUse Input.GetKeyDown(KeyCode.W) in FixedUpdate().
CUse Input.GetKey(KeyCode.W) in Update().
DUse Input.GetKey(KeyCode.W) in FixedUpdate().
Giải thích

Để khiến nhân vật nhảy chỉ khi nhấn phím 'W' một lần, chúng ta cần sử dụng hàm Input.GetKeyDown(KeyCode.W) trong phương thức Update(). Hàm này sẽ trả về giá trị True nếu phím được nhấn trong lần cập nhật hiện tại, và False nếu phím không được nhấn. Điều này giúp chúng ta thực hiện hành động nhảy một lần khi nhấn phím 'W' mà không cần phải giữ phím. Trong khi đó, hàm Input.GetKey(KeyCode.W) sẽ trả về giá trị True nếu phím được nhấn trong bất kỳ lần cập nhật nào, và hàm Input.GetKeyDown(KeyCode.W) trong FixedUpdate() sẽ không phù hợp vì nó không được sử dụng để kiểm tra hành động người dùng.

#049
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Before gameplay, ideal for initialization tasksĐÚNG
BDuring frame updates for GameObject actions
CAfter gameplay, for cleanup tasks
DWhen responding to user input during gameplay
Giải thích

Hàm Start trong một script MonoBehaviour thường được gọi trước khi bắt đầu gameplay. Đây là một trong những phương thức đặc biệt được Unity cung cấp, được gọi một lần khi trò chơi bắt đầu. Trong phương thức này, bạn có thể thực hiện các tác vụ khởi tạo cần thiết cho trò chơi, chẳng hạn như khởi tạo các biến, tải dữ liệu, tạo các đối tượng cần thiết, v.v. Điều này giúp đảm bảo rằng trò chơi có thể chạy một cách trơn tru và hiệu quả. Ngoài ra, bạn cũng có thể sử dụng phương thức này để thực hiện các tác vụ cần thiết trước khi bắt đầu gameplay, chẳng hạn như tải dữ liệu, khởi tạo các biến, v.v.

#050
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Unity intermittently passes control to the script by calling specific event functionsĐÚNG
BUnity requires manual updates every frame to run script
CUnity executes the script only once at the start of the game
DUnity runs the script continuously in a loop like a traditional program
Giải thích

Trong Unity, một kịch bản (script) hoạt động khác với một chương trình truyền thống. Thay vì chạy liên tục trong một vòng lặp, kịch bản Unity được thực hiện bởi Unity khi cần thiết. Điều này có nghĩa là Unity sẽ gọi các hàm (function) cụ thể trong kịch bản khi cần, thay vì chạy kịch bản liên tục. Điều này cho phép Unity quản lý hiệu suất và hiệu quả hơn, đặc biệt là trong các trò chơi phức tạp. Ví dụ, khi một nhân vật di chuyển, Unity sẽ gọi hàm cập nhật vị trí của nhân vật trong kịch bản, thay vì chạy kịch bản liên tục để cập nhật vị trí.