58 lines
1.5 KiB
C#
58 lines
1.5 KiB
C#
using System;
|
|
using UnityEngine;
|
|
|
|
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{
|
|
void Start(){
|
|
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void LateUpdate(){
|
|
|
|
}
|
|
}
|