Serious Game - Electrónica VR 1.0.0
Loading...
Searching...
No Matches
Multimeter Class Reference

Multímetro digital VR para el Explorador. More...

Inheritance diagram for Multimeter:
Inheritance graph
Collaboration diagram for Multimeter:
Collaboration graph

Public Member Functions

void SetRedNode (ElectricalNode node)
 Asigna el nodo a la punta roja (mano derecha).
void SetBlackNode (ElectricalNode node)
 Asigna el nodo a la punta negra (mano izquierda).
void SetProbeA (ElectricalNode node)
 Alias de SetProbeA → SetRedNode (usado por PlayerInteraction).
void SetProbeB (ElectricalNode node)
 Alias de SetProbeB → SetBlackNode (usado por PlayerInteraction).
void ResetProbes ()
void SetMode (MultimeterMode newMode)
 Cambia el modo de medición.

Public Attributes

TMP_Text txtVoltage
TMP_Text txtCurrent
TMP_Text txtStatus
TMP_Text txtMode
Renderer indicatorRed
Renderer indicatorBlack
MultimeterMode mode = MultimeterMode.DCVoltage
float hapticIntensity = 0.3f
float hapticDuration = 0.08f

Properties

float measuredVoltage [get]
float measuredCurrent [get]
bool isReading [get]
ElectricalNode probeA [get]
 Reinicia ambas puntas (llamado por GameManager al cargar nivel).
ElectricalNode probeB [get]
 Alias de probeB → _nodeBlack (compatibilidad con código existente).

Private Member Functions

void Awake ()
void Update ()
void TakeReading ()
void UpdateDisplay ()
void OnGrabbed (SelectEnterEventArgs args)
void OnReleased (SelectExitEventArgs args)
void SendHaptic ()
void SetIndicator (Renderer r, bool assigned)
string ModeLabel ()

Static Private Member Functions

static string FormatVoltage (float v)
static string FormatCurrent (float i)
static string FormatResistance (float r)
static void Set (TMP_Text t, string s)

Private Attributes

float _measuredVoltage
float _measuredCurrent
bool _isReading
ElectricalNode _nodeRed
ElectricalNode _nodeBlack
XRGrabInteractable _grab
UnityEngine.XR.Interaction.Toolkit.Interactors.IXRSelectInteractor _currentInteractor

Static Private Attributes

static readonly Color _colorAssigned = new Color(0.2f, 0.85f, 0.3f)
static readonly Color _colorIdle = new Color(0.4f, 0.4f, 0.4f)

Detailed Description

Multímetro digital VR para el Explorador.

FLUJO:

  1. Explorador agarra el multímetro (XRGrabInteractable).
  2. Apunta el controlador DERECHO al nodo a medir → gatillo → punta roja asignada.
  3. Apunta el controlador IZQUIERDO al nodo de referencia → gatillo → punta negra.
  4. El display muestra voltaje y corriente en tiempo real.
  5. El Técnico lee los mismos valores en TechnicianUIController mediante las propiedades measuredVoltage / measuredCurrent.

JERARQUÍA EN UNITY: Multimeter_VR ← este script + XRGrabInteractable + Rigidbody ├─ Body ← Cube (0.06 × 0.12 × 0.02), color gris oscuro ├─ Indicator_Red ← Sphere (0.008), color rojo — se ilumina al asignar ├─ Indicator_Black ← Sphere (0.008), color negro — se ilumina al asignar └─ Screen_Canvas ← Canvas WorldSpace, Scale 0.001 ├─ TMP_Voltage ← "9.00 V" ├─ TMP_Current ← "15.3 mA" ├─ TMP_Status ← "MIDIENDO" / "SIN CONTACTO" └─ TMP_Mode ← "DC VOLTAGE"

NO necesita MultimeterProbe.cs ni CircuitNode.cs. Trabaja directamente con ElectricalNode asignado por NodeInteractable.

Member Function Documentation

◆ Awake()

void Multimeter.Awake ( )
private

◆ FormatCurrent()

string Multimeter.FormatCurrent ( float i)
staticprivate

◆ FormatResistance()

string Multimeter.FormatResistance ( float r)
staticprivate

◆ FormatVoltage()

string Multimeter.FormatVoltage ( float v)
staticprivate

◆ ModeLabel()

string Multimeter.ModeLabel ( )
private

◆ OnGrabbed()

void Multimeter.OnGrabbed ( SelectEnterEventArgs args)
private

◆ OnReleased()

void Multimeter.OnReleased ( SelectExitEventArgs args)
private

◆ ResetProbes()

void Multimeter.ResetProbes ( )

◆ SendHaptic()

void Multimeter.SendHaptic ( )
private

◆ Set()

void Multimeter.Set ( TMP_Text t,
string s )
staticprivate

◆ SetBlackNode()

void Multimeter.SetBlackNode ( ElectricalNode node)

Asigna el nodo a la punta negra (mano izquierda).

◆ SetIndicator()

void Multimeter.SetIndicator ( Renderer r,
bool assigned )
private

◆ SetMode()

void Multimeter.SetMode ( MultimeterMode newMode)

Cambia el modo de medición.

◆ SetProbeA()

void Multimeter.SetProbeA ( ElectricalNode node)

Alias de SetProbeA → SetRedNode (usado por PlayerInteraction).

◆ SetProbeB()

void Multimeter.SetProbeB ( ElectricalNode node)

Alias de SetProbeB → SetBlackNode (usado por PlayerInteraction).

◆ SetRedNode()

void Multimeter.SetRedNode ( ElectricalNode node)

Asigna el nodo a la punta roja (mano derecha).

◆ TakeReading()

void Multimeter.TakeReading ( )
private

◆ Update()

void Multimeter.Update ( )
private

◆ UpdateDisplay()

void Multimeter.UpdateDisplay ( )
private

Member Data Documentation

◆ _colorAssigned

readonly Color Multimeter._colorAssigned = new Color(0.2f, 0.85f, 0.3f)
staticprivate

◆ _colorIdle

readonly Color Multimeter._colorIdle = new Color(0.4f, 0.4f, 0.4f)
staticprivate

◆ _currentInteractor

UnityEngine.XR.Interaction.Toolkit.Interactors.IXRSelectInteractor Multimeter._currentInteractor
private

◆ _grab

XRGrabInteractable Multimeter._grab
private

◆ _isReading

bool Multimeter._isReading
private

◆ _measuredCurrent

float Multimeter._measuredCurrent
private

◆ _measuredVoltage

float Multimeter._measuredVoltage
private

◆ _nodeBlack

ElectricalNode Multimeter._nodeBlack
private

◆ _nodeRed

ElectricalNode Multimeter._nodeRed
private

◆ hapticDuration

float Multimeter.hapticDuration = 0.08f

◆ hapticIntensity

float Multimeter.hapticIntensity = 0.3f

◆ indicatorBlack

Renderer Multimeter.indicatorBlack

◆ indicatorRed

Renderer Multimeter.indicatorRed

◆ mode

◆ txtCurrent

TMP_Text Multimeter.txtCurrent

◆ txtMode

TMP_Text Multimeter.txtMode

◆ txtStatus

TMP_Text Multimeter.txtStatus

◆ txtVoltage

TMP_Text Multimeter.txtVoltage

Property Documentation

◆ isReading

bool Multimeter.isReading
get

◆ measuredCurrent

float Multimeter.measuredCurrent
get

◆ measuredVoltage

float Multimeter.measuredVoltage
get

◆ probeA

ElectricalNode Multimeter.probeA
get

Reinicia ambas puntas (llamado por GameManager al cargar nivel).

Alias de probeA → _nodeRed (compatibilidad con código existente).

◆ probeB

ElectricalNode Multimeter.probeB
get

Alias de probeB → _nodeBlack (compatibilidad con código existente).


The documentation for this class was generated from the following file: