美文网首页
射线练习题

射线练习题

作者: 胤醚貔貅 | 来源:发表于2017-04-19 11:26 被阅读40次

场景中创建N(两个以上)个物体,鼠标可以选中任何物体,当鼠标选中为非地面时,选中的物体变为红色,之前选中的物体恢复为之前的颜色,鼠标点击到地面时,让之前选中的那个物体移动的当前点击的位置

思考:在点击下一个物体移动的时候,上一个物体继续移动

GameController脚本

usingUnityEngine;

usingSystem.Collections;

publicclassGameController1:MonoBehaviour{

privateRaycastHithit;//碰撞信息

privateGameObjectselectdeGameObject;//选中物体

privateboolflag;//标记当前是否选中了地面

privateColorselectedColor;//当前选中物体的颜色

voidUpdate(){

if(Input.GetMouseButtonDown(0)){

//从摄像头发射一条经过鼠标的射线,如果射线碰撞到任何碰撞体,该方法返回true,否则返回false

if(Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition),outhit)){

//判断鼠标是否点击到地面

if(hit.collider.name=="Plane"){

flag=true;

}else{

flag=false;

//null;空对象,引用类型

if(selectdeGameObject){

//将前一个选中的物体颜色恢复为原来的颜色

selectdeGameObject.GetComponent().material.color=selectedColor;

}

//更新选中的物体

selectdeGameObject=hit.collider.gameObject;

selectedColor=selectdeGameObject.GetComponent().material.color;

selectdeGameObject.GetComponent().material.color=Color.red;

}

}

}

//当鼠标选中地面,并且被选中物体存在

if(flag&&selectdeGameObject){

Move(hit.point);

}

}

voidMove(Vector3distination){

if(Vector3.Distance(selectdeGameObject.transform.position,distination)<=0.01f){

selectdeGameObject.transform.position=distination;

}else{

Vector3pos=selectdeGameObject.transform.position;

pos=Vector3.Lerp(pos,distination,Time.deltaTime);

selectdeGameObject.transform.position=newVector3(pos.x,selectdeGameObject.transform.position.y,pos.z);

}

}

}

相关文章

  • 射线练习题

    场景中创建N(两个以上)个物体,鼠标可以选中任何物体,当鼠标选中为非地面时,选中的物体变为红色,之前选中的物体恢复...

  • 射线与线段计数练习题以及答案与解析

    下面是射线与线段的定义,以及如何计数的相应练习题。有时间的同学可以做一做。 ①图中共有 条射线, 条线...

  • 角的动态问题,射线的运动,钟面行程练习题

    欢迎关注公 号:沈阳奥数 下面是角的动态问题,射线的运动,钟面行程的相应练习题。有兴趣的同学可以做一做。 ①∠AO...

  • 点线面关系

    射线与射线的交点计算

  • Unity 射线

    1,摄像机射线: 2, 物体发射射线: 3, 点击发出射线:

  • 射线与球的相交

    今天来说说射线和球的相交检测。 从图形来说 ![射线和圆相交, origin是射线起点, dir是射线的方向向量。...

  • UI射线部分执行逻辑

    射线底层实现逻辑,Ui射线最重要的部分就是GraphicRaycaster。 射线响应方法,具体实现逻辑如下

  • 射线

    射线:射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射 。 用...

  • 射线

    public GameObject _player; bool isMove = false; Vector3 _...

  • 射线

    我的父亲四十六岁的时候走了,事业也正处于巅峰时刻,没有征兆,一切戛然而止。他一生没有见过手机,不知道互联网,也没有...

网友评论

      本文标题:射线练习题

      本文链接:https://www.haomeiwen.com/subject/cgbczttx.html