【unity原创】点击地面产生效果的实现

首先要做一个3d预制体 然后欧拉角 要调整

上面的每一句代码都有用,点击之后会发现和鼠标的位置有点出入,因为点击是一个斜向的射线,所以要尽量靠近鼠标,所以让这个点击的效果物体靠近鼠标一些就要朝向摄像机,并移动1米,
但是 lookat 会修改x坐标 ,导致整个点击效果 不是平的而是倾斜的 所以需要改成 0,

image.png
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轴配置需要微调。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值