Unity物体跟随鼠标移动,限制物体移动范围和物体的y值

Unity物体跟随鼠标移动,并且限制物体的移动范围和物体的y值

1.在场景中创建一个Cube
2.创建一个脚本test2,(名字比较随意,正式开发还是规范些比较好)
3.把脚本挂载到Cube上,然后打开test2脚本,把下面C#代码拷贝进去,里面的变量和执行过程都有注释的

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test2 : MonoBehaviour
{
    public float fixedY = 1.0f;//固定物体的y值 这个值在编辑器中可做调整
    Vector3 screenPosition;//将物体从世界坐标转换为屏幕坐标
    Vector3 mousePositionOnScreen;//获取到点击屏幕的屏幕坐标
    Vector3 mousePositionInWorld;//点击屏幕的屏幕坐标转换为世界坐标

    void Update()
    {
         //将物体的世界坐标转换成屏幕坐标
        screenPosition = Camera.main.WorldToScreenPoint(transform.position);
        //获取鼠标在场景中坐标
        mousePositionOnScreen = Input.mousePosition;
        //限制物体移动范围在20 (如果不限制的话,移动鼠标到很远的地方,物体都不知道飞哪去了)
        mousePositionOnScreen.z = screenPosition.z > 20.0f ? 20.0f : screenPosition.z;
        //将鼠标的屏幕坐标转化为世界坐标
        mousePositionInWorld = Camera.main.ScreenToWorldPoint(mousePositionOnScreen);
        //限制物体移动的y值
        mousePositionInWorld.y = fixedY;
        //物体跟随鼠标移动
        transform.position = mousePositionInWorld;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值