Unity 初学1 Ray射线用法和物体移动
程序员文章站
2022-07-14 08:00:30
...
利用射线销毁物体
void Shoot()
{
if (Input.GetMouseButtonDown(0))
{
//从摄像机发射一条射线到屏幕惦记的位置
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//碰撞数据类
RaycastHit hit;
//射线是否碰撞物体
if (Physics.Raycast(ray,out hit))
{
//实现销毁
DestroyObject(hit.transform.gameObject);
//实现控制台输出日志
Debug.Log("摧毁"+hit.point);
}
}
}//点击销毁物体
移动物体
void Yidong()
{
if (Input.GetKey(KeyCode.W)) //获取W键
{
transform.Translate(0, 0, 0.5f);
}
else if (Input.GetKey(KeyCode.S))//按下s
{
transform.Translate(0, 0, -0.5f);
}
else if (Input.GetKey(KeyCode.A))
{
transform.Translate(-0.4f, 0, 0);
}
else if (Input.GetKey("q"))
{
transform.Rotate(new Vector3(0, -5, 0));
}
else if (Input.GetKey("e"))
{
transform.Rotate(new Vector3(0, 5, 0));
}
else if (Input.GetKey(KeyCode.D))
{
transform.Translate(0.4f, 0, 0);
}
else if (Input.GetKeyDown(KeyCode.Space))
{
transform.Translate(0, 5, 0);
}
}//移动
Ray射线
void Shexian()
{
if (Input.GetMouseButton(0))//鼠标左击
{//相机发射出一条射线到场景中屏幕点击的位置
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//射线碰撞数据对象
RaycastHit hit;
//碰撞到物体
if (Physics.Raycast(ray,out hit))
{
//在场景窗口画一条线
Debug.DrawLine(Camera.main.transform.position,hit.point,Color.black);
}
}
}//射线
利用射线隐藏物体
void Yincang()//隐藏
{
if (Input.GetMouseButton(1))
{//从相机发射一条射线到场景中屏幕点击的位置
Ray ray2 = Camera.main.ScreenPointToRay(Input.mousePosition);
//射线碰撞数据对象
RaycastHit hit2;
//碰撞到物体
if (Physics.Raycast(ray2,out hit2))
{
hit2.transform.gameObject.SetActive(false);
}
}
}
上一篇: C语言中i++,++i
下一篇: c