Laser and Turret all directions
This commit is contained in:
parent
695e973d9c
commit
df6141f1ad
3 changed files with 71 additions and 128 deletions
|
@ -204,38 +204,6 @@ Transform:
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &620680906
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 620680907}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Laser Rail
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &620680907
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 620680906}
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 1.1082339, y: -0.09741877, z: -2.1782916}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children:
|
|
||||||
- {fileID: 934827305}
|
|
||||||
- {fileID: 1748837247}
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 1
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!1 &934827303
|
--- !u!1 &934827303
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -250,7 +218,7 @@ GameObject:
|
||||||
- component: {fileID: 934827306}
|
- component: {fileID: 934827306}
|
||||||
- component: {fileID: 934827308}
|
- component: {fileID: 934827308}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: Turret
|
m_Name: Laser Turret
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
|
@ -314,11 +282,11 @@ Transform:
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 934827303}
|
m_GameObject: {fileID: 934827303}
|
||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
m_LocalPosition: {x: -11.29, y: 0.09741877, z: 2.1782916}
|
m_LocalPosition: {x: -10.01, y: -0.02, z: 0}
|
||||||
m_LocalScale: {x: 0.5, y: 0.5, z: 1}
|
m_LocalScale: {x: 0.5, y: 0.5, z: 1}
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 620680907}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 1
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!114 &934827306
|
--- !u!114 &934827306
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
|
@ -333,6 +301,7 @@ MonoBehaviour:
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
speed: 10
|
speed: 10
|
||||||
|
distance: 3
|
||||||
isHorizontal: 0
|
isHorizontal: 0
|
||||||
--- !u!120 &934827307
|
--- !u!120 &934827307
|
||||||
LineRenderer:
|
LineRenderer:
|
||||||
|
@ -374,8 +343,8 @@ LineRenderer:
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
m_Positions:
|
m_Positions:
|
||||||
- {x: -10, y: 0, z: 0}
|
- {x: 0, y: 0, z: 0}
|
||||||
- {x: 1, y: 0, z: 0}
|
- {x: 0, y: 0, z: 0}
|
||||||
m_Parameters:
|
m_Parameters:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
widthMultiplier: 0.1
|
widthMultiplier: 0.1
|
||||||
|
@ -443,6 +412,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d3775ebae34c5ac44af73819982f2b40, type: 3}
|
m_Script: {fileID: 11500000, guid: d3775ebae34c5ac44af73819982f2b40, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
flipDirection: 0
|
||||||
--- !u!1 &1320437470
|
--- !u!1 &1320437470
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -654,84 +624,3 @@ Transform:
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 2
|
m_RootOrder: 2
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
|
||||||
--- !u!1 &1748837245
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1748837247}
|
|
||||||
- component: {fileID: 1748837246}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Rail
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!212 &1748837246
|
|
||||||
SpriteRenderer:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1748837245}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_CastShadows: 0
|
|
||||||
m_ReceiveShadows: 0
|
|
||||||
m_DynamicOccludee: 1
|
|
||||||
m_MotionVectors: 1
|
|
||||||
m_LightProbeUsage: 1
|
|
||||||
m_ReflectionProbeUsage: 1
|
|
||||||
m_RayTracingMode: 0
|
|
||||||
m_RenderingLayerMask: 1
|
|
||||||
m_RendererPriority: 0
|
|
||||||
m_Materials:
|
|
||||||
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_StaticBatchInfo:
|
|
||||||
firstSubMesh: 0
|
|
||||||
subMeshCount: 0
|
|
||||||
m_StaticBatchRoot: {fileID: 0}
|
|
||||||
m_ProbeAnchor: {fileID: 0}
|
|
||||||
m_LightProbeVolumeOverride: {fileID: 0}
|
|
||||||
m_ScaleInLightmap: 1
|
|
||||||
m_ReceiveGI: 1
|
|
||||||
m_PreserveUVs: 0
|
|
||||||
m_IgnoreNormalsForChartDetection: 0
|
|
||||||
m_ImportantGI: 0
|
|
||||||
m_StitchLightmapSeams: 1
|
|
||||||
m_SelectedEditorRenderState: 0
|
|
||||||
m_MinimumChartSize: 4
|
|
||||||
m_AutoUVMaxDistance: 0.5
|
|
||||||
m_AutoUVMaxAngle: 89
|
|
||||||
m_LightmapParameters: {fileID: 0}
|
|
||||||
m_SortingLayerID: 0
|
|
||||||
m_SortingLayer: 0
|
|
||||||
m_SortingOrder: 0
|
|
||||||
m_Sprite: {fileID: 21300000, guid: 85e455eb0e01f3b4b97dec1065971269, type: 3}
|
|
||||||
m_Color: {r: 0.5188679, g: 0.5188679, b: 0.5188679, a: 1}
|
|
||||||
m_FlipX: 0
|
|
||||||
m_FlipY: 0
|
|
||||||
m_DrawMode: 0
|
|
||||||
m_Size: {x: 1, y: 1}
|
|
||||||
m_AdaptiveModeThreshold: 0.5
|
|
||||||
m_SpriteTileMode: 0
|
|
||||||
m_WasSpriteAssigned: 1
|
|
||||||
m_MaskInteraction: 0
|
|
||||||
m_SpriteSortPoint: 0
|
|
||||||
--- !u!4 &1748837247
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1748837245}
|
|
||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
|
||||||
m_LocalPosition: {x: -11.598234, y: 0.09941877, z: 2.1782916}
|
|
||||||
m_LocalScale: {x: 0.29290247, y: 9.713962, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 620680907}
|
|
||||||
m_RootOrder: 1
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
|
|
|
@ -4,21 +4,36 @@ using UnityEngine;
|
||||||
|
|
||||||
public class Laser : MonoBehaviour
|
public class Laser : MonoBehaviour
|
||||||
{
|
{
|
||||||
float maxDistance = 500.0f;
|
public bool flipDirection;
|
||||||
|
|
||||||
|
float maxDistance = 1000.0f;
|
||||||
|
bool isHorizontal;
|
||||||
LineRenderer laserLine;
|
LineRenderer laserLine;
|
||||||
|
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
laserLine = GetComponent<LineRenderer>();
|
laserLine = GetComponent<LineRenderer>();
|
||||||
|
isHorizontal = GetComponent<Turret>().isHorizontal;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.right);
|
laserLine.SetPosition(0, transform.position);
|
||||||
float endpointX = maxDistance;
|
|
||||||
|
if (isHorizontal)
|
||||||
|
{
|
||||||
|
float endpointY = flipDirection ? transform.position.y - maxDistance : transform.position.y + maxDistance;
|
||||||
|
RaycastHit2D hit = Physics2D.Raycast(transform.position, flipDirection ? Vector2.down : Vector2.up);
|
||||||
|
|
||||||
|
if (hit.collider) endpointY = hit.collider.transform.position.y;
|
||||||
|
laserLine.SetPosition(1, new Vector3(transform.position.x, endpointY, 0));
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
float endpointX = flipDirection ? transform.position.x - maxDistance : transform.position.x + maxDistance;
|
||||||
|
RaycastHit2D hit = Physics2D.Raycast(transform.position, flipDirection ? Vector2.left : Vector2.right);
|
||||||
|
|
||||||
if (hit.collider) endpointX = hit.collider.transform.position.x;
|
if (hit.collider) endpointX = hit.collider.transform.position.x;
|
||||||
laserLine.SetPosition (0, new Vector3(transform.position.x, transform.position.y, 0));
|
|
||||||
laserLine.SetPosition(1, new Vector3(endpointX, transform.position.y, 0));
|
laserLine.SetPosition(1, new Vector3(endpointX, transform.position.y, 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -4,12 +4,38 @@ using UnityEngine;
|
||||||
|
|
||||||
public class Turret : MonoBehaviour
|
public class Turret : MonoBehaviour
|
||||||
{
|
{
|
||||||
public float speed = 10;
|
public float speed = 10.0f;
|
||||||
|
public float distance = 2.0f;
|
||||||
public bool isHorizontal = false;
|
public bool isHorizontal = false;
|
||||||
|
|
||||||
|
float startX;
|
||||||
|
float startY;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
startX = transform.position.x;
|
||||||
|
startY = transform.position.y;
|
||||||
|
}
|
||||||
|
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
transform.position += getMovementVector() * speed * Time.deltaTime;
|
Vector3 movementVector = getMovementVector();
|
||||||
|
|
||||||
|
if (allowMovement(movementVector)) moveTurret(movementVector);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool allowMovement(Vector3 movementVector)
|
||||||
|
{
|
||||||
|
bool moveUp = movementVector.y > 0;
|
||||||
|
bool moveDown = movementVector.y < 0;
|
||||||
|
bool moveRight = movementVector.x > 0;
|
||||||
|
bool moveLeft = movementVector.x < 0;
|
||||||
|
|
||||||
|
if (moveUp && transform.position.y >= startY + distance) return false;
|
||||||
|
if (moveDown && transform.position.y <= startY - distance) return false;
|
||||||
|
if (moveRight && transform.position.x >= startX + distance) return false;
|
||||||
|
if (moveLeft && transform.position.x <= startX - distance) return false;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector3 getMovementVector()
|
Vector3 getMovementVector()
|
||||||
|
@ -19,4 +45,17 @@ public class Turret : MonoBehaviour
|
||||||
|
|
||||||
return new Vector3(x, y, 0);
|
return new Vector3(x, y, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void moveTurret(Vector3 movementVector)
|
||||||
|
{
|
||||||
|
transform.position += movementVector * speed * Time.deltaTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDrawGizmosSelected()
|
||||||
|
{
|
||||||
|
Vector3 offset = isHorizontal ? new Vector3(distance, 0, 0) : new Vector3(0, distance, 0);
|
||||||
|
|
||||||
|
Gizmos.color = Color.red;
|
||||||
|
Gizmos.DrawLine(transform.position - offset, transform.position + offset);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue