Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions Assets/Prefabs/Unit.prefab
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ GameObject:
- component: {fileID: 4230525904207381883}
- component: {fileID: 4230525904207381880}
- component: {fileID: 4230525904207381881}
- component: {fileID: -6529376481025236616}
- component: {fileID: -8548596752862253275}
m_Layer: 0
m_Name: Unit
m_TagString: Untagged
Expand Down Expand Up @@ -116,6 +118,40 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
selectedIndicator: {fileID: 5503896601731364458}
--- !u!50 &-6529376481025236616
Rigidbody2D:
serializedVersion: 4
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4230525904207381876}
m_BodyType: 0
m_Simulated: 1
m_UseFullKinematicContacts: 0
m_UseAutoMass: 0
m_Mass: 1
m_LinearDrag: 0
m_AngularDrag: 0.05
m_GravityScale: 0
m_Material: {fileID: 0}
m_Interpolate: 0
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 4
--- !u!114 &-8548596752862253275
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4230525904207381876}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 87670e1830ba2774bb8e7efda1a9a330, type: 3}
m_Name:
m_EditorClassIdentifier:
speed: 5
--- !u!1 &5503896601731364458
GameObject:
m_ObjectHideFlags: 0
Expand Down
116 changes: 58 additions & 58 deletions Assets/Scenes/SampleScene.unity
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 5
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!60 &336780108
PolygonCollider2D:
Expand Down Expand Up @@ -236,63 +236,6 @@ PolygonCollider2D:
- - {x: 0, y: 0.5773587}
- {x: -0.5, y: -0.28866667}
- {x: 0.5, y: -0.28866667}
--- !u!1001 &389938922
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4230525904207381876, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_Name
value: Unit (1)
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalPosition.x
value: 2.076311
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalPosition.y
value: 1.1068352
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
--- !u!1 &519420028
GameObject:
m_ObjectHideFlags: 0
Expand Down Expand Up @@ -377,6 +320,63 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &838571664
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4230525904207381876, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_Name
value: Unit (1)
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_RootOrder
value: 5
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalPosition.x
value: 0.27
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalPosition.y
value: 0.35
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4230525904207381882, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a8bd984924ce1094ca9ddfae49c14cfc, type: 3}
--- !u!1 &1178957205
GameObject:
m_ObjectHideFlags: 0
Expand Down
9 changes: 9 additions & 0 deletions Assets/Scripts/Unit.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,12 @@ public class Unit : MonoBehaviour
{
[SerializeField] private GameObject selectedIndicator;

private UnitMovement unitMovement;

private void Awake()
{
unitMovement = GetComponent<UnitMovement>();

Deselect();
}

Expand All @@ -18,4 +22,9 @@ public void Deselect()
{
selectedIndicator.SetActive(false);
}

public void MoveTo(Vector3 targetPosition)
{
unitMovement.SetMovePosition(targetPosition);
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using UnityEngine;

public class UnitSelector : MonoBehaviour
public class UnitController : MonoBehaviour
{
[SerializeField] private Transform selectionArea;

Expand Down Expand Up @@ -32,6 +32,18 @@ private void Update()
{
SelectUnits();
}

if (Input.GetMouseButton(1))
{
List<Vector3> targetPositions = GetTargetPositions();
int targetIndex = 0;

foreach (Unit unit in selectedUnits)
{
unit.MoveTo(targetPositions[targetIndex]);
targetIndex++;
}
}
}

private void StartSelection()
Expand Down Expand Up @@ -89,4 +101,30 @@ private Vector3 GetMouseWorldPosition()

return worldPosition;
}

private List<Vector3> GetTargetPositions()
{
List<Vector3> targetPositions = new List<Vector3>();
int multiplier = selectedUnits.Count / -2;
Vector3 centre = GetMouseWorldPosition();
int x = 0;

if (selectedUnits.Count == 1 || selectedUnits.Count % 2 != 0)
{
x = 10 * multiplier;
}
else
{
x = 10 * multiplier + 5;
}

for (int i = 0; i < selectedUnits.Count; i++)
{
targetPositions.Add(new Vector3(centre.x + x, centre.y));

x += 10;
}

return targetPositions;
}
}
39 changes: 39 additions & 0 deletions Assets/Scripts/UnitMovement.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class UnitMovement : MonoBehaviour
{
[SerializeField] private float speed = 1f;

private Rigidbody2D rigidbody2d;
private Vector3 moveDirection;
private Vector3 movePosition;

private void Awake()
{
rigidbody2d = GetComponent<Rigidbody2D>();
movePosition = transform.position;
}

// Update is called once per frame
private void Update()
{
moveDirection = (movePosition - transform.position).normalized;

if (Vector3.Distance(movePosition, transform.position) < 0f)
{
moveDirection = Vector3.zero;
}
}

private void FixedUpdate()
{
rigidbody2d.velocity = moveDirection * speed;
}

public void SetMovePosition(Vector3 movePosition)
{
this.movePosition = movePosition;
}
}
11 changes: 11 additions & 0 deletions Assets/Scripts/UnitMovement.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading