Hey let me first start by saying I'm loving this asset a lot, and also that I'm not much of a game developer(at least yet).
With all that said just started using this yesterday, and noticed when I used the Prefabs from the examples/tutorials at least in regards to the "Player" Prefab he doesn't move.He can rotate if I move the mouse any help would be appreciated. Edited to say I've seen this happening even in example scenes too is it something I didn't do?
Bonus Question is this compatible with InVector's asset? Third Person Controller in Unity Asset Store, or is there a way to make it so?
Edit 2: Never mind seems like the problem fixed itself, but if you can answer the bonus question still be highly thankful.
Prefabs not working...
Re: Prefab question / Invector integration
Hi,
Thanks for using the Dialogue System!
The Dialogue System doesn't have a specific integration package for Invector's Third Person Controller, but other developers are using both products together.
Invector's Third Person Controller is a complete project asset. It overwrites Unity's default project settings, including the input definitions. When you use the Dialogue System's "Player" prefab, it's probably spamming the Console view that the input settings don't include the default definitions for "Horizontal" and "Vertical". If you want to get it working, check the Console and add the missing input definitions. You can create a new, empty project and look at the input definitions to get their values.
To set up Invector's Third Person Controller, open the How to Set Up the Player page and skip down to Selectors. The previous sections explain how to set up basic movement controls, but Invector's already has controls, so you can skip them.
You can add a Selector or ProximitySelector to your player to allow it to interact with GameObjects that have a Dialogue System Usable component and another component such as a ConversationTrigger set to OnUse.
However, you may want to use Invector's TriggerActions instead of Selector/ProximitySelector. To do this, add a TriggerAction instead of a Usable component. Configure the TriggerAction to call the ConversationTrigger's OnUse method.
The next section of the page, SetEnabled Controllers, is important. You can find a general example in the Feature Demo scene. The Player GameObject has a SetComponentEnabledOnDialogueEvent component that disables player control during conversations and re-enables them after conversations. In the Feature Demo, these are the simple controls that come with the Dialogue System. But the same idea applies to Invector's controls.
If you have any questions about setting it up, just let me know!
Thanks for using the Dialogue System!
The Dialogue System doesn't have a specific integration package for Invector's Third Person Controller, but other developers are using both products together.
Invector's Third Person Controller is a complete project asset. It overwrites Unity's default project settings, including the input definitions. When you use the Dialogue System's "Player" prefab, it's probably spamming the Console view that the input settings don't include the default definitions for "Horizontal" and "Vertical". If you want to get it working, check the Console and add the missing input definitions. You can create a new, empty project and look at the input definitions to get their values.
To set up Invector's Third Person Controller, open the How to Set Up the Player page and skip down to Selectors. The previous sections explain how to set up basic movement controls, but Invector's already has controls, so you can skip them.
You can add a Selector or ProximitySelector to your player to allow it to interact with GameObjects that have a Dialogue System Usable component and another component such as a ConversationTrigger set to OnUse.
However, you may want to use Invector's TriggerActions instead of Selector/ProximitySelector. To do this, add a TriggerAction instead of a Usable component. Configure the TriggerAction to call the ConversationTrigger's OnUse method.
The next section of the page, SetEnabled Controllers, is important. You can find a general example in the Feature Demo scene. The Player GameObject has a SetComponentEnabledOnDialogueEvent component that disables player control during conversations and re-enables them after conversations. In the Feature Demo, these are the simple controls that come with the Dialogue System. But the same idea applies to Invector's controls.
If you have any questions about setting it up, just let me know!
Re: Prefab question / Invector integration
If you're using the Menu Framework (from the Dialogue System Extras page) with Invector, you may find the script below handy. The Invector player GameObject survives scene changes. However, you probably don't want to carry the player GameObject back into the title scene. Add this script to the Menu System GameObject's TitleMenuPanel child GameObject. It will automatically destroy the player GameObject when returning to the title scene.
NoPlayerInMainMenu.cs
NoPlayerInMainMenu.cs
Code: Select all
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NoPlayerInMainMenu : MonoBehaviour
{
void OnEnable()
{
if (Invector.CharacterController.vThirdPersonController.instance != null)
{
Destroy(Invector.CharacterController.vThirdPersonController.instance.gameObject);
Invector.CharacterController.vThirdPersonController.instance = null;
}
}
}