Hi everyone,
I’m french so excuse me in advance for my bad english ![]()
I bought Visual Novel ToolKit and I need to modify it for my project.
I’m sure you have heard this many times but I hope you will still take some your times to help me.
What I need it’s for the example EventTrigger :
I don’t want the player character.
I just want to replace it by a simple mouse click on the objects (Event A, B or C) to set dialogs.
As a Myst like game for example.
I don’t know C# very well so I expect you can tell me how to do that.
I think it’s those scripts to modify :
TriggerVolume.cs
using UnityEngine;
using System.Collections;
namespace ViNoToolkit{
/// <summary>
/// Trigger volume event data.
/// </summary>
public class TriggerVolumeEventData : ViNoEventData{
public Collider collider;
}
/// <summary>
/// Trigger volume. please attach this script to a player.
/// </summary>
public class TriggerVolume : MonoBehaviour {
private TriggerVolumeEventData m_EvtData = new TriggerVolumeEventData(); // Cached Event Data.
void OnTriggerEnter(Collider other){
// Debug.Log ( "EvtType:" + m_EvtData.eventType );
m_EvtData.eventType = "OnTriggerEvent";
m_EvtData.collider = other;
// EventManager will send message to event receiver.
ViNoEventManager.Instance.TriggerEvent ( m_EvtData.eventType , m_EvtData );
}
}
}
and
TriggerVolumeEventReceiver.cs
using UnityEngine;
using System.Collections;
namespace ViNoToolkit{
/// <summary>
/// Sample TriggerVolume event receiver.
/// </summary>
public class TriggerVolumeEventReceiver : MonoBehaviour {
[System.Serializable]
public class TriggerVolEventEntry{
public ViNode node;
public GameObject triggerVolume;
}
public ScenarioNode scenario;
public TriggerVolEventEntry[] events;
private bool m_LockTrigger;
void OnTriggerEvent( ViNoEventData data ){
TriggerVolumeEventData tdata = data as TriggerVolumeEventData;
if (tdata == null) {
return;
}
// If event is already triggered, return.
if( ! m_LockTrigger ){
m_LockTrigger = true;
}
else{
return;
}
Collider col = tdata.collider;
Debug.Log( "OnTriggerEvent" );
foreach( TriggerVolEventEntry ent in events ){
if( col.gameObject.name.Equals( ent.triggerVolume.name ) ){
Debug.Log ( "Play from : " + ent.node.GetNodeLabel() );
scenario.PlayFrom( ent.node.GetNodeLabel() );
break;
}
}
}
/// <summary>
/// Raises the finish event event.
/// </summary>
void OnFinishEvent(){
Debug.Log( "OnFinishEvent" );
m_LockTrigger = false;
}
void Start () {
scenario.CompileAndSetCode();
}
}
}
I will be very gratefull if you can help me.
Best regards!