:该脚本到需要移动的物体上(组图)

:该脚本到需要移动的物体上(组图)

脚本挂载在需要移动的对象上:

公共类立方体脚本: 单行为 {

用于记录鼠标单击点的坐标

载体3靶点;

// 将其用于初始化

无效开始 () {

是,对象在开始时不移动

目标点 = 转换位置;

}

无效更新 () {

使用光线执行此操作:单击鼠标左键,对象将简化为鼠标单击位置

如果 (输入.获取鼠标按钮下来(0))

{

创建从相机到鼠标单击位置的光线

光线 = 相机主屏幕点到雷(输入鼠标位置);

记录碰撞信息

雷施海特命中;

如果这条射线发生碰撞

如果 (物理.射线投射(射线,输出命中))

{

获取命中的碰撞信息以获取其坐标命中点。

这里的Y = 0.5f是因为物体是一个立方体,并且使它移动总是在平面上

目标点 = 新矢量 3(命中点 x, 0.5f, 命中点数);

}

}

对象被简化到鼠标单击的位置

变换位置 = Vector3.Lerp(变换位置,目标点,时间增量时间);

}

}

使用光线进行操作:输入对象并使对象消失,然后恢复 - >脚本安装在相机上

公共班级庇护所: 单一行为 {

记录移动对象

转换玩家;

记录隐藏的对象

游戏对象其他;

无效开始 () {

获取对象

玩家 = 游戏对象。查找与标签(“玩家”)转换;

}

无效更新 () {

获取光线的方向

矢量 3 目录 = 玩家位置 - 变换位置;

初始化射线

射线 = 新射线(变换位置,dir);

记录光线碰撞信息

雷施海特命中;

发射射线

强调 // 注意这里 Raycast 只会返回有关第一个要碰撞的对象的信息unity 物体发射射线unity 物体发射射线,所以让我们在下面判断

如果 (物理.雷投射(射线像素游戏素材,出击)) {

如果光线碰撞返回的对象不是 Player 标记,请隐藏该对象

如果 (命中转换标记 != “玩家”) {

如果存在隐藏对象氛围,并且下一次碰撞返回的信息对象与上一个对象不同,则会显示前一个对象

如果 (其他 hit.collider.name != other.name) {

其他 __________。SetActive(真);

}

隐藏当前光线碰撞的对象

命中.对撞机.游戏对象.SetActive(假);

记录当前隐藏的对象

其他 = 命中对撞机游戏对象;

}

}

}

}