unity 相机选择物体沿射线相机平移到物体周围
2016-10-19 15:32
513 查看
相机选择物体,选中之后,相机会沿射线相机平移到物体周围,这是我一个小伙伴写的,现在把它发表出来,十分感觉小伙伴的支持!
注意:物体必须有collider组件
代码:using UnityEngine;
using System.Collections;
using System;
public class RayToMove : MonoBehaviour
{
Vector3 Target = new Vector3();
private bool NoTarget = true;
public float speed=100;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButton(0)) {
Ray MoveRay = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit RayInf = new RaycastHit();
if (Physics.Raycast(MoveRay, out RayInf))
{
if (RayInf.collider.name != "Plane")//设置选中名为plane的地形不移动
{
Target = RayInf.point;
NoTarget = false;
}
}
}
MoveTo(Target);
}
private void MoveTo(Vector3 target)
{
if (!NoTarget)
{
Vector3 v1 = target - transform.position;
transform.position += v1.normalized * speed * Time.deltaTime;
if (Vector3.Distance(target, transform.position) <= 5) {
NoTarget = true;
}
}
}
}
注意:物体必须有collider组件
代码:using UnityEngine;
using System.Collections;
using System;
public class RayToMove : MonoBehaviour
{
Vector3 Target = new Vector3();
private bool NoTarget = true;
public float speed=100;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButton(0)) {
Ray MoveRay = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit RayInf = new RaycastHit();
if (Physics.Raycast(MoveRay, out RayInf))
{
if (RayInf.collider.name != "Plane")//设置选中名为plane的地形不移动
{
Target = RayInf.point;
NoTarget = false;
}
}
}
MoveTo(Target);
}
private void MoveTo(Vector3 target)
{
if (!NoTarget)
{
Vector3 v1 = target - transform.position;
transform.position += v1.normalized * speed * Time.deltaTime;
if (Vector3.Distance(target, transform.position) <= 5) {
NoTarget = true;
}
}
}
}
相关文章推荐
- unity 相机平滑的接近物体脚本 Mathf.Smooth
- Unity射线,摄像机和物体发射射线
- [Unity 3D教程]教你如何在3D场景中选择物体并显示轮廓效果
- Unity 鼠标批量选择物体
- unity 相机围绕某物体自动旋转
- unity使用手势时,通过射线判断是否触碰到了某物体
- unity笔记 0 - 添加物体,预制体;施加力;移动物体,旋转物体;相机跟随;禁用物体
- unity 相机跟随物体(角色)
- Unity调用系统窗口选择文件或文件路径 来赋值图片给物体
- Unity通过射线碰撞选择模型,然后控制模型的移动、旋转、缩放等动作
- unity检测到某一物体不被特定的某一相机渲染
- unity3d在android的场景中选择一个物体让他旋转平移
- unity 赛车相机跟随物体移动
- unity 实现了鼠标滚动放大和缩小物体暨拉近拉远相机的效果
- [Unity实战]相机观察物体
- Unity鼠标自由查看3D物体之控制摄相机Camera
- 在Unity中实现可以自由观察无规则高速运动物体的相机的思路
- Unity 对选中物体实现描边效果(方法3:结合方法1的外轮廓渲染、方法2的选择网格)
- Unity 射线点击事件 父子物体的关系
- unity中用鼠标控制物体实现缩放、平移、旋转