I asked a team member to answer your questions in detail, and below is what I got. Unfortunately, we still need to clarify the second question but here is everything else. Please let me know if you need more help or have any other questions!
I'll also add a note here that if something in your level seems to act weirdly, especially if it was working before, it's good to try to process your level's resources. You can do this by clicking each speech bubble that has question marks in it. You can find these buttons from the Editor's toolbar. It's recommendable to do this always if you want to play your level in the Editor after starting it.QUESTION 1How to make platforms solid but not interactable?
The easiest way to achieve this effect is to use static objects. Static object doesn't follow the laws of physics, so it can't be pushed around by the player but can be used as platforms. You can find these in the type tree (View → Type Tree
Instance → Entity → Object → Helper→ CollisionHelper
As long as you do not choose the Dynamic versions of the object you can use any variation as you want. If you for some reason want to use a dynamic object as a static object this is doable. Select the chosen object and look into the ActorType, which can be found at:
Properties → PhysicsComponent → SpherePhysicsCollisionComponent → ActorType
Here we want to choose the ActorTypeStatic as the value. ActorTypes in short are a way to force an object to act like a static or dynamic object.QUESTION 3How to bring EXP points into the level?
Overall a really simple process. You only need two things to properly integrate exp pickups into your level:
- A pickable exp entity
The exp entity is the actual exp pickup that appears in the game itself. These can be found in the Editor from the Type tree from:
InstanceBase→ Entity → GameplayEntity → ItemGameplay → PickableItem → ExpPickableItem
All the entities under ExpPickableItem can be used as they are. The main thing an exp pickup need is the Trine3ExperienceItemComponent, all of the ones under ExpPickableItem have these by default. Adding them to the scene happens like any other object, just pick the places you want and put them there.
The next step is to make it so that the game can keep up with how many exp items you have picked up/how many exp points there are. For this we need a checkpoint, which you can also find from the Type tree:
InstanceBase → Entity → GameplayEntity → CheckpointEntity
You can also use a existing checkpoint that is already in the level, or can just bring a new one in. What interests us about the checkpoint is the ListOfExperiencePoints area under TrineChekpointComponent. Pressing the + button on this section allows you to add exp points you want to be linked to THIS checkpoint. It is important to remember to add all exp points that are between the checkpoint you are working with and the next one. After pressing the + button, a new area pops up which says GUID_NONE. Press the three dots next to this and link the wanted exp point to it. After linking a exp point, you should see a green arrow pointing to the exp point. Each exp point needs to be assigned individually. So, if you have 3 epx points you want to link to a checkpoint you should have 3 seperate sections under the ListOfExperiencePoints area. Note that the count starts from 0, not 1. So if you have 3 epx points they should be numbered 0, 1 & 2.
Also keep in mind that the exp point you want to assign to the checkpoint needs to have a Trice3ExpereinceItemComponent, otherwise you will get errors.QUESTION 4How to make AI work?
- Grab the wanted enemies from Entity → ActorEntity
- Place the enemies in the wanted locations
- Grab the NavigationMeshAreaEntity from Entity → AreaEntity
- Position the NavigationMesh anywhere on the level
- Use the AreaTool (hotkey 4) to cover the whole level with the NavMesh area
- Click the purple zZ bubble on your toolbar to finnish prepping up the NavigationMesh
- Voila! Your AI is working now. The enemy will move towards you, and when you are in range it will attack.