Laser Update refactor
This commit is contained in:
parent
0a3ef327b3
commit
1945ada3d8
2 changed files with 257 additions and 31 deletions
|
@ -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}
|
||||
|
|
|
@ -20,48 +20,67 @@ 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")
|
||||
{
|
||||
Debug.Log("Hit Mirror");
|
||||
if (isHorizontal)
|
||||
{
|
||||
// TODO
|
||||
} else
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
if (hit.collider.tag == "Charge Point")
|
||||
{
|
||||
if (hit.collider.gameObject != lastChargePoint) hit.collider.GetComponent<ChargePoint>().adjustCharges(power);
|
||||
lastChargePoint = hit.collider.gameObject;
|
||||
}
|
||||
} else
|
||||
{
|
||||
if (lastChargePoint) lastChargePoint.GetComponent<ChargePoint>().adjustCharges(power * -1);
|
||||
lastChargePoint = null;
|
||||
if (hit.collider.tag == "Mirror") HitMirror(hit);
|
||||
if (hit.collider.tag == "Charge Point") HitChargePoint(hit);
|
||||
}
|
||||
else HitNothing();
|
||||
}
|
||||
|
||||
void HitMirror(RaycastHit2D hit)
|
||||
{
|
||||
|
||||
if (isHorizontal)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
|
||||
void HitChargePoint(RaycastHit2D hit)
|
||||
{
|
||||
if (hit.collider.gameObject != lastChargePoint) hit.collider.GetComponent<ChargePoint>().adjustCharges(power);
|
||||
lastChargePoint = hit.collider.gameObject;
|
||||
}
|
||||
|
||||
void HitNothing()
|
||||
{
|
||||
if (lastChargePoint) lastChargePoint.GetComponent<ChargePoint>().adjustCharges(power * -1);
|
||||
lastChargePoint = null;
|
||||
}
|
||||
|
||||
void OnDrawGizmosSelected()
|
||||
|
|
Loading…
Add table
Reference in a new issue