public void OnInputClicked(InputClickedEventData eventData) { switch (m_state) { case State.Scanning: SetState(State.FinalizeScan); break; case State.Playing: m_magnetOn = !m_magnetOn; if (m_magnetOn) { MonoBehaviour[] objects = FindObjectsOfType <MonoBehaviour>(); foreach (MonoBehaviour obj in objects) { IMagnetic magnetic = obj as IMagnetic; if (magnetic != null) { float distance = (magnet.transform.position - obj.transform.position).magnitude; if (distance < 1) { AttachToMagnet(obj.gameObject); magnetic.OnMagnet(true); m_magnetObjects.Add(obj.gameObject); } } } } else { foreach (GameObject obj in m_magnetObjects) { DetachFromMagnet(obj); obj.GetComponent <IMagnetic>().OnMagnet(false); } m_magnetObjects.Clear(); } break; } }
public Material(float noise) { Noise = noise; AcousticProperties = new Acoustic(); AtomicProperties = new Atomic(); ChemicalProperties = new Chemical(); ElectricalProperties = new Electrical(); EnvironmentalProperties = new Environmental(); MagneticProperties = new Magnetic(); ManufacturingProperties = new Manufacturing(); MechanicalProperties = new Mechanical(); OpticalProperties = new Optical(); RadiologicalProperties = new Radiological(); ThermoDynamicsProperties = new ThermoDynamics(); float input_start = -1; float input_end = 1; float output_start = 0; float output_end = 256 * 256 * 256; double output; double slope = 1.0 * (output_end - output_start) / (input_end - input_start); output = output_start + slope * (Noise - input_start); float Positive = Noise.Spread(-1, 1, 0, 1); float r = Voxel.GetRed(Positive); float g = Voxel.GetGreen(Positive); float b = Voxel.GetBlue(Positive); float a = Voxel.GetAlpha(Noise); PhysicalMaterial = new PhongMaterial { DiffuseColor = new Color4(r, g, b, a) }; }
private void Start() { subject = transform.GetComponentInParent <IMagnetic>(); GetComponent <Image>().color = polarity == POSITIVE ? colors.PositiveColor : colors.NegativeColor; }