projection test for gallery space w/ chair using squeezed & gnomic projection.
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.
 
 
 
 

79 lines
1.8 KiB

using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices.WindowsRuntime;
using Unity.VisualScripting;
using UnityEngine;
public class Treadmill : MonoBehaviour
{
//public Rigidbody m_Body;
public float m_HoldSpeed;
private float m_CurrentForce = 0f;
private float m_angleOffset;
private bool m_RampActive;
public float m_RampTimer;
public float m_RampIncrement;
public float m_HoldSpeedTimer;
private void OnEnable()
{
OnChairContact.ApplyTreadmillForce += ApplyForce;
OnChairContact.RemoveTreadmillForce += RemoveForce;
m_angleOffset = 16.6f;
}
private void OnDisable()
{
OnChairContact.ApplyTreadmillForce -= ApplyForce;
OnChairContact.RemoveTreadmillForce -= RemoveForce;
}
public void ApplyForce(Rigidbody rb)
{
Vector3 forceDirection = Quaternion.Euler(0, -m_angleOffset, 0) * Vector3.forward;
if (!m_RampActive && m_RampTimer > 0f)
{
m_RampTimer -= Time.deltaTime;
}
else
{
m_RampActive = true;
}
if (m_RampActive)
{
if (m_CurrentForce > m_HoldSpeed && m_HoldSpeedTimer >= 0)
{
m_HoldSpeedTimer -= Time.deltaTime;
}
else
{
m_CurrentForce += Time.deltaTime * m_RampIncrement;
}
rb.AddForce(forceDirection * m_CurrentForce);
}
}
public void RemoveForce(Rigidbody rb)
{
rb.AddForce(new Vector3(0, 0, 0));
}
private void OnDrawGizmosSelected()
{
// Draw a line representing the force direction
Gizmos.color = Color.red;
Gizmos.DrawRay(transform.position, Quaternion.Euler(0, -m_angleOffset, 0) * Vector3.forward);
}
}