unity 2D 物体跟随鼠标旋转 移动
2024-08-24 01:28:05
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class FollowMouse:MonoBehaviour { // Use this for initialization
void Start() { } // Update is called once per frame
void Update() {
FollowMouseRotate();
FollowMouseMove();
} //物体跟随鼠标旋转
private void FollowMouseRotate() {
//获取鼠标的坐标,鼠标是屏幕坐标,Z轴为0,这里不做转换
Vector3 mouse = Input.mousePosition;
//获取物体坐标,物体坐标是世界坐标,将其转换成屏幕坐标,和鼠标一直
Vector3 obj = Camera.main.WorldToScreenPoint(transform.position);
//屏幕坐标向量相减,得到指向鼠标点的目标向量,即黄色线段
Vector3 direction = mouse - obj;
//将Z轴置0,保持在2D平面内
direction.z = 0f;
//将目标向量长度变成1,即单位向量,这里的目的是只使用向量的方向,不需要长度,所以变成1
direction = direction.normalized;
//物体自身的Y轴和目标向量保持一直,这个过程XY轴都会变化数值
transform.up = direction;
} //跟随鼠标移动
private void FollowMouseMove() {
float moveSpeed = 3.0f;
if(Input.GetMouseButton(0)) //如果按下鼠标左键,移动速度变快
{
moveSpeed = 6.0f;
transform.Translate(Vector3.up * moveSpeed * Time.deltaTime);
} else {
transform.Translate(Vector3.up * moveSpeed * Time.deltaTime);
}
}
}
转载:(19条消息) Unity2D简单实现物体跟随鼠标移动并旋转_雨牧_的博客-CSDN博客_unity 物体跟随鼠标旋转
最新文章
- CodeForces 485C Bits[贪心 二进制]
- JavaAnnotation和反射简化开发
- c++ std::string.c_str()
- Java递归搜索指定文件夹下的匹配文件
- Mybatis Interceptor 拦截器原理 源码分析
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.5.安装Grid,创建ASM磁盘组空间不足
- orcale 修改字段属性
- String inputStream file转化
- [NOIP2009] 靶形数独 骚气的大爆搜
- WeChat 隐私政策
- .NetCore下利用Jenkins如何将程序自动打包发布到Docker容器中运行
- 三、spring boot 1.5.4 web容器定制(端口号等修改)
- python编程之禅
- 点分治&;&;动态点分治学习笔记
- HDU4745——Two Rabbits——2013 ACM/ICPC Asia Regional Hangzhou Online
- Asakura的魔法世界
- CentOS6.6安装heartbeat配置资源切换操作笔记实现高可用(原创)
- 构造函数、析构函数、赋值与初始化、explicit关键字
- Realm的常规使用与线程中的坑
- angular.module方法