屏幕内跟随鼠标移动(鼠标点击一个位置,物体移动到该位置)

本文介绍了一种在Unity中使物体能够跟随鼠标移动的方法。通过将物体的世界坐标转换为屏幕坐标,并使用鼠标位置更新物体位置,实现了物体平滑地移动到鼠标所在位置的功能。此外,还提供了一个简单的速度控制机制。

Vector3 world;//物体要移动到的位置 (世界坐标系)     
float moveSpeed = 0;//物体移动速度 
void Update()
{
//将物体的世界坐标转换为屏幕坐标        
Vector3 targetposition = Camera.main.WorldToScreenPoint(this.transform.position);
//鼠标在屏幕上的位置坐标 
Vector3 mouseposition = Input.mousePosition;
if (Input.GetMouseButton(0))
{
mouseposition.z = targetposition.z;
//world=Camera.main.ScreenToWorldPoint(mouseposition);
//这种情况下 会有穿透现象
world.x = Camera.main.ScreenToWorldPoint(mouseposition).x;
world.z = Camera.main.ScreenToWorldPoint(mouseposition).z;
world.y = this.transform.position.y;
moveSpeed = 3;
}
if (this.transform.position == world)
{
//如果物体移动到了鼠标指定的位置 将移动速度设为0 
moveSpeed = 0;
}
this.transform.LookAt(world);//物体朝向鼠标对应的位置 (此时的位置为世界坐标系) 
this.transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
}

转载于:https://www.cnblogs.com/Study088/p/7298704.html

在Cocos Creator中实现点击物体后使其跟随鼠标移动,可以按照以下步骤进行: ### 1. 创建节点和脚本 首先,在场景中创建一个需要跟随鼠标移动的节点,例如一个精灵节点。然后,创建一个新的脚本文件,例如 `FollowMouse.js`。 ### 2. 编写脚本代码 以下是 `FollowMouse.js` 的代码示例: ```javascript cc.Class({ extends: cc.Component, properties: { // 可以在这里添加一些需要的属性 }, onLoad () { // 监听触摸开始事件 this.node.on(cc.Node.EventType.TOUCH_START, this.onTouchStart, this); // 监听触摸移动事件 this.node.on(cc.Node.EventType.TOUCH_MOVE, this.onTouchMove, this); // 监听触摸结束事件 this.node.on(cc.Node.EventType.TOUCH_END, this.onTouchEnd, this); this.node.on(cc.Node.EventType.TOUCH_CANCEL, this.onTouchEnd, this); // 用于记录触摸开始时的偏移量 this.offset = cc.v2(0, 0); }, onTouchStart (event) { // 获取触摸点在世界坐标系中的位置 let touchPos = event.getLocation(); // 将触摸点的位置转换为节点所在的本地坐标系位置 let localPos = this.node.parent.convertToNodeSpaceAR(touchPos); // 计算触摸点相对于节点锚点的偏移量 this.offset = localPos.sub(this.node.position); }, onTouchMove (event) { // 获取触摸点在世界坐标系中的位置 let touchPos = event.getLocation(); // 将触摸点的位置转换为节点所在的本地坐标系位置 let localPos = this.node.parent.convertToNodeSpaceAR(touchPos); // 根据偏移量计算节点的新位置 this.node.position = localPos.sub(this.offset); }, onTouchEnd () { // 触摸结束时可以做一些清理工作 }, start () { }, update (dt) { }, }); ``` ### 3. 挂载脚本 将 `FollowMouse.js` 脚本挂载到需要跟随鼠标移动的节点上。 ### 4. 运行测试 运行项目,点击挂载了脚本的节点,然后拖动鼠标,节点就会跟随鼠标移动。 ### 代码解释 - `onLoad` 方法中,为节点添加了触摸开始、触摸移动和触摸结束事件的监听。 - `onTouchStart` 方法中,记录了触摸点相对于节点锚点的偏移量。 - `onTouchMove` 方法中,根据触摸点的位置和偏移量计算节点的新位置,并更新节点的位置。 - `onTouchEnd` 方法中,可以进行一些清理工作。 通过以上步骤,就可以在Cocos Creator中实现点击物体后使其跟随鼠标移动的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值