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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
3
Assets/Scripts/Units/ILockOnTarget.cs.meta
Normal file
3
Assets/Scripts/Units/ILockOnTarget.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3cf599680bc840b59ee6ea3cd0114ab8
|
||||||
|
timeCreated: 1765311171
|
||||||
@@ -1,54 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using UnityEngine;
|
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class PlayerCamera : MonoBehaviour{
|
public class PlayerCamera : MonoBehaviour{
|
||||||
void Start(){
|
void Start(){
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user