32 lines
773 B
C#
32 lines
773 B
C#
using UnityEngine;
|
|||
|
|
using System.Collections;
|
||
|
|
|
||
|
|
public class ElectronicSpeedController : MonoBehaviour {
|
||
|
|
public Motor motor;
|
||
|
|
public bool inverseDirection;
|
||
|
|
|
||
|
|
[Range(0, 1)]
|
||
|
|
public float inputSpeed;
|
||
|
|
|
||
|
|
// Use this for initialization
|
||
|
|
void Start () {
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
void OnDrawGizmos(){
|
||
|
|
AdvancedGizmo.CircleArrow (0.1f, inverseDirection ? -270 : 270, 37, AdvancedGizmo.CircleCloseType.None, motor.transform.localToWorldMatrix);
|
||
|
|
}
|
||
|
|
|
||
|
|
// Update is called once per frame
|
||
|
|
void Update () {
|
||
|
|
inputSpeed = Mathf.Clamp01 (inputSpeed);
|
||
|
|
|
||
|
|
if (motor != null) {
|
||
|
|
motor.speed = motor.maxRpm * inputSpeed * (inverseDirection ? -1.0f : 1.0f);
|
||
|
|
var rps = motor.speed / 60.0f;
|
||
|
|
var rotateAngle = rps * 360.0f * Time.deltaTime;
|
||
|
|
motor.rotor.transform.Rotate(0, 0, rotateAngle);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|