Global Game Jam 2023
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

109 lines
2.3 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using NaughtyAttributes;
using Unity.VisualScripting;
using UnityEngine.Events;
/// <summary>
///
/// </summary>
public class BoatRowController : MonoBehaviour
{
#region Inspector Fields
public Transform m_oarTip;
public UnityEvent m_OnRow;
#endregion Inspector Fields
#region Private Fields
private Vector3 m_lastKnownOarPosition;
#endregion Private Fields
#region Getters
#endregion Getters
#region MonoBehaviour Functions
/// <summary>
/// OnEnable is called when the object becomes enabled and active.
/// </summary>
private void OnEnable()
{
}
/// <summary>
/// OnDisable is called when the behaviour becomes disabled.
/// </summary>
private void OnDisable()
{
}
/// <summary>
/// Update is called once per frame
/// </summary>
private void Update()
{
}
#endregion MonoBehaviour Functions
#region Class Functionality
private void OnTriggerEnter(Collider other)
{
OarController oar = other.GetComponentInParent<OarController>();
if (oar != null)
{
m_lastKnownOarPosition = m_oarTip.position;
}
}
void OnTriggerStay(Collider other)
{
OarController oar = other.GetComponentInParent<OarController>();
if(oar != null)
{
Vector3 direction = m_lastKnownOarPosition - m_oarTip.position;
direction = Vector3.Project(direction,transform.forward);
float directionality = Vector3.Dot(direction,transform.forward);
if (directionality > 0)
{
// Debug.Log($"Row! ({directionality})");
m_OnRow.Invoke();
}
else
{
// Debug.Log($"No Row: {directionality}");
}
m_lastKnownOarPosition=m_oarTip.position;
}
else
{
// Debug.Log($"Not Oar: {other.gameObject}");
}
}
#endregion Class Functionality
#region Editor Functions
/// <summary>
/// Called when the Component is created or Reset from the Inspector
/// </summary>
private void Reset()
{
//useful for finding components on creation
}
#endregion Editor Functions
}