maint: ILockOnTarget moved to own file
This commit is contained in:
49
Assets/Scripts/Units/ILockOnTarget.cs
Normal file
49
Assets/Scripts/Units/ILockOnTarget.cs
Normal file
@@ -0,0 +1,49 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Reset.Units{
|
||||
public interface ILockOnTarget{
|
||||
public float lockonTargetRadius{ set; get; }
|
||||
public bool lockonDebug{ set; get; }
|
||||
|
||||
public float lockonRaycastVerticalOffset{ set; get; }
|
||||
|
||||
Transform transform{ get; }
|
||||
GameObject gameObject{ get; }
|
||||
|
||||
abstract void OnTargetDelete();
|
||||
|
||||
void Help(){
|
||||
SafelyDeleteTarget();
|
||||
}
|
||||
|
||||
public Vector3 GetReticlePosition(){
|
||||
float upValue = 0f;
|
||||
|
||||
if (gameObject.GetComponent<Renderer>()) {
|
||||
Bounds objectBounds = gameObject.GetComponent<Renderer>().bounds;
|
||||
upValue = objectBounds.size.y;
|
||||
upValue = 4f;
|
||||
}
|
||||
|
||||
Vector3 reticlePosition =
|
||||
new Vector3(transform.position.x, transform.position.y + upValue, transform.position.z);
|
||||
|
||||
return reticlePosition;
|
||||
}
|
||||
|
||||
public void SafelyDeleteTarget(){
|
||||
// gameObject.
|
||||
foreach (LockOnManager.ActiveLockOnTarget target in LockOnManager.Instance.activeTargets) {
|
||||
if (target.gameObject == this.gameObject) {
|
||||
GameObject clone = new GameObject
|
||||
{ name = $"Target Clone of {gameObject.name}", transform = { position = transform.position } };
|
||||
|
||||
target.gameObject = clone;
|
||||
target.cinemachineTarget.Object = clone.transform;
|
||||
|
||||
LockOnManager.Instance.QueueTargetRemoval(clone, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user