SpineboyTargetController.cs 824 B

12345678910111213141516171819202122232425262728293031
  1. using UnityEngine;
  2. namespace Spine.Unity.Examples {
  3. public class SpineboyTargetController : MonoBehaviour {
  4. public SkeletonAnimation skeletonAnimation;
  5. [SpineBone(dataField:"skeletonAnimation")]
  6. public string boneName;
  7. public new Camera camera;
  8. Bone bone;
  9. void OnValidate () {
  10. if (skeletonAnimation == null) skeletonAnimation = GetComponent<SkeletonAnimation>();
  11. }
  12. void Start () {
  13. bone = skeletonAnimation.Skeleton.FindBone(boneName);
  14. }
  15. void Update () {
  16. var mousePosition = Input.mousePosition;
  17. var worldMousePosition = camera.ScreenToWorldPoint(mousePosition);
  18. var skeletonSpacePoint = skeletonAnimation.transform.InverseTransformPoint(worldMousePosition);
  19. if (skeletonAnimation.Skeleton.FlipX) skeletonSpacePoint.x *= -1;
  20. bone.SetPosition(skeletonSpacePoint);
  21. }
  22. }
  23. }