最近在学习unity,发现学过了之后过了一阵子有好多东西记不住于是想着发个帖子记录每天学到的东西,也能作为监督自己的一个方式吧,毕竟对我来说学习是一件很无聊的事情。言归正传。
射线:是一个点向一个方向发射的一条没有终点的线。游戏中我们可以用射线检测前方有没有敌人,子弹是否击中目标等等。
在unity的世界中使用射线Ray射线类和RaycastHit投射信息类是非常重要的两个工具类。
[b]Ray[/b]射线类:返回一条从主摄像机上发出的到参数位置的一条射线,
Camera.main.ScreenPointToRay(vector3 pos)
RaycastHit 射线碰撞信息:
bool Physics.Raycast(Ray ray, Vector3 direction, RaycastHit out hit, float distance, int layerMask)
我经常用Input.mousePosition作为参数,这样就可以用鼠标来对游戏中的物体进行一些操作。例如修改物体tag为"A"的颜色代码如下:
if (Input.GetMouseButtonDown(0))
{
ray = cam.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hitInfo, 100, layer))
{
if (hitInfo.transform.tag == "A")
{
hitInfo.tra