lab1 base

This commit is contained in:
MrTorex committed 2026-02-06 10:06:04 +03:00
1 parent bcc8782a99
commit fcfa11c284
10 files changed
+142

No files matched your search

+5
View File
@@ -7,6 +7,11 @@ namespace Code.Base
public GameObject target; public GameObject target;
protected Agent Agent; protected Agent Agent;
public virtual void Awake()
{
Agent = GetComponent<Agent>();
}
public virtual void Update() public virtual void Update()
{ {
Agent.SetSteering(GetSteering()); Agent.SetSteering(GetSteering());
+3
View File
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d7cf9369a03c4325914d2dd923ef315f
timeCreated: 1770360608
+42
View File
@@ -0,0 +1,42 @@
using Code.Base;
using UnityEngine;
namespace Code.Lab1
{
public class Evade : Flee
{
public float maxPrediction;
private GameObject _targetAux;
private Agent _targetAgent;
public override void Awake()
{
base.Awake();
_targetAgent = target.GetComponent<Agent>();
_targetAux = target;
target = new GameObject();
}
private void OnDestroy()
{
Destroy(_targetAux);
}
public override Steering GetSteering()
{
var direction = _targetAux.transform.position - transform.position;
var distance = direction.magnitude;
var speed = Agent.velocity.magnitude;
float prediction;
if (speed <= distance / maxPrediction)
prediction = maxPrediction;
else
prediction = distance / speed;
target.transform.position = _targetAux.transform.position;
target.transform.position += _targetAgent.velocity * prediction;
return base.GetSteering();
}
}
}
+3
View File
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 0ca3f96f0e3e4d4689a7fd323f40553c
timeCreated: 1770361482
+19
View File
@@ -0,0 +1,19 @@
using Code.Base;
namespace Code.Lab1
{
public class Flee : AgentBehaviour
{
public override Steering GetSteering()
{
var steering = new Steering
{
Linear = transform.position - target.transform.position
};
steering.Linear.Normalize();
steering.Linear *= Agent.maxAcceleration;
return steering;
}
}
}
+3
View File
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f4548b6a916c440b8868ad33fe6f7ace
timeCreated: 1770360860
+42
View File
@@ -0,0 +1,42 @@
using Code.Base;
using UnityEngine;
namespace Code.Lab1
{
public class Pursue : Seek
{
public float maxPrediction;
private GameObject _targetAux;
private Agent _targetAgent;
public override void Awake()
{
base.Awake();
_targetAgent = target.GetComponent<Agent>();
_targetAux = target;
target = new GameObject();
}
private void OnDestroy()
{
Destroy(_targetAux);
}
public override Steering GetSteering()
{
var direction = _targetAux.transform.position - transform.position;
var distance = direction.magnitude;
var speed = Agent.velocity.magnitude;
float prediction;
if (speed <= distance / maxPrediction)
prediction = maxPrediction;
else
prediction = distance / speed;
target.transform.position = _targetAux.transform.position;
target.transform.position += _targetAgent.velocity * prediction;
return base.GetSteering();
}
}
}
+3
View File
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 6ec8d34239cc41588d59d9fc17112c25
timeCreated: 1770361071
+19
View File
@@ -0,0 +1,19 @@
using Code.Base;
namespace Code.Lab1
{
public class Seek : AgentBehaviour
{
public override Steering GetSteering()
{
var steering = new Steering
{
Linear = target.transform.position - transform.position
};
steering.Linear.Normalize();
steering.Linear *= Agent.maxAcceleration;
return steering;
}
}
}
+3
View File
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a8ff81d84dc54a1fa40f2ebff39c9ef6
timeCreated: 1770360733