首先要做一个3d预制体 然后欧拉角 要调整
上面的每一句代码都有用,点击之后会发现和鼠标的位置有点出入,因为点击是一个斜向的射线,所以要尽量靠近鼠标,所以让这个点击的效果物体靠近鼠标一些就要朝向摄像机,并移动1米,
但是 lookat 会修改x坐标 ,导致整个点击效果 不是平的而是倾斜的 所以需要改成 0,
GameObject clickObject = Instantiate(effectGo);
clickObject.GetComponent<Canvas>().worldCamera = ScreenPageManager.Instance.worldCamera;
clickObject.transform.eulerAngles = Vector3.zero;
clickObject.transform.position = point;
clickObject.transform.position = new Vector3(hitInfoRoom.point.x, tempParent.position.y+1.5f, hitInfoRoom.point.z);
//不看摄像机移动就方向是错的。
clickObject.transform.LookAt(Camera.main.transform, Vector3.up);
clickObject.transform.forward = Camera.main.transform.forward;
//解决倾斜问题
clickObject.transform.rotation = Quaternion.Euler(0,clickObject.transform.eulerAngles.y, clickObject.transform.eulerAngles.z);
clickObject.transform.Translate(Vector3.forward);
另外我这点击的是房子,因为我并没有做地面的,房子本身有地面,所以点击后 点击的是房子,好在轴心是房子底部,而非中心点,否则 y轴配置需要微调。
网友评论