Skip to content

Commit 527e9e0

Browse files
author
Mogoson
committed
Optimize scripts.
1 parent a56040e commit 527e9e0

File tree

8 files changed

+63
-23
lines changed

8 files changed

+63
-23
lines changed

Assets/MGS-Machinery/Scripts/Crank/FreeCrank.cs

+5-4
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,22 @@ protected override void DriveCrank(float velocity, DriveType type = DriveType.Ig
3030
{
3131
triggerRecord = Angle;
3232
Angle += velocity * Time.deltaTime;
33-
DriveCrank();
33+
RotateCrank(Angle);
3434

3535
if (CheckTriggers())
3636
{
3737
Angle = triggerRecord;
38-
DriveCrank();
38+
RotateCrank(Angle);
3939
}
4040
}
4141

4242
/// <summary>
4343
/// Rotate crank.
4444
/// </summary>
45-
protected void DriveCrank()
45+
/// <param name="angle">Current rotate angle of crank.</param>
46+
protected void RotateCrank(float angle)
4647
{
47-
transform.localRotation = Quaternion.Euler(StartAngles + new Vector3(0, 0, Angle));
48+
transform.localRotation = Quaternion.Euler(StartAngles + new Vector3(0, 0, angle));
4849
DriveRockers();
4950
}
5051
#endregion

Assets/MGS-Machinery/Scripts/Crank/GearCrank.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,17 @@ public class GearCrank : FreeCrank
3636
protected override void DriveCrank(float velocity, DriveType type = DriveType.Ignore)
3737
{
3838
triggerRecord = Angle;
39-
4039
if (type == DriveType.Linear)
40+
{
4141
velocity *= Mathf.Rad2Deg / radius;
42-
42+
}
4343
Angle += velocity * Time.deltaTime;
44-
DriveCrank();
44+
RotateCrank(Angle);
4545

4646
if (CheckTriggers())
4747
{
4848
Angle = triggerRecord;
49-
DriveCrank();
49+
RotateCrank(Angle);
5050
}
5151
}
5252
#endregion

Assets/MGS-Machinery/Scripts/Crank/LimitCrank.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@ protected override void DriveCrank(float velocity, DriveType type = DriveType.Ig
3838
triggerRecord = Angle;
3939
Angle += velocity * Time.deltaTime;
4040
Angle = Mathf.Clamp(Angle, range.min, range.max);
41-
DriveCrank();
41+
RotateCrank(Angle);
4242

4343
if (CheckTriggers())
4444
{
4545
Angle = triggerRecord;
46-
DriveCrank();
46+
RotateCrank(Angle);
4747
}
4848
}
4949
#endregion

Assets/MGS-Machinery/Scripts/Hinge/CrankRocker.cs

+8
Original file line numberDiff line numberDiff line change
@@ -90,20 +90,28 @@ protected override void DriveLinkJoints()
9090
IsLock = false;
9191
var vector = Vector.Zero;
9292
if (vectors.Count == 1)
93+
{
9394
vector = vectors[0];
95+
}
9496
else
9597
{
9698
//Adapt restrict and intertia.
9799
var rID = restrict ? 1 : 0;
98100
if (inertia)
101+
{
99102
vector = vectors[rID];
103+
}
100104
else
101105
{
102106
var isVectorTop = vectors[0].y - vectors[1].y >= 0;
103107
if (isVectorTop == isTop)
108+
{
104109
vector = vectors[rID];
110+
}
105111
else
112+
{
106113
vector = vectors[1 - rID];
114+
}
107115
}
108116
}
109117

Assets/MGS-Machinery/Scripts/Hinge/CrankSlider.cs

+6
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,13 @@ protected override void DriveLinkJoints()
6969
IsLock = false;
7070
var vector = Vector.Zero;
7171
if (vectors.Count == 1)
72+
{
7273
vector = vectors[0];
74+
}
7375
else
76+
{
7477
vector = isRight ? vectors[0] : vectors[1];
78+
}
7579

7680
slider.localPosition = new Vector3((float)vector.x, (float)vector.y);
7781
link.Drive(0, DriveType.Ignore);
@@ -96,7 +100,9 @@ protected Vector3 ProjectDirection(Vector3 direction)
96100
{
97101
var project = Vector3.ProjectOnPlane(direction, transform.forward);
98102
if (project == Vector3.zero)
103+
{
99104
project = transform.right;
105+
}
100106
return project;
101107
}
102108
#endregion

Assets/MGS-Machinery/Scripts/Mechanism/Mechanism.cs

+24-4
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,9 @@ protected bool CheckTriggers()
113113
foreach (var trigger in triggers)
114114
{
115115
if (trigger.IsTriggered)
116+
{
116117
return true;
118+
}
117119
}
118120
return false;
119121
}
@@ -141,7 +143,9 @@ public override void Initialize()
141143
{
142144
var trigger = rocker.GetComponent<TriggerMechanism>();
143145
if (trigger)
146+
{
144147
triggers.Add(trigger);
148+
}
145149
}
146150
}
147151
#endregion
@@ -244,14 +248,18 @@ public abstract class CrankLinkMechanism : Mechanism
244248
protected override void Awake()
245249
{
246250
if (IsIntact)
251+
{
247252
Initialize();
253+
}
248254
}
249255

250256
#if UNITY_EDITOR
251257
protected virtual void Update()
252258
{
253259
if (Application.isPlaying)
260+
{
254261
return;
262+
}
255263

256264
if (IsIntact)
257265
{
@@ -263,7 +271,9 @@ protected virtual void Update()
263271
DriveLinkJoints();
264272
}
265273
else
274+
{
266275
isInitialized = false;
276+
}
267277
}
268278
#endif
269279
/// <summary>
@@ -322,13 +332,17 @@ public override void Drive(float velocity, DriveType type)
322332
if (velocity >= 0)
323333
{
324334
if (IsLock && isPositive)
335+
{
325336
return;
337+
}
326338
isPositive = true;
327339
}
328340
else
329341
{
330342
if (IsLock && !isPositive)
343+
{
331344
return;
345+
}
332346
isPositive = false;
333347
}
334348
crank.Drive(velocity, type);
@@ -354,7 +368,9 @@ public abstract class RockerMechanism : Mechanism
354368
protected virtual void Update()
355369
{
356370
if (!Application.isPlaying && joint)
371+
{
357372
Drive(0, DriveType.Ignore);
373+
}
358374
}
359375
#endif
360376
#endregion
@@ -392,12 +408,16 @@ public TelescopicState State
392408
{
393409
get
394410
{
411+
var state = TelescopicState.Between;
395412
if (Displacement <= stroke.min)
396-
return TelescopicState.Minimum;
413+
{
414+
state = TelescopicState.Minimum;
415+
}
397416
else if (Displacement >= stroke.max)
398-
return TelescopicState.Maximum;
399-
else
400-
return TelescopicState.Between;
417+
{
418+
state = TelescopicState.Maximum;
419+
}
420+
return state;
401421
}
402422
}
403423

Assets/MGS-Machinery/Scripts/Slider/Slider.cs

+10-7
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@ protected Vector3 Aixs
2828
{
2929
get
3030
{
31+
var axis = transform.forward;
3132
if (transform.parent)
32-
return transform.parent.InverseTransformDirection(transform.forward);
33-
else
34-
return transform.forward;
33+
{
34+
axis = transform.parent.InverseTransformDirection(axis);
35+
}
36+
return axis;
3537
}
3638
}
3739
#endregion
@@ -46,21 +48,22 @@ protected override void DriveSlider(float velocity)
4648
triggerRecord = Displacement;
4749
Displacement += velocity * Time.deltaTime;
4850
Displacement = Mathf.Clamp(Displacement, stroke.min, stroke.max);
49-
DriveSlider();
51+
MoveSlider(Displacement);
5052

5153
if (CheckTriggers())
5254
{
5355
Displacement = triggerRecord;
54-
DriveSlider();
56+
MoveSlider(Displacement);
5557
}
5658
}
5759

5860
/// <summary>
5961
/// Move slider.
6062
/// </summary>
61-
protected virtual void DriveSlider()
63+
/// <param name="displacement">Displacement of slider.</param>
64+
protected void MoveSlider(float displacement)
6265
{
63-
transform.localPosition = StartPosition + Aixs * Displacement;
66+
transform.localPosition = StartPosition + Aixs * displacement;
6467
DriveRockers();
6568
}
6669
#endregion

Assets/MGS-Machinery/Scripts/Slider/SliderArm.cs

+4-2
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,20 @@ public override void Drive(float velocity, DriveType type = DriveType.Ignore)
3737
{
3838
var currentJoint = sliders[sliderIndex];
3939
currentJoint.Drive(velocity, DriveType.Ignore);
40-
4140
if (velocity >= 0)
4241
{
4342
if (currentJoint.State == TelescopicState.Maximum)
43+
{
4444
sliderIndex++;
45+
}
4546
}
4647
else
4748
{
4849
if (currentJoint.State == TelescopicState.Minimum)
50+
{
4951
sliderIndex--;
52+
}
5053
}
51-
5254
sliderIndex = ClampIndex(sliderIndex);
5355
}
5456
#endregion

0 commit comments

Comments
 (0)