void Update()
{
Ray rays = Camera.main.ScreenPointToRay(Input.mousePosition);
//定义一个射线,从摄像机出发,屏幕转射线,鼠标位置
RaycastHit hit;//碰撞体
if(Physics.Raycast(rays,out hit))//光线投影
{
Debug.DrawLine(rays.orgin,hit.point,Color.red);
//打印射线 起点 指向 射线颜色
print("aa");//如果碰到碰撞体,就输出“aa”
}
}
鼠标点击地面,点击的位置出现物体
public GameObject my;
void Update()
{
Ray rays = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Input.GetMouseButtonDown(0))
{
if(Physics.Raycast(rays,out hit))
{
GameObject.Instantiate(my,hit.point,Quaternion.identity);
}
}
}
点击物体A,再点击物体B,两者互换位置
public GameObject myA;
public GameObject myB;
Vector3 p1,p2;//定义两个位置
int aa = 0;
void Update()
{
Ray rays = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Input.GetMouseButtonDown(0))//点击鼠标左键
{
if(Physics.Raycast(rays,out hit))
{
aa++;
if(aa == 1)
{
myA = hit.transform.gameObject;
p1 = myA.transfomr.position;//获取物体A的位置
}
if(aa == 2)
{
myB = hit.transform.gameObject;
p2 = myB.transfomr.position;//获取物体B的位置
myA.transform.position = p2;//两者互换
myB.transform.position = p1;//两者互换
aa = 0;
}
}
}
}
鼠标点击一个位置,物体移动到那个位置
public GameObject prefab;
void Update()
{
Ray rays = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(rays,out hit))
{
Debug.DrawLine(rays.origin,hit.point,Color.red);
if(Input.GetMouseButtonDown(1))
{
transform.position = hit.point;
}
}
prefab.transform.LookAt(transform.position);//朝向点击的位置
prefab.transform.Translate(0,0,0.02f);//在z轴上移动
}