Ngân hàng câu hỏi của chương

Câu hỏi: PRU213 - Chương 5: Dự án, gỡ lỗi và tối ưu

23 câu trắc nghiệm kèm lời giải của môn Game Programming with C# - Lập trình Game với C#, xếp theo thứ tự nhập vào ngân hàng.

Danh sách câu hỏi

20/23 câuCòn 3
AConsole Window
BInspector Window
CProfiler
DDebugger
Lời giải
Công cụ Unity nào hiển thị các thông báo lỗi, cảnh báo và lỗi được tạo ra trong quá trình chạy thời gian thực?
Mở trang câu hỏi này →
ADebug.Log()
BDebug.LogWarning()
CDebug.Clear()
DDebug.LogError()
Lời giải
Để in các thông báo về quá trình thực thi chương trình trong cửa sổ Console, bạn nên sử dụng phương thức Debug.Log(). Phương thức này cho phép bạn in các thông tin về quá trình thực thi chương trình mà không gây ảnh hưởng đến quá trình chạy chương trình. Điều này giúp bạn theo dõi và debug chương trình một cách hiệu quả. Ngoài ra, Debug.Log() cũng cho phép bạn in các thông tin về các biến và giá trị trong chương trình, giúp bạn dễ dàng theo dõi và kiểm tra các giá trị này.
Mở trang câu hỏi này →
ATo define the graphical appearance of entities
BTo provide sound effects for entities
CTo serve as data containers that represent the attributes and behavior of entities
DTo manage the game engine's physics simulations
Lời giải
Trong hệ thống Entity Component System (ECS) của Unity, các thành phần (components) đóng vai trò cơ bản là các bộ chứa dữ liệu (data containers) đại diện cho các thuộc tính và hành vi của các thực thể (entities). Các thành phần này có thể được sử dụng để thêm các tính năng và khả năng cho các thực thể, chẳng hạn như vị trí, hướng, tốc độ, sức mạnh, v.v. Mỗi thành phần có thể được thiết kế để thực hiện một chức năng cụ thể, và các thực thể có thể kết hợp nhiều thành phần khác nhau để tạo ra các tính năng phức tạp hơn. Điều này cho phép các nhà phát triển tạo ra các hệ thống và quy trình phức tạp mà không cần phải viết mã phức tạp.
Mở trang câu hỏi này →
APlatform-Specific Issues
BSyntax Errors
CLogic Errors
DRuntime Errors
Lời giải
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.
Mở trang câu hỏi này →
5What is the first step in implementing a data saving and loading system in Unity?4 lựa chọnTrung bình67% trả lời đúng
AStorage Management
BSerialization
CLoading Process
DData Collection
Lời giải
Bước đầu tiên trong việc triển khai hệ thống lưu trữ và tải dữ liệu trong Unity là thu thập dữ liệu. Điều này bao gồm việc xác định dữ liệu cần lưu trữ, phân loại dữ liệu và xác định cách thức lưu trữ dữ liệu. Việc thu thập dữ liệu giúp đảm bảo rằng hệ thống lưu trữ và tải dữ liệu được thiết kế phù hợp với nhu cầu của dự án. Sau khi thu thập dữ liệu, bạn có thể bắt đầu thiết kế hệ thống lưu trữ và tải dữ liệu, bao gồm việc chọn phương thức lưu trữ phù hợp và triển khai các tính năng cần thiết.
Mở trang câu hỏi này →
ADebugger
BRemote Debugging
CProfiler
DConsole Window
Lời giải
Công cụ nào trong Unity cho phép bạn đặt điểm dừng, xem xét biến và thực hiện bước qua thực thi mã? Trong Unity, công cụ này được gọi là Debugger. Nó cho phép bạn đặt điểm dừng vào các vị trí cụ thể trong mã của mình, sau đó xem xét giá trị của các biến và thực hiện bước qua thực thi mã để tìm hiểu lý do tại sao mã của bạn không hoạt động như mong đợi. Ngoài ra, Debugger cũng cho phép bạn xem lịch sử thực thi mã và các biến được sử dụng trong mã.
Mở trang câu hỏi này →
7What does the Profiler in Unity provide?4 lựa chọnDễ100% trả lời đúng
ALog messages and warnings
BDebugging for remote devices
CPerformance metrics and analysis to identify bottlenecks
DProperties and components of game objects
Lời giải
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.
Mở trang câu hỏi này →
8What is a recommended optimization technique for button assets in Unity?4 lựa chọnDễ100% trả lời đúng
AUsing sprite atlases or sprite sheets to minimize draw calls and improve performance
BAssigning functions or methods to buttons
CScripting custom button behaviors
DUsing Unity's animation system to animate buttons
Lời giải
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.
Mở trang câu hỏi này →
9What does the term "stack trace" refer to in Unity debugging?4 lựa chọnDễ100% trả lời đúng
AIt is a type of error message displayed in the Unity Console.
BIt is a list of method calls and line numbers that led to the occurrence of an error, providing a trace of the program's execution path.
CIt is a debugging technique used to trace the flow of execution through your code.
DIt is a type of breakpoint used to pause the execution of your code at a specific line.
Lời giải
Trong quá trình debug Unity, 'stack trace' là một thuật ngữ quan trọng. Nó ám chỉ một danh sách các phương thức được gọi và số dòng code liên quan đến sự cố, cung cấp một bản đồ chi tiết về hành trình thực thi của chương trình. Khi một lỗi xảy ra trong Unity, stack trace sẽ giúp bạn xác định được vị trí chính xác của lỗi và các phương thức liên quan đến nó. Điều này cho phép bạn dễ dàng tìm kiếm và sửa lỗi, từ đó cải thiện hiệu suất và độ tin cậy của dự án. Stack trace là một công cụ mạnh mẽ trong quá trình debug, giúp bạn hiểu rõ hơn về hành vi của chương trình và tìm ra nguyên nhân của các sự cố.
Mở trang câu hỏi này →
AIt indicates that there is an issue with the rendering of your game's graphics.
BIt means that your code is trying to access a component that does not exist on a GameObject.
CIt signifies that there is an issue with the performance of your game's scripts.
DIt indicates that your game has encountered an out-of-memory error.
Lời giải
Khi bạn gặp phải lỗi MissingComponentException trong Unity, điều đó có nghĩa là mã của bạn đang cố gắng truy cập một thành phần mà không tồn tại trên một GameObject. Điều này có thể xảy ra khi bạn đang cố gắng truy cập một thành phần mà bạn đã xóa hoặc đã không được thêm vào GameObject đó. Ví dụ, nếu bạn đang cố gắng sử dụng một script để truy cập một thành phần như Rigidbody, nhưng thành phần đó không được thêm vào GameObject, bạn sẽ gặp phải lỗi này. Để giải quyết vấn đề này, bạn cần kiểm tra mã của mình và đảm bảo rằng bạn đang truy cập thành phần đúng cách. Bạn cũng có thể kiểm tra GameObject để đảm bảo rằng thành phần đó đã được thêm vào.
Mở trang câu hỏi này →
AIt indicates that your code is running too slowly and needs optimization.
BIt means that your code is trying to access a variable or object that is null, resulting in a runtime error.
CIt signifies that there is an issue with the rendering of your game's graphics.
DIt indicates that your game has encountered an out-of-memory error.
Lời giải
Lỗi NullReferenceException trong Unity thường xảy ra khi mã code của bạn cố gắng truy cập một biến hoặc đối tượng mà không được khởi tạo (null). Điều này có thể dẫn đến lỗi runtime và ngăn chặn ứng dụng của bạn hoạt động bình thường. Ví dụ, nếu bạn cố gắng gọi phương thức trên một đối tượng mà không kiểm tra xem nó có null hay không, bạn sẽ gặp lỗi này. Để giải quyết vấn đề này, bạn cần kiểm tra mã code của mình và đảm bảo rằng bạn không cố gắng truy cập bất kỳ biến hoặc đối tượng nào mà không được khởi tạo.
Mở trang câu hỏi này →
AWarning
BError
CException
DInformation
Lời giải
Lời nhắc trong Unity console có mức độ nghiêm trọng khác nhau. Để xác định lỗi nghiêm trọng cần chú ý ngay lập tức, chúng ta cần tìm hiểu về các mức độ nghiêm trọng. Mức độ 'Warning' thường được sử dụng để báo cáo các vấn đề tiềm ẩn, nhưng không nghiêm trọng. 'Error' được sử dụng để chỉ ra các lỗi nghiêm trọng cần được giải quyết ngay lập tức. 'Exception' thường được sử dụng để báo cáo các lỗi không mong muốn trong quá trình thực thi. 'Information' được sử dụng để cung cấp thông tin về quá trình hoạt động của ứng dụng. Do đó, để chỉ ra lỗi nghiêm trọng cần chú ý ngay lập tức, chúng ta nên chọn 'Error'.
Mở trang câu hỏi này →
ATo inspect and modify the properties of game objects and components.
BTo monitor and analyze the performance of your game, including CPU and memory usage.
CTo log messages and errors generated during runtime.
DTo visualize and debug animations within the Unity Editor.
Lời giải
Công cụ Unity Profiler được sử dụng để theo dõi và phân tích hiệu suất của trò chơi, bao gồm cả việc sử dụng CPU và bộ nhớ. Nó cho phép bạn xem xét các hoạt động của trò chơi, bao gồm cả việc sử dụng tài nguyên hệ thống và thời gian thực thi. Điều này giúp bạn xác định các khu vực cần cải thiện hiệu suất và tối ưu hóa mã của mình. Ngoài ra, công cụ này còn cho phép bạn xem xét các hoạt động của các thành phần và đối tượng trong trò chơi, giúp bạn hiểu rõ hơn về cách trò chơi hoạt động và tìm ra các vấn đề tiềm ẩn.
Mở trang câu hỏi này →
AUnit testing
BRegression testing
CCode profiling
DStep-through debugging
Lời giải
Kỹ thuật debug phổ biến được sử dụng để theo dõi luồng thực thi qua mã nguồn của bạn và xác định lỗi logic là gì?
Mở trang câu hỏi này →
AIt indicates that your code is running too slowly and needs optimization.
BIt means that your code is trying to access a variable or object that is null, resulting in a runtime error.
CIt signifies that there is an issue with the rendering of your game's graphics.
DIt indicates that your game has encountered an out-of-memory error.
Lời giải
NullReferenceException là một loại lỗi runtime trong Unity. Khi bạn gặp phải lỗi này, điều đó có nghĩa là mã của bạn đang cố gắng truy cập một biến hoặc đối tượng null, dẫn đến lỗi runtime. Điều này thường xảy ra khi bạn cố gắng sử dụng một biến hoặc đối tượng mà chưa được khởi tạo hoặc đã bị xóa. Để giải quyết lỗi này, bạn cần kiểm tra mã của mình và đảm bảo rằng tất cả các biến và đối tượng đều được khởi tạo và sử dụng đúng cách. Ngoài ra, bạn cũng có thể sử dụng các công cụ kiểm tra lỗi của Unity để giúp bạn tìm ra nguyên nhân của lỗi.
Mở trang câu hỏi này →
AUnity Debugger
BInspector
CConsole
DFrame Debugger
Lời giải
Công cụ Unity cung cấp thông tin thời gian thực về hiệu suất của trò chơi của bạn, bao gồm số khung hình mỗi giây (FPS) và sử dụng bộ nhớ. Frame Debugger là công cụ được sử dụng để theo dõi và phân tích hiệu suất của trò chơi trong thời gian thực. Nó cho phép bạn xem số FPS, sử dụng bộ nhớ, và các thông số khác của trò chơi. Điều này giúp bạn xác định và giải quyết các vấn đề hiệu suất của trò chơi một cách nhanh chóng và hiệu quả.
Mở trang câu hỏi này →
AAdjusting lighting settings
BEnhancing audio playback
CConditional breakpoints in the debugging toolbar
DSimulating keyboard input
Lời giải
Tính năng Unity cho phép tạo điểm dừng (breakpoint) dựa trên các điều kiện cụ thể trong mã của bạn. Điều này cho phép bạn dừng chương trình tại các điểm cụ thể trong mã để kiểm tra giá trị biến, trạng thái chương trình và các thông tin khác. Điều này đặc biệt hữu ích khi bạn đang debug mã phức tạp và muốn kiểm tra giá trị của các biến tại các điểm cụ thể. Để tạo điểm dừng, bạn có thể sử dụng thanh công cụ debug của Unity và đặt điều kiện cho điểm dừng. Điều này giúp bạn tiết kiệm thời gian và giảm thiểu lỗi khi debug mã.
Mở trang câu hỏi này →
18Which of the following is NOT a method commonly used for saving data in Unity?4 lựa chọnTrung bình67% trả lời đúng
APlayerPrefs
BScriptableObjects
CSceneReconstruction
DExternal files
Lời giải
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.
Mở trang câu hỏi này →
AConverting data into a serializable format
BManaging storage medium for data persistence
CRetrieving saved data from storage
DRestoring the scene's previous state using deserialized data
Lời giải
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.
Mở trang câu hỏi này →
ATo save data directly to PlayerPrefs
BTo convert data into a format suitable for storage
CTo manage the storage location of saved files
DTo restore the scene's previous state
Lời giải
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.
Mở trang câu hỏi này →