unity3d 通过向量求目标位置
2013-11-08 05:05
323 查看
1.坐标点转为屏幕中的点
var scp:Vector3=Camera.main.WordToScreenPoint(transform.position);
2.屏幕中的点转为世界坐标点
var lastKnowPosition = camera.mian.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,scp.z));
3.向量坐标相减 得到鼠标点中的屏幕到物体的方向向量
var direction:Vector3=transform.position-lastKnowPosition;
4.点中位置到物体的距离*单位化方向向量值 +物体原有的位置 =物体现有位置
direction.Normalize();
var magnitude:float=Mathf.Min(Vector3.Distance(transform.position,lastKnowPosition),2.5f);
transform.position=transform.position+(-direction*magnitude);
var scp:Vector3=Camera.main.WordToScreenPoint(transform.position);
2.屏幕中的点转为世界坐标点
var lastKnowPosition = camera.mian.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,scp.z));
3.向量坐标相减 得到鼠标点中的屏幕到物体的方向向量
var direction:Vector3=transform.position-lastKnowPosition;
4.点中位置到物体的距离*单位化方向向量值 +物体原有的位置 =物体现有位置
direction.Normalize();
var magnitude:float=Mathf.Min(Vector3.Distance(transform.position,lastKnowPosition),2.5f);
transform.position=transform.position+(-direction*magnitude);
相关文章推荐
- unity3d 通过向量求目标位置
- 通过修改注册表来改变桌面的文件所的目标位置
- unity3D MiniMap等比例映射的实现(一) 通过Image做小地图背景,Player实时更新位置在小地图上
- unity3D学习【功能实现】之十二:指定时间移动到目标位置
- unity3D基础学习 通过判断鼠标点击的是否是目标物体,物体旋转,滑动滚轮缩放拉近视角
- openstack 通过service 查看每个service的存放log的位置
- 通过javascript 获取当前地理位置 所在城市
- 借助第三方插件(有道)通过ip获取用户所在的地理位置
- Android 通过经纬度获取地理位置信息
- Unity3d 通过json文件使用C#脚本代码生成多个相机
- 一种通过self-attention机制生成多维度aspect的句向量模型
- Delphi通过开启远程线程注射DLL至目标进程
- 通过分类(Category)更改UINavigationItem位置,LeftBarButtonItem,RightBarButtonItem位置
- Unity3D_向量(Vector3)数学基础
- Android Map Api 使用和开发(2) 定位我的位置、地图弹出泡泡、通过经纬度获取地址
- 搭建tomcat服务器,目标可通过外网ip访问本机
- Windows Azure真实案例:Glympse 位置分享解决方案提供商通过托管服务获得了生产力和敏捷性
- JQuery之点击目标元素之外的位置的动作
- uboot通过bootargs设置根文件系统的启动位置
- Windows Azure真实案例:Glympse 位置分享解决方案提供商通过托管服务获得了生产力和敏捷性