Laser Update refactor

This commit is contained in:
Ava Gaiety Wroten 2020-06-14 18:05:12 -05:00
parent 0a3ef327b3
commit 1945ada3d8
2 changed files with 257 additions and 31 deletions

View file

@ -121,6 +121,75 @@ NavMeshSettings:
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1001 &178750765
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6460630409594600933, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_Name
value: Charge Point (1)
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalPosition.x
value: -2.3136568
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalPosition.y
value: 2.7764423
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 32fa01a5337b60d44bdc2573fd3ebe3f, type: 3}
--- !u!1 &519420028
GameObject:
m_ObjectHideFlags: 0
@ -204,6 +273,75 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &1261279073
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6403035724002954895, guid: d9378c4b4a9bc334d8e289cbcd7a5bed,
type: 3}
propertyPath: m_LocalPosition.x
value: -5.079479
objectReference: {fileID: 0}
- target: {fileID: 6403035724002954895, guid: d9378c4b4a9bc334d8e289cbcd7a5bed,
type: 3}
propertyPath: m_LocalPosition.y
value: 1.5528967
objectReference: {fileID: 0}
- target: {fileID: 6403035724002954895, guid: d9378c4b4a9bc334d8e289cbcd7a5bed,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6403035724002954895, guid: d9378c4b4a9bc334d8e289cbcd7a5bed,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6403035724002954895, guid: d9378c4b4a9bc334d8e289cbcd7a5bed,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6403035724002954895, guid: d9378c4b4a9bc334d8e289cbcd7a5bed,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6403035724002954895, guid: d9378c4b4a9bc334d8e289cbcd7a5bed,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6403035724002954895, guid: d9378c4b4a9bc334d8e289cbcd7a5bed,
type: 3}
propertyPath: m_RootOrder
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6403035724002954895, guid: d9378c4b4a9bc334d8e289cbcd7a5bed,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6403035724002954895, guid: d9378c4b4a9bc334d8e289cbcd7a5bed,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6403035724002954895, guid: d9378c4b4a9bc334d8e289cbcd7a5bed,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6403035724002954929, guid: d9378c4b4a9bc334d8e289cbcd7a5bed,
type: 3}
propertyPath: m_Name
value: Wall
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d9378c4b4a9bc334d8e289cbcd7a5bed, type: 3}
--- !u!1001 &1563259683
PrefabInstance:
m_ObjectHideFlags: 0
@ -254,7 +392,7 @@ PrefabInstance:
- target: {fileID: 2115795504606128410, guid: 0fecd55e0eb9020499d7ba0934555d41,
type: 3}
propertyPath: m_RootOrder
value: 2
value: 5
objectReference: {fileID: 0}
- target: {fileID: 2115795504606128410, guid: 0fecd55e0eb9020499d7ba0934555d41,
type: 3}
@ -333,7 +471,7 @@ PrefabInstance:
- target: {fileID: 2115795504606128410, guid: 0fecd55e0eb9020499d7ba0934555d41,
type: 3}
propertyPath: m_RootOrder
value: 4
value: 6
objectReference: {fileID: 0}
- target: {fileID: 2115795504606128410, guid: 0fecd55e0eb9020499d7ba0934555d41,
type: 3}
@ -357,6 +495,75 @@ PrefabInstance:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 0fecd55e0eb9020499d7ba0934555d41, type: 3}
--- !u!1001 &2082153622
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6460630409594600933, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_Name
value: Charge Point
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalPosition.x
value: -7.136117
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalPosition.y
value: -0.16716063
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_RootOrder
value: 3
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6460630409594600935, guid: 32fa01a5337b60d44bdc2573fd3ebe3f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 32fa01a5337b60d44bdc2573fd3ebe3f, type: 3}
--- !u!1 &2114209081
GameObject:
m_ObjectHideFlags: 0
@ -438,7 +645,7 @@ Transform:
m_LocalScale: {x: 0.2, y: 0.2, z: 0.2}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 3
m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2114209084
MonoBehaviour:
@ -534,7 +741,7 @@ PrefabInstance:
- target: {fileID: 4683683892600594511, guid: 85fd029068587db4d95be8b3b62285c8,
type: 3}
propertyPath: m_RootOrder
value: 1
value: 4
objectReference: {fileID: 0}
- target: {fileID: 4683683892600594511, guid: 85fd029068587db4d95be8b3b62285c8,
type: 3}

View file

@ -20,49 +20,68 @@ public class Laser : MonoBehaviour
void Update()
{
laserLine.SetPosition(0, transform.position);
RaycastHit2D hit = DrawLaser(transform.position);
HandleHit(hit);
}
RaycastHit2D DrawLaser(Vector3 startPosition)
{
laserLine.SetPosition(0, startPosition);
RaycastHit2D hit;
if (isHorizontal)
{
float endpointY = flipDirection ? transform.position.y - maxDistance : transform.position.y + maxDistance;
hit = Physics2D.Raycast(transform.position, flipDirection ? Vector2.down : Vector2.up);
float endpointY = flipDirection ? startPosition.y - maxDistance : startPosition.y + maxDistance;
hit = Physics2D.Raycast(startPosition, flipDirection ? Vector2.down : Vector2.up);
if (hit.collider) laserLine.SetPosition(1, hit.point);
else laserLine.SetPosition(1, new Vector3(transform.position.x, endpointY, 0));
else laserLine.SetPosition(1, new Vector3(startPosition.x, endpointY, 0));
} else
{
float endpointX = flipDirection ? transform.position.x - maxDistance : transform.position.x + maxDistance;
hit = Physics2D.Raycast(transform.position, flipDirection ? Vector2.left : Vector2.right);
float endpointX = flipDirection ? startPosition.x - maxDistance : startPosition.x + maxDistance;
hit = Physics2D.Raycast(startPosition, flipDirection ? Vector2.left : Vector2.right);
if (hit.collider) laserLine.SetPosition(1, hit.point);
else laserLine.SetPosition(1, new Vector3(endpointX, transform.position.y, 0));
else laserLine.SetPosition(1, new Vector3(endpointX, startPosition.y, 0));
}
return hit;
}
void HandleHit(RaycastHit2D hit)
{
if (hit.collider)
{
if (hit.collider.tag == "Mirror")
if (hit.collider.tag == "Mirror") HitMirror(hit);
if (hit.collider.tag == "Charge Point") HitChargePoint(hit);
}
else HitNothing();
}
void HitMirror(RaycastHit2D hit)
{
Debug.Log("Hit Mirror");
if (isHorizontal)
{
// TODO
} else
}
else
{
// TODO
}
}
if (hit.collider.tag == "Charge Point")
void HitChargePoint(RaycastHit2D hit)
{
if (hit.collider.gameObject != lastChargePoint) hit.collider.GetComponent<ChargePoint>().adjustCharges(power);
lastChargePoint = hit.collider.gameObject;
}
} else
void HitNothing()
{
if (lastChargePoint) lastChargePoint.GetComponent<ChargePoint>().adjustCharges(power * -1);
lastChargePoint = null;
}
}
void OnDrawGizmosSelected()
{