1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
using UnityEngine;
namespace UnityEngine.Graphs.LogicGraph
{
public partial class TransformNodes
{
[Logic(typeof(Transform))]
public sealed class LookAt : YieldedTransformNodeBase
{
private readonly ILookAtRotationCalculator m_RotationCalculator;
private Quaternion m_InitialRotation;
private Vector3 m_TargetRelativePosition;
public override Transform target { set { m_Target = value; } }
public Vector3 targetOffset { set { m_TargetRelativePosition = value; } }
public LookAt ()
{
m_RotationCalculator = StandardLookAtRotationCalculator.s_Instance;
}
public LookAt (Transform self, Transform target, Vector3 targetRelativePosition, float time, ILookAtRotationCalculator rotationCalculator) : base (self, target, time)
{
m_TargetRelativePosition = targetRelativePosition;
m_RotationCalculator = rotationCalculator;
}
protected override void OnStart()
{
m_InitialRotation = self.rotation;
}
protected override void OnUpdate()
{
self.rotation = m_RotationCalculator.CalculateRotation(self, m_Target, m_TargetRelativePosition, m_InitialRotation, m_Percentage, m_Curve);
}
protected override void OnDone()
{
self.rotation = m_RotationCalculator.CalculateRotation(self, m_Target, m_TargetRelativePosition, m_InitialRotation, 1.0f, m_Curve);
}
}
}
}
|