58 lines
910 B
C#
58 lines
910 B
C#
using System;
|
|
using UnityEngine;
|
|
|
|
namespace RoR2;
|
|
|
|
[ExecuteAlways]
|
|
public class LookAtTransform : MonoBehaviour
|
|
{
|
|
public enum Axis
|
|
{
|
|
Right,
|
|
Left,
|
|
Up,
|
|
Down,
|
|
Forward,
|
|
Backward
|
|
}
|
|
|
|
public Transform target;
|
|
|
|
public Axis axis = Axis.Forward;
|
|
|
|
private void LateUpdate()
|
|
{
|
|
if (!target)
|
|
{
|
|
return;
|
|
}
|
|
Vector3 vector = target.position - base.transform.position;
|
|
if (!(vector == Vector3.zero))
|
|
{
|
|
switch (axis)
|
|
{
|
|
case Axis.Right:
|
|
base.transform.right = vector;
|
|
break;
|
|
case Axis.Left:
|
|
base.transform.right = -vector;
|
|
break;
|
|
case Axis.Up:
|
|
base.transform.up = vector;
|
|
break;
|
|
case Axis.Down:
|
|
base.transform.right = -vector;
|
|
break;
|
|
case Axis.Forward:
|
|
base.transform.forward = vector;
|
|
break;
|
|
case Axis.Backward:
|
|
base.transform.forward = -vector;
|
|
break;
|
|
default:
|
|
throw new ArgumentOutOfRangeException();
|
|
}
|
|
}
|
|
}
|
|
}
|