Bird
Raised Fist0
Unityframework~10 mins

Platform-specific settings in Unity - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to check if the current platform is Android.

Unity
if (Application.platform == [1]) {
    Debug.Log("Running on Android");
}
Drag options to blanks, or click blank then click option'
ARuntimePlatform.WindowsPlayer
BRuntimePlatform.IPhonePlayer
CRuntimePlatform.Android
DRuntimePlatform.OSXPlayer
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong platform enum like iPhonePlayer or WindowsPlayer.
Forgetting to use 'RuntimePlatform.' prefix.
2fill in blank
medium

Complete the code to execute platform-specific code for iOS.

Unity
#if [1]
Debug.Log("Running on iOS");
#endif
Drag options to blanks, or click blank then click option'
AUNITY_EDITOR
BUNITY_IOS
CUNITY_STANDALONE_WIN
DUNITY_ANDROID
Attempts:
3 left
💡 Hint
Common Mistakes
Using UNITY_ANDROID instead of UNITY_IOS.
Confusing editor directives with platform directives.
3fill in blank
hard

Fix the error in the code to correctly detect if the platform is Windows standalone.

Unity
if (Application.platform == [1]) {
    Debug.Log("Running on Windows Standalone");
}
Drag options to blanks, or click blank then click option'
ARuntimePlatform.LinuxPlayer
BRuntimePlatform.WindowsEditor
CRuntimePlatform.OSXPlayer
DRuntimePlatform.WindowsPlayer
Attempts:
3 left
💡 Hint
Common Mistakes
Using WindowsEditor instead of WindowsPlayer.
Confusing OSXPlayer or LinuxPlayer with Windows.
4fill in blank
hard

Fill both blanks to create a dictionary with platform names as keys and their build symbols as values.

Unity
var platformSymbols = new Dictionary<string, string> {
    {"Android", "[1]"},
    {"iOS", "[2]"}
};
Drag options to blanks, or click blank then click option'
AUNITY_ANDROID
BUNITY_IOS
CUNITY_STANDALONE_WIN
DUNITY_EDITOR
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up the build symbols for Android and iOS.
Using editor or Windows symbols instead.
5fill in blank
hard

Fill all three blanks to create a platform check that logs a message for Android, iOS, or Windows.

Unity
switch (Application.platform) {
    case [1]:
        Debug.Log("Android platform");
        break;
    case [2]:
        Debug.Log("iOS platform");
        break;
    case [3]:
        Debug.Log("Windows platform");
        break;
}
Drag options to blanks, or click blank then click option'
ARuntimePlatform.Android
BRuntimePlatform.IPhonePlayer
CRuntimePlatform.WindowsPlayer
DRuntimePlatform.LinuxPlayer
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong enums like LinuxPlayer for Windows.
Mixing up Android and iOS enums.

Practice

(1/5)
1. What is the main purpose of using platform-specific settings in Unity?
easy
A. To disable all graphics features
B. To increase the game's file size
C. To make the game work well on different devices
D. To make the game run only on Windows

Solution

  1. Step 1: Understand platform-specific settings

    Platform-specific settings allow customizing game behavior for different devices.
  2. Step 2: Identify the main goal

    The goal is to ensure the game works well on all targeted platforms.
  3. Final Answer:

    To make the game work well on different devices -> Option C
  4. Quick Check:

    Platform-specific settings = device compatibility [OK]
Hint: Think about device compatibility and performance [OK]
Common Mistakes:
  • Confusing platform-specific settings with increasing file size
  • Assuming settings limit the game to one platform
  • Believing settings disable features globally
2. Which of the following is the correct way to write platform-specific code for Android in Unity?
easy
A. #if UNITY_ANDROID // Android code #endif
B. #if ANDROID // Android code #endif
C. #if PLATFORM_ANDROID // Android code #endif
D. #if UNITY_MOBILE // Android code #endif

Solution

  1. Step 1: Recall Unity platform symbols

    Unity uses symbols like UNITY_ANDROID for Android platform checks.
  2. Step 2: Match the correct syntax

    #if UNITY_ANDROID is the correct directive for Android-specific code.
  3. Final Answer:

    #if UNITY_ANDROID // Android code #endif -> Option A
  4. Quick Check:

    Use UNITY_ANDROID for Android platform [OK]
Hint: Use UNITY_ prefix for platform symbols [OK]
Common Mistakes:
  • Using incorrect symbols like ANDROID or PLATFORM_ANDROID
  • Assuming UNITY_MOBILE covers Android specifically
  • Missing #endif to close the directive
3. What will be the output when running this Unity C# code on iOS platform?
#if UNITY_IOS
Console.WriteLine("Running on iOS");
#else
Console.WriteLine("Running on other platform");
#endif
medium
A. Running on other platform
B. No output
C. Compilation error
D. Running on iOS

Solution

  1. Step 1: Check platform directive

    The code uses #if UNITY_IOS, which is true on iOS platform.
  2. Step 2: Determine executed code

    Since UNITY_IOS is defined, it prints "Running on iOS".
  3. Final Answer:

    Running on iOS -> Option D
  4. Quick Check:

    UNITY_IOS true prints iOS message [OK]
Hint: Match platform symbol with current device [OK]
Common Mistakes:
  • Confusing UNITY_IOS with UNITY_IPHONE
  • Expecting else block to run on iOS
  • Thinking code causes compilation error
4. Identify the error in this Unity C# code snippet for platform-specific compilation:
#if UNITY_STANDALONE
Debug.Log("Standalone platform");
#else
Debug.Log("Other platform");
medium
A. Missing #endif to close the #if directive
B. Wrong platform symbol UNITY_STANDALONE
C. Debug.Log cannot be used in platform directives
D. No error, code is correct

Solution

  1. Step 1: Check #if directive syntax

    The code starts with #if but does not have a matching #endif.
  2. Step 2: Understand preprocessor rules

    Every #if must be closed with #endif to avoid compilation errors.
  3. Final Answer:

    Missing #endif to close the #if directive -> Option A
  4. Quick Check:

    #if must end with #endif [OK]
Hint: Always close #if with #endif [OK]
Common Mistakes:
  • Assuming UNITY_STANDALONE is invalid
  • Thinking Debug.Log is disallowed inside #if
  • Ignoring missing #endif causes errors
5. You want to write code that runs only on Windows or macOS but not on mobile platforms. Which directive correctly achieves this in Unity?
hard
A. #if UNITY_STANDALONE // code #endif
B. #if UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX // code #endif
C. #if UNITY_ANDROID || UNITY_IOS // code #endif
D. #if UNITY_MOBILE // code #endif

Solution

  1. Step 1: Identify platforms to include

    Windows and macOS correspond to UNITY_STANDALONE_WIN and UNITY_STANDALONE_OSX.
  2. Step 2: Combine platform symbols correctly

    Use logical OR (||) to include both platforms in one directive.
  3. Final Answer:

    #if UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX // code #endif -> Option B
  4. Quick Check:

    Use || to combine Windows and macOS platforms [OK]
Hint: Use || to combine multiple platforms [OK]
Common Mistakes:
  • Using UNITY_STANDALONE alone includes all standalone platforms
  • Confusing mobile symbols with desktop platforms
  • Using && instead of || for platform combination
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard