Search Unity

  1. Are you interested in providing feedback directly to Unity teams? Sign up to become a member of Unity Pulse, our new product feedback and research community.
    Dismiss Notice

Unity Say hello to the new Starter Asset packages

Discussion in 'Assets and Asset Store' started by UnityHas, Jun 9, 2021.

  1. UnityHas

    UnityHas

    Unity Technologies

    Joined:
    May 1, 2020
    Posts:
    29
    As part of our dedication to empowering creators, our dev team has released the new Starter Asset packages. Find out what this means for your workflow below.

    --- update ---

    Overview video on the Starter Assets project:


    -------

    What are Starter Assets?

    Starter Assets are Unity-created free and lightweight first- and third-person character base controllers for the latest Unity 2020 LTS and above, using Cinemachine and the Input System packages. Older versions of Unity may also work with Starter Assets, in some cases with slight modifications. They are designed to give you a quick start into prototyping and building character controllers for various game genres, through systems and methods that allow you to easily build and expand on just about any type of project.

    The Starter Assets are split into two separate Asset Store packages: A first-person character controller and a third-person character controller. You can quickly download and import the controller you need for your project directly from the Asset Store. Both controllers are built in the same modular way and based on the same scripts and logic.

    The project uses the built-in render pipeline, but the default materials can be upgraded to either URP or HDRP through the standard upgrade paths.


    What's inside the new Starter Asset packages?

    • Character controllers: At the core of the new Starter Assets is a set of two lightweight character base controllers, adapted for third-person and first-person control.

    • Input System: Starter Assets utilize the Input System. This way, you can modify controller input for various input methods, such as a gamepad, mouse, and keyboard setup, or a touchscreen mobile device (supporting both joysticks and touch zones). If your project is using the old Input Manager, you can enable simultaneous support for both systems in the Project Settings.

    • Cinemachine: With the help of Cinemachine, the camera settings are customizable so they can be tailored to your project's needs. The character prefabs have several exposed values that are easy to adjust to your liking, so you can speedily customize the character’s movement and Cinemachine camera settings to suit your project.

    • Visual assets: The Starter Asset packages are supplied with a humanoid-rigged armature that can support various animations, as well as an environment for testing character movement, and a basic joystick set for touchscreen controls.

    • Compatibility: Both packages are separate and highly modular, which makes them adaptable to a large variety of use cases. The packages also include ready-to-use prefabs for more efficient integration.

    How are the packages used?

    Whether you’re completely new to Unity and want to add a player character into your scene, or you’re an experienced game developer looking to quickly test your own features and functionality, the Starter Assets can get you up and running before you know it!

    The Third Person Controller package includes an original armature, fully rigged with custom animations that use a humanoid character rig. This simplifies replacing the armature with another character that uses a humanoid avatar. Even more, animations can be changed and adjusted to create an original character for your own project.


    How does this change improve the user experience?

    The Starter Asset packages allow you to jump right into Unity 2020 LTS – no matter your previous experience or expertise. These starter packages provide a solid base to practice using Cinemachine and the Input System in a character controller with the built-in CharacterController component.


    Be sure to check out the package documentation located in the download package to learn how to leverage Starter Assets for your next project. We aim to ensure that these assets remain readily available and up to date for your use. Stay tuned for more announcements as we expand our support for Starter Assets.

    You can find the Starter Assets on the Asset Store here:


    We would love to get your feedback on these packages by filling out our survey.

    Please leave all your questions or comments in the replies below!
     
    Last edited: Jun 17, 2021
    XCO, beard-or-die, valarus and 9 others like this.
  2. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,958
    Great to see work being done on character controllers!
    If you don't mind me asking, how does this compare to:
    • The built in PhysX character controller
    • Your previous open source controller on Github

    The one on Github seemed to be going into the right direction, but seems like it was abandoned.

    In particular I am wondering:
    • What's the motivation behind this new one, over say incrementally improving the previous attempt from Github?
    • Is there anything fundamentally wrong with the one from Github? There must have been a reason to abandon that one.
    • What about the built in PhysX controller? Why is this one better?
    • What's nice about the PhysX controller is that we have one that's battle tested, made by some of the greatest in the field working on Nvidia. The only problem is that sliding down slopes is not available in the Unity one, even though it's built into the original one in PhysX. Is there any chance you guys could enable just that one missing feature? There is a lot of value in the PhysX controller, it was probably used by thousands of games already. Lack of sliding makes this unusable though.
    • What's the long term plan with your new controller? Is someone going to maintain this over a long period, and how is this different than the last attempt from Github? What's the lessons learned / issues / changes?

    A new 95% finished character controller every two years is useful.
    A 100% finished controller that is maintained by some physics PhD over a decade to be used in thousands of projects and millions of players would be extremely useful :)
     
    Last edited: Jun 10, 2021
  3. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    These new starter assets were developed as a starting point rather than an endpoint. They're more like a lightweight base upon which you could build the character controller that's right for your game. They're geared towards pre-production and prototyping rather than being production-ready character controllers, so I don't believe they'd fit your use-case.

    There are a lot of different kinds of character controllers out there, and the CC lies at the heart of many games. For many games it encompasses all of the game feel, so CCs tend to be very carefully crafted and personal to their project in my experience. So on that note, personally, I would love to see users take this base, expand upon it, and share it back with the community because I think together we could cover a lot more possibilities.

    If you're looking for a solid character controller that you can use today, I think @PhilSA does an excellent job with his assets.
     
    XCO, Vincent13122, LeonhardP and 2 others like this.
  4. Slashbot64

    Slashbot64

    Joined:
    Jun 15, 2020
    Posts:
    47
    On the plus side it's finally good to see an actual character controller using the new input system and cinemachine..

    I haven't tried it out so i can't comment on much else.. other than I hope these can be combined to have a switchable first & third person controller all in one.. if not disappointed.

    Now to see if there will any addons or user made improvements coming and more support by other addons like mirror, vehicle assets, animancer etc
     
  5. andyz

    andyz

    Joined:
    Jan 5, 2010
    Posts:
    1,766
    If that is so it would be great for Unity to bring such an asset in-house, as a free starter package, rather than a pay-for asset store item (which you never really are sure on quality-wise), but wishful thinking perhaps...
     
    Alverik likes this.
  6. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    I agree! That's my ideal as well, but I was offering an immediate solution.

    If you want to help me push for more starter assets and more advanced versions of these assets, filling out the survey truly goes a long way. I'm personally grateful for everyone who can take the time to fill it out and add comments like these into the additional feedback so that we know beyond the shadow of a doubt that these assets are valuable and it's worth pursuing them further.
     
  7. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    All of these things are on my personal wishlist as well!
     
    XCO likes this.
  8. Hannibal_Leo

    Hannibal_Leo

    Joined:
    Nov 5, 2012
    Posts:
    350
    How to block camera movement on the FPS Controller?
    One of the most important things is to hop in and out of the game, looking at different inspectors while the game is playing. It became a common thing for us, to use the middle-mouse-button to either lock or free the mouse (Cursor.Visibility and Cursor.lockState) combined with the camera movement.
    The Cursor-Lock didn't change but how to freeze the Camera in Cinemachine, so that when you jump back in, it doesn't turn the Camera around?
    Disabling the Virtual Camera Component or the Cinemachine Brain Component will turn the camera when jumping back in (re-enabling the component).
     
  9. Slashbot64

    Slashbot64

    Joined:
    Jun 15, 2020
    Posts:
    47
    That doesn't sound like a roadmap though, guessing there is none for these assets.. so may never happen.

    The number of demo scenes on the asset store that don't even bother to get that basic Cursor.Visibility and Cursor.lockState stuff implemented so that you can press esc to move the mouse over inspector without the ingame viewport moving around is unbelievable retarded shame on every asset store dev who doesn't get that done properly, how assets are even approved for the store without get that basic stuff right is pretty bad.
     
  10. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    There's a field in the
    StarterAssetsInput
    component called
    CursorInputForLook
    . You can disable this to lock the camera, and then re-enable it when you're done. In my experience it doesn't cause the camera to jump.
     
  11. Hannibal_Leo

    Hannibal_Leo

    Joined:
    Nov 5, 2012
    Posts:
    350
    Will try ^^
     
  12. dorusoftware

    dorusoftware

    Joined:
    Jul 5, 2012
    Posts:
    344
    This is finally an essential tool to have.

    Out of the box works fine but after replacing the third person robot with my character it doesn't work correctly.

    Once I hit the jump button it starts jumping and repeats this animation flying up to the sky.

    I've carefully checked that the robot setup is the same as my character, my character walks, run, camera works, all good, except the jump. It never manages to play the JumpLand animation till the end (around 40% if we look at the animator why the game is running) then it loops trough JumpStart and InAir forever
     
  13. az3911777

    az3911777

    Joined:
    Jan 8, 2021
    Posts:
    8
    The virtual joystick is constantly stuck on the smartphone :(
    and here: UI_Canvas_StarterAssetsInputs_TouchZones
    and here : UI_Canvas_StarterAssetsInputs_Joysticks
     
  14. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    Are there any errors in the console? It's hard to say exactly what's happening without looking at the project, but I suppose the
    GroundedCheck()
    is failing to execute correctly.
     
  15. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    Have you double checked the section of the documentation on setting up the Mobile controls? Perhaps the
    StarterAssetsInput
    field in the
    UICanvasControllerInput
    isn't assigned? That's the first possibility that comes to mind.
     
  16. dorusoftware

    dorusoftware

    Joined:
    Jul 5, 2012
    Posts:
    344
    Ok I've got it working here was the issue.

    The unity version is 2021.1.11f1

    How the asset works as downloaded

    New project with both the fps and third character imported from the assets store, with the cinemachine and the new input system set up correctly.

    The third person controller works correctly because the "PlayerArmature" object does not have a layer selected in the Inspector.

    The attached "Third Person controller" script for "PlayerArmature" have the option "Ground layers" set to Mixed... but when selecting the drop down menu we see only the "Default" selected. Normally if we see mixed we should see at least two layers selected.

    With this out of the box setup all works fine because "PlayerArmature" doesn't appear to have a layer selected (or at least is different that Default)

    How the asset behaves if you add your character

    Now the custom part that breaks everything

    You add to the scene your fbx that is a humanoid character. You add the exact components from the "PlayerArmature" paying attention to have the same settings, no root motion, input configured correctly, you create a "PlayerCameraRoot" object and you feed it to "Cinemachine Camera Target" in "Third Person controller" script.

    All works except when jumping the character will fly in the air and jump continuously

    Why this happens

    you character will have the Default layer applied and you can't remove it not like the "PlayerArmature" which appear to have the layer option empty in the inspector.

    since in the script "Third Person controller" the option "Ground layers" is set to Mixed/Default the script code will also take in consideration your character, which is set to the "Default" layer. This breaks the code and your character will start flying.

    How to fix it

    I've created a new layer called Player

    I've applied this layer to my character, from Default to Player

    done, this should fix the issue

    How to fix the camera to follow your character

    Don't forget to change the Follow field in the component "CinemachineVirtualCamera" that is attached to the object "Player Follow Camera",

    this needs to point to your "PlayerCameraRoot" object attached to your character so the camera can follow along.
     
  17. FellowPlayer123

    FellowPlayer123

    Joined:
    Dec 23, 2016
    Posts:
    74
    Question: Should CinemachineVirtualCamera be parented to the character or be an independent GameObject that only points to target?
     
  18. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    @dorusoftware Thank you so much for taking the time to write that up! I'll investigate this further and see if we can improve the setup.
     
  19. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    As a general rule,
    CinemachineVirtualCameras 
    should always be independent as far as I understand it.
     
    ch715t0 and FellowPlayer123 like this.
  20. APSchmidt

    APSchmidt

    Joined:
    Aug 8, 2016
    Posts:
    4,183
    Looks good. :)

    What about Starter Asset packages 2D?
     
  21. Kaivian

    Kaivian

    Joined:
    Jan 18, 2018
    Posts:
    23
    Almost a 10/10, but for one major problem:

    Change everything "Private" to "Protected" and make functions virtual so that people can write derived classes (keeping base asset code the same) without any problems!
     
    Last edited: Jun 17, 2021
    beard-or-die likes this.
  22. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    That's an excellent point!
     
    beard-or-die likes this.
  23. Kaivian

    Kaivian

    Joined:
    Jan 18, 2018
    Posts:
    23
    Another thing I noticed, this is expensive.

    Code (CSharp):
    1. protected virtual void Update()
    2. {
    3.     _hasAnimator = TryGetComponent(out _animator);
    4. }
    Why not wrap that in if(animator == null) ?
     
  24. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    Because
    if (animator == null)
    is more expensive. Doing a null check in Unity is expensive because it has to reach into the native side to verify whether or not something is null. There's some more info on that here. We tried to strike a balance between flexibility, performance and simplicity, and this particular line was a choice I made in favour of flexibility. With that said, if you don't intend to add and remove the animator at runtime, you could move that line to
    Awake()
    or
    Start()
    and cache it for the lifetime of the object.
     
  25. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    That's another one on my wishlist
     
    JoNax97, Rallix and APSchmidt like this.
  26. amelkor

    amelkor

    Joined:
    Sep 30, 2014
    Posts:
    8
    Great stuff, really appreciate the work done here and hope it will evolve further.
    I don't see any reason why would one remove the Animator at runtime. Disabling it when enabling ragdoll - yes, but removing?
    I assume that the beginner user won't be able to figure out whether to remove the Animator at runtime or disable the check in Update so I'd rather remove that line
     
  27. Saguaro

    Saguaro

    Joined:
    Apr 8, 2018
    Posts:
    2
    Very nice work!:) I am trying to learn the use of the new input system from your code. I have been learning from several youtube videos about the input system. However, I am confused by lots of things you did in the code, which is very different from what I have seen.:confused: So I really appreciate it if you could explain the following questions:

    1). I noticed that you have a StarterAssetsInputs.cs, which looks like your own version of the StarterAssets.cs, typically generated by using Generate C# Class on StarterAssets.inputactions. However, your code is neat but very different.
    2). I couldn't find any use of Void OnEnable() {StartAssest.Enabled} and Void OnDisable() as well.
    3). I couldn't find any use of [ActionMap].[Action].performed += content => do something.

    Thanks!
     
    beard-or-die likes this.
  28. Reanimate_L

    Reanimate_L

    Joined:
    Oct 10, 2009
    Posts:
    2,528
    @bronsonzgeb filled the survey!!
    Also this part always bother me, and this thing sadly exist in almost unity games :D if they use builtin CharacterController component. Character should be able to step up into this ramp height. Might want to improve this part either improve the ground collider or adding ground height check

    upload_2021-6-18_14-11-50.png
     
    awesomedata and bronsonzgeb like this.
  29. sandipansr2015

    sandipansr2015

    Joined:
    Apr 24, 2020
    Posts:
    1
    i am facing some issue in fps kit while increasing the sprint value to 15 the capsule body is being visible
     
  30. matiasges

    matiasges

    Joined:
    Jan 24, 2021
    Posts:
    66
    You can change the step offset value
     
  31. FellowPlayer123

    FellowPlayer123

    Joined:
    Dec 23, 2016
    Posts:
    74
    Thanks for the replay.

    I try to migrate my half-finished game to the Unity new input system and Cinemachine.

    I am working on a multiplayer game build with Mirror.

    I am wondering where the character's aim IK target should be attached?

    In a normal Unity camera, aim IK is the camera child object.

    In cinemachine aim IK target can't be a child of the virtual camera.
    It doesn't sync position correctly.
    I checked this. Aim IK target is in completely weird places.

    I attached the aim IK target to the main camera (cinemachine brain) and it worked correctly, but the problem is that the main camera is not a child object of the camera. I need the aim IK target to be a child object of the character prefab. That's the requirement of Multiplayer architecture.

    What is the correct way to approach this?

    Thanks!
     
  32. TheGamery

    TheGamery

    Joined:
    Oct 14, 2013
    Posts:
    53
    I've noticed it kind of turns in increments/stutters when rotating the camera around the character?
     
  33. andybak

    andybak

    Joined:
    Jan 14, 2017
    Posts:
    514
    Disappointed that more of this wasn't a UPM package. I was rather enjoying not having my Assets directly full of 3rd party code.

    Would anyone be interested in a repackaged version as a UPM git repo? It would still make sense to keep anything the user would want to edit in the Assets dir but this could be handled the same way other Unity UPM packages do - via a "Samples" button that launches a .unitypackage
     
  34. dorusoftware

    dorusoftware

    Joined:
    Jul 5, 2012
    Posts:
    344
    does this to me also.

    you need to maximize the game window. then click in the game window to hide the mouse cursor. works as intended this way.
     
    TheGamery likes this.
  35. Reanimate_L

    Reanimate_L

    Joined:
    Oct 10, 2009
    Posts:
    2,528
    Do not select anything when in play mode, i think the stutter because of unity editor also need to update any properties visible in the inspector.
     
    ch715t0 likes this.
  36. TheGamery

    TheGamery

    Joined:
    Oct 14, 2013
    Posts:
    53
    Any word on root motion support?
     
    Last edited: Jun 19, 2021
  37. Reanimate_L

    Reanimate_L

    Joined:
    Oct 10, 2009
    Posts:
    2,528
    Character Right and Left Bones direction are flipped is this intended?
     
  38. unity_pWqeyvBroueFCA

    unity_pWqeyvBroueFCA

    Joined:
    Apr 28, 2018
    Posts:
    1
    Hi, I'm not sure if I have missed something but the mobile input or the virtual joystick is not working. I can move the joystick in the game window but in on my phone.
     
  39. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    You may be right! I don't imagine people removing the animator in a production setting, but while prototyping I can imagine somebody wanting to add the animator at runtime to test ideas. I think the overhead is small enough, and it's unlikely to be a bottleneck, but if it becomes an issue we could change it in a future version.
     
  40. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    Thank you!! :D
     
  41. vanoworks

    vanoworks

    Joined:
    Nov 16, 2018
    Posts:
    1
    Because these 2 character controllers are "official from Unity", I think that they could also be a useful learning experience for a beginner like me :)
    So I started to study and compare the "ThirdPersonController.cs" and "FirstPersonController.cs" scripts.
    I think that most big differences are:
    a) the presence of Animator component in Third Person Controller and relative code to manage its animations
    b) the "CameraRotation" method
    c) in the "Move" method, in line with "_controller.Move", it's passed a different input
    I don't fully understand the differences in b and c so I'll need to study the code more but if someone could explain me the logic behind them, I'll really appreciate it :)
    I already have some other issue/questions that I'd like someone could explain to me:
    1) In "FirstPersonController.cs" script, the private field "_mainCamera" is set in "Awake" but not used nowhere else: why?
    2) why all configuration properties are "public" instead of "private" with a [SerializeField] attribute? Maybe to be accessible from other scripts (for example a damage dealing script that decrease character speed when wounded?)
    3) public filed "GroundedRadius": its tooltip says "Should match the radius of the CharacterController": why not use that radius directly?
    4) In "FirstPersonController.cs" script, the comment "Note: animations are called via the controller for both the character and capsule using animator null checks": why is it there if the animator is not used?
    5) what does "#if ENABLE_INPUT_SYSTEM && STARTER_ASSETS_PACKAGES_CHECKED" at the start of both files mean? And why is it necessary?

    Thanks!
     
    Last edited: Jun 21, 2021
  42. slovell619

    slovell619

    Joined:
    Feb 28, 2020
    Posts:
    3
    When using the gamepad on the PC the look up and down works great. Once I build it to an Android Samsung tablet and run it if I just barley press the up or down right stick the camera is moved all the way up to the 90 view clamp instead of only going up a little. Please help!
     
  43. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    If I understand your question correctly, you're asking how the
    PlayerInput
    is hooked up to the
    StarterAssetsInputs
    ?

    On
    PlayerInput
    there's a field to select the behavior, whether it's C# events, Unity Events, Send Messages or Broadcast Messages. For simplicity we chose the Send Messages option, which uses the Send Message function to call
    OnMove
    ,
    OnLook
    ,
    OnJump
    ,
    OnSprint
    , etc.

    The approaches you're describing would the other options (C# events or Unity Events). They're all valid approaches, so choosing one depends on designing a solution for your particular situation and of course taste.
     
  44. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    Nice catch!

    This is due to the damping values on the
    CinemachineVirtualCamera
    on the PlayerFollowCamera. By default the Z damping is set to 0.3, but you could turn that down (likely all the way to 0).

    Thanks for reporting this!
     

    Attached Files:

    FunnyGuy likes this.
  45. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    If it helps, you could make it an embedded package for now.
    1. Copy the StarterAssets folder to your Packages folder.
    2. Rename the folder to (something like) com.unity.starterassets.
    3. Add a package.json file. I'm attaching an extremely basic one, if you want to use the attached one you must remove the .txt extension so the file becomes "package.json" rather than "package.json.txt".
    And it'll be under Packages instead of Assets. If you want to pull any updates you'll have to overwrite the folder with the newer version, but if you're ok with that then it's a quick solution.
     

    Attached Files:

    TeagansDad likes this.
  46. BlinkStudiosThomas

    BlinkStudiosThomas

    Joined:
    Sep 18, 2020
    Posts:
    9
    Hey, great job on these!
    Is there any way to get them working on 2019.4.0 ? And if so, any instructions I could look at?
    Thank you!
     
  47. FellowPlayer123

    FellowPlayer123

    Joined:
    Dec 23, 2016
    Posts:
    74
    Is there a version with normal Unity camera?
     
  48. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    Can you explain the situation in a bit more detail? Am I right in guessing that you're trying to make an over-the-shoulder camera and have the character look in the direction the camera is pointing?

    If you need the target to be part of the player prefab, but it works as part of the main camera, can you spawn it with the player prefab and reparent it after spawn? Or have a script that manually moves it based on the camera position every frame?
     
  49. Andy-Touch

    Andy-Touch

    A Moon Shaped Bool Unity Technologies

    Joined:
    May 5, 2014
    Posts:
    1,033
    Hey! :)

    I have a few questions for you before being able to solve this:
    - What is the exact android device you are using?
    - Which gamepad are you using on PC?
    - Are you using the Virtual Joysticks or TouchZones?
     
  50. bronsonzgeb

    bronsonzgeb

    Unity Technologies

    Joined:
    Aug 10, 2020
    Posts:
    49
    That sounds like a mistake. It could probably be removed, but I haven't checked it.

    For simplicity. Like you mentioned this allows outside scripts to change the values of these fields. Alternatively, they could be private fields with public properties to access them, but that's a bit less beginner friendly.

    It could, but having a field gives users the flexibility to use the asset in ways we might not have predicted.

    That sounds like a mistake as well. I believe that comment is out of date.

    These prevent the file from compiling unless those scripting defines (ENABLE_INPUT_SYSTEM and STARTER_ASSETS_PACKAGES_CHECKED) are set. If they aren't set then the files will fail to compile because they rely on references to packages that may not be installed. Then, if they fail to compile, then we can't run the script that installs the packages .
     
    vanoworks likes this.
unityunity