Unity3D简单实现游戏对象跟随鼠标旋转
来源:互联网 发布:java访问次数 编辑:程序博客网 时间:2024/06/08 07:23
[SerializeField] LayerMask whatIsGround; void Update(){ Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); Debug.Log(ray); RaycastHit hitInfo; if(Physics.Raycast(ray, out hitInfo, 200, whatIsGround)){ Vector3 target = hitInfo.point; target.y = transform.position.y; transform.LookAt(target); }
解释:
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Camera.Main是获取第一个启用且被标记为”MainCamera”的相机。
ScreenPointToRay(Input.mousePosition);
通过MainCamera射出一道无限延伸的射线到Mouse的位置。
Ray类型包含一个Origin(圆点)和一个Direction(方向)两个三位坐标属性,Origin跟随鼠标的移动而改变,Direction始终是朝向MainCamera的方向。
RaycastHit hitInfo;
RaycastHit所包含的数据很多,这里主要用的其中的"Point"这一属性。
public static bool Raycast (Ray ray, out RaycastHit hitInfo, floatmaxDistance, int layerMask);Raycast返回一个bool值,判断射线是否与指定的遮罩层(layerMask)碰撞器产生碰撞。
Transform.LookAt(target);
可能会遇到的问题:
- 通过Debug.Log()输出Ray变量有数值,但是玩家不跟随鼠标移动而转向。
可以通过Debug.Log()检查Physics.Raycast()返回的bool是否为真,如果不是,检查场景内的地板Layer是否标记为对应的layerMask。
阅读全文
0 0
- Unity3D简单实现游戏对象跟随鼠标旋转
- [unity3d]如何实现游戏对象跟随鼠标方向移动
- [脚本]实现游戏对象跟随鼠标方向移动
- [脚本]实现游戏对象跟随鼠标方向移动
- Unity3d实现相机的跟随缩放旋转
- Unity3d GUI中的图片跟随鼠标旋转脚本
- Unity3D GUI中的图片跟随鼠标旋转脚本
- Unity3D之物体跟随鼠标移动和旋转
- [Unity3D]Unity3D游戏开发之鼠标旋转、缩放实现3D物品展示
- [Unity3D]Unity3D游戏开发之鼠标旋转、缩放实现3D物品展示
- [Unity3D]Unity3D游戏开发之鼠标旋转、缩放实现3D物品展示
- 游戏人物跟随鼠标移动的实现
- 跟随鼠标旋转背景
- Unity3D 2D游戏鼠标点击选中对象如何实现
- Unity之2d对象跟随鼠标旋转
- 代码实现鼠标跟随简单动画
- Unity3D游戏开发之鼠标旋转、缩放实现3D物品展示
- uinty实现玩家跟随鼠标位置平滑旋转角度
- 多后悔大一没有坚持搞算法
- 【面经笔记】
- Caffe添加自定义层-自定义loss
- 字段数据类型
- 卷积深入浅出
- Unity3D简单实现游戏对象跟随鼠标旋转
- Qt自定义图片按钮并设置方向
- 某笔试题二(socket)
- 判断单链表是否带环?若带环,求环的长度,求环的入口点
- MAVLink—最强大的微型飞行器通信协议
- 数字串重排后输出最小数据 java
- Mysql学习之路06-外键
- 关于调用Dao层Save方法后产生Write operations are not allowed in read-only mode (FlushMode.MANUAL)错误导致访问页面显示404
- python初学温度转换实例讲解