菜鸟学习一个unity塔防游戏项目制作激光塔
由于我是使用Line Renderer来制作的激光特效
所以我需要确定特效的起点与终点
那么定义变量
Vector3 normalize
//单位向量
float distance
//确定向量长度
Vector3 endPosition
//终点坐标
GameObject firePosition
//起点坐标
Gameobject LaserEffect
//击中特效
normalize = (enemys[0].transform.position - firePosition.position).normalized;
//计算特效起点到敌人坐标的单位向量,确定方向
distance = Vector3.Distance(firePosition.position, enemys[0].transform.position) - enemys[0].GetComponent<SphereCollider>().radius;
//获取球形物体碰撞盒的半径,确定到模型表面的距离
endPosition=firePosition.position+distance*normalize;
//获取Line Renderer 目标坐标距离
LaserEffect.transform.position = endPosition;
//使得特效产生在目标位置
LaserEffect.transform.LookAt(firePosition);
//确定特效方向
最终效果
特效起始位置
物体中心位置