Can someone please modified this action. I tried to do it myself but fail to get it right.
Instead of rotating Z axis, Can anyone change it to rotating the Y axis instead??
Thank you!!
// (c) Copyright HutongGames, LLC 2010-2014. All rights reserved.
// original action created by collidernyc: http://hutonggames.com/playmakerforum/index.php?topic=7075.msg37373#msg37373
//--- __ECO__ __ACTION__ ---//
using UnityEngine;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory(ActionCategory.Transform)]
[Tooltip("Rotates a 2d Game Object on it's z axis so its forward vector points at a Target.")]
public class LookAt2dGameObject : FsmStateAction
{
[RequiredField]
[Tooltip("The GameObject to rotate.")]
public FsmOwnerDefault gameObject;
[Tooltip("The GameObject to Look At.")]
public FsmGameObject targetObject;
[Tooltip("Set the GameObject starting offset. In degrees. 0 if your object is facing right, 180 if facing left etc...")]
public FsmFloat rotationOffset;
[Title("Draw Debug Line")]
[Tooltip("Draw a debug line from the GameObject to the Target.")]
public FsmBool debug;
[Tooltip("Color to use for the debug line.")]
public FsmColor debugLineColor;
[Tooltip("Repeat every frame.")]
public bool everyFrame = true;
private GameObject go;
private GameObject goTarget;
private Vector3 lookAtPos;
public override void Reset()
{
gameObject = null;
targetObject = null;
debug = false;
debugLineColor = Color.green;
everyFrame = true;
}
public override void OnEnter()
{
DoLookAt();
if (!everyFrame)
{
Finish();
}
}
public override void OnUpdate()
{
DoLookAt();
}
void DoLookAt()
{
go = Fsm.GetOwnerDefaultTarget(gameObject);
goTarget = targetObject.Value;
if (go == null || targetObject == null)
{
return;
}
Vector3 diff = goTarget.transform.position - go.transform.position;
diff.Normalize();
float rot_z = Mathf.Atan2(diff.y, diff.x) * Mathf.Rad2Deg;
go.transform.rotation = Quaternion.Euler(0f, 0f, rot_z - rotationOffset.Value);
if (debug.Value)
{
Debug.DrawLine(go.transform.position, goTarget.transform.position, debugLineColor.Value);
}
}
}
}