当前位置:   article > 正文

Unity2D简单实现物体跟随鼠标移动并旋转_unity2d物体跟随鼠标旋转

unity2d物体跟随鼠标旋转

效果图如下

代码如下

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class FollowMouse : MonoBehaviour {
  5. // Use this for initialization
  6. void Start () {
  7. }
  8. // Update is called once per frame
  9. void Update () {
  10. FollowMouseRotate();
  11. FollowMouseMove();
  12. }
  13. //物体跟随鼠标旋转
  14. private void FollowMouseRotate()
  15. {
  16. //获取鼠标的坐标,鼠标是屏幕坐标,Z轴为0,这里不做转换  
  17. Vector3 mouse = Input.mousePosition;
  18. //获取物体坐标,物体坐标是世界坐标,将其转换成屏幕坐标,和鼠标一直  
  19. Vector3 obj = Camera.main.WorldToScreenPoint(transform.position);
  20. //屏幕坐标向量相减,得到指向鼠标点的目标向量,即黄色线段  
  21. Vector3 direction = mouse - obj;
  22. //将Z轴置0,保持在2D平面内  
  23. direction.z = 0f;
  24. //将目标向量长度变成1,即单位向量,这里的目的是只使用向量的方向,不需要长度,所以变成1  
  25. direction = direction.normalized;
  26. //物体自身的Y轴和目标向量保持一直,这个过程XY轴都会变化数值  
  27. transform.up = direction;
  28. }
  29. //跟随鼠标移动
  30. private void FollowMouseMove()
  31. {
  32. float moveSpeed = 3.0f;
  33. if (Input.GetMouseButton(0)) //如果按下鼠标左键,移动速度变快
  34. {
  35. moveSpeed = 6.0f;
  36. transform.Translate(Vector3.up * moveSpeed * Time.deltaTime);
  37. }
  38. else
  39. {
  40. transform.Translate(Vector3.up * moveSpeed * Time.deltaTime);
  41. }
  42. }
  43. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/98295
推荐阅读
  

闽ICP备14008679号