|
|
@ -82,51 +82,58 @@ public class WaterCurtainHoseSkillCtrl : MonoBehaviour |
|
|
|
{ |
|
|
|
{ |
|
|
|
if ((i + 1) < pathPoints.Count) |
|
|
|
if ((i + 1) < pathPoints.Count) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
//var distance = Vector3.Distance(pathPoints[i], pathPoints[i + 1]); |
|
|
|
|
|
|
|
//if (accumulationDis < startSprayWaterDistance) |
|
|
|
|
|
|
|
//{ |
|
|
|
|
|
|
|
// accumulationDis += distance; |
|
|
|
|
|
|
|
//} |
|
|
|
|
|
|
|
//else |
|
|
|
|
|
|
|
//{ |
|
|
|
|
|
|
|
// if (accumulationDis % startSprayWaterDistance == 0) |
|
|
|
|
|
|
|
// {//正好整数段水幕水带子对象加起来为5米长 |
|
|
|
|
|
|
|
// sprayWaterPoss.Add(pathPoints[i]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// var result = (int)(distance / spaceDistance); |
|
|
|
|
|
|
|
// for (int j = 1; j <= result; j++) |
|
|
|
|
|
|
|
// { |
|
|
|
|
|
|
|
// var sprayWaterPos = Vector3.MoveTowards(pathPoints[i], pathPoints[i + 1], spaceDistance * j); |
|
|
|
|
|
|
|
// sprayWaterPoss.Add(sprayWaterPos); |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
// else |
|
|
|
|
|
|
|
// {//整数段水幕水带子对象加起来已大于5米 |
|
|
|
|
|
|
|
// if (!flag) |
|
|
|
|
|
|
|
// { |
|
|
|
|
|
|
|
// var dis = accumulationDis - startSprayWaterDistance; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// var startpos = Vector3.MoveTowards(pathPoints[i - 1], pathPoints[i], startSprayWaterDistance); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// sprayWaterPoss.Add(startpos); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// var res = (int)(dis / spaceDistance); |
|
|
|
|
|
|
|
// for (int j = 1; j <= res; j++) |
|
|
|
|
|
|
|
// { |
|
|
|
|
|
|
|
// var sprayWtPos = Vector3.MoveTowards(startpos, pathPoints[i], spaceDistance * j); |
|
|
|
|
|
|
|
// sprayWaterPoss.Add(sprayWtPos); |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// flag = true; |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// var result = (int)(distance / spaceDistance); |
|
|
|
|
|
|
|
// for (int j = 1; j <= result; j++) |
|
|
|
|
|
|
|
// { |
|
|
|
|
|
|
|
// var sprayWaterPos = Vector3.MoveTowards(pathPoints[i], pathPoints[i + 1], spaceDistance * j); |
|
|
|
|
|
|
|
// sprayWaterPoss.Add(sprayWaterPos); |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
//} |
|
|
|
var distance = Vector3.Distance(pathPoints[i], pathPoints[i + 1]); |
|
|
|
var distance = Vector3.Distance(pathPoints[i], pathPoints[i + 1]); |
|
|
|
if (accumulationDis < startSprayWaterDistance) |
|
|
|
var result = (int)(distance / spaceDistance); |
|
|
|
{ |
|
|
|
for (int j = 1; j <= result; j++) |
|
|
|
accumulationDis += distance; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
if (accumulationDis % startSprayWaterDistance == 0) |
|
|
|
var sprayWaterPos = Vector3.MoveTowards(pathPoints[i], pathPoints[i + 1], spaceDistance * j); |
|
|
|
{//正好整数段水幕水带子对象加起来为5米长 |
|
|
|
sprayWaterPoss.Add(sprayWaterPos); |
|
|
|
sprayWaterPoss.Add(pathPoints[i]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var result = (int)(distance / spaceDistance); |
|
|
|
|
|
|
|
for (int j = 1; j <= result; j++) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var sprayWaterPos = Vector3.MoveTowards(pathPoints[i], pathPoints[i + 1], spaceDistance * j); |
|
|
|
|
|
|
|
sprayWaterPoss.Add(sprayWaterPos); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{//整数段水幕水带子对象加起来已大于5米 |
|
|
|
|
|
|
|
if (!flag) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var dis = accumulationDis - startSprayWaterDistance; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var startpos = Vector3.MoveTowards(pathPoints[i - 1], pathPoints[i], startSprayWaterDistance); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sprayWaterPoss.Add(startpos); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var res = (int)(dis / spaceDistance); |
|
|
|
|
|
|
|
for (int j = 1; j <= res; j++) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var sprayWtPos = Vector3.MoveTowards(startpos, pathPoints[i], spaceDistance * j); |
|
|
|
|
|
|
|
sprayWaterPoss.Add(sprayWtPos); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
flag = true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var result = (int)(distance / spaceDistance); |
|
|
|
|
|
|
|
for (int j = 1; j <= result; j++) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var sprayWaterPos = Vector3.MoveTowards(pathPoints[i], pathPoints[i + 1], spaceDistance * j); |
|
|
|
|
|
|
|
sprayWaterPoss.Add(sprayWaterPos); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
@ -165,53 +172,61 @@ public class WaterCurtainHoseSkillCtrl : MonoBehaviour |
|
|
|
{ |
|
|
|
{ |
|
|
|
if ((i - 1) > 0) |
|
|
|
if ((i - 1) > 0) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
//var distance = Vector3.Distance(pathPoints[i - 1], pathPoints[i - 2]); |
|
|
|
|
|
|
|
//if (accumulationDis < startSprayWaterDistance) |
|
|
|
|
|
|
|
//{ |
|
|
|
|
|
|
|
// accumulationDis += distance; |
|
|
|
|
|
|
|
// sprayWaterPoss.Add(pathPoints[i - 1]); |
|
|
|
|
|
|
|
//} |
|
|
|
|
|
|
|
//else |
|
|
|
|
|
|
|
//{ |
|
|
|
|
|
|
|
// if (accumulationDis % startSprayWaterDistance == 0) |
|
|
|
|
|
|
|
// {//正好整数段水幕水带子对象加起来为5米长 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// sprayWaterPoss.Add(pathPoints[i - 1]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// //加入每段根据间隔的分割点 |
|
|
|
|
|
|
|
// var result = (int)(distance / spaceDistance); |
|
|
|
|
|
|
|
// for (int j = 1; j <= result; j++) |
|
|
|
|
|
|
|
// { |
|
|
|
|
|
|
|
// var sprayWaterPos = Vector3.MoveTowards(pathPoints[i - 1], pathPoints[i - 2], spaceDistance * j); |
|
|
|
|
|
|
|
// sprayWaterPoss.Add(sprayWaterPos); |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
// else |
|
|
|
|
|
|
|
// {//整数段水幕水带子对象加起来已大于5米 |
|
|
|
|
|
|
|
// if (!flag) |
|
|
|
|
|
|
|
// { |
|
|
|
|
|
|
|
// var dis = accumulationDis - startSprayWaterDistance; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// var startpos = Vector3.MoveTowards(pathPoints[i], pathPoints[i - 1], startSprayWaterDistance); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// sprayWaterPoss.Add(startpos); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// var res = (int)(dis / spaceDistance); |
|
|
|
|
|
|
|
// for (int j = 1; j <= res; j++) |
|
|
|
|
|
|
|
// { |
|
|
|
|
|
|
|
// var sprayWtPos = Vector3.MoveTowards(startpos, pathPoints[i - 1], spaceDistance * j); |
|
|
|
|
|
|
|
// sprayWaterPoss.Add(sprayWtPos); |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// flag = true; |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// var result = (int)(distance / spaceDistance); |
|
|
|
|
|
|
|
// for (int j = 1; j <= result; j++) |
|
|
|
|
|
|
|
// { |
|
|
|
|
|
|
|
// var sprayWaterPos = Vector3.MoveTowards(pathPoints[i - 1], pathPoints[i - 2], spaceDistance * j); |
|
|
|
|
|
|
|
// sprayWaterPoss.Add(sprayWaterPos); |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
//} |
|
|
|
var distance = Vector3.Distance(pathPoints[i - 1], pathPoints[i - 2]); |
|
|
|
var distance = Vector3.Distance(pathPoints[i - 1], pathPoints[i - 2]); |
|
|
|
if (accumulationDis < startSprayWaterDistance) |
|
|
|
var result = (int)(distance / spaceDistance); |
|
|
|
{ |
|
|
|
for (int j = 1; j <= result; j++) |
|
|
|
accumulationDis += distance; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
if (accumulationDis % startSprayWaterDistance == 0) |
|
|
|
var sprayWaterPos = Vector3.MoveTowards(pathPoints[i - 1], pathPoints[i - 2], spaceDistance * j); |
|
|
|
{//正好整数段水幕水带子对象加起来为5米长 |
|
|
|
sprayWaterPoss.Add(sprayWaterPos); |
|
|
|
|
|
|
|
|
|
|
|
sprayWaterPoss.Add(pathPoints[i - 1]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//加入每段根据间隔的分割点 |
|
|
|
|
|
|
|
var result = (int)(distance / spaceDistance); |
|
|
|
|
|
|
|
for (int j = 1; j <= result; j++) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var sprayWaterPos = Vector3.MoveTowards(pathPoints[i - 1], pathPoints[i - 2], spaceDistance * j); |
|
|
|
|
|
|
|
sprayWaterPoss.Add(sprayWaterPos); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{//整数段水幕水带子对象加起来已大于5米 |
|
|
|
|
|
|
|
if (!flag) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var dis = accumulationDis - startSprayWaterDistance; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var startpos = Vector3.MoveTowards(pathPoints[i], pathPoints[i - 1], startSprayWaterDistance); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sprayWaterPoss.Add(startpos); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var res = (int)(dis / spaceDistance); |
|
|
|
|
|
|
|
for (int j = 1; j <= res; j++) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var sprayWtPos = Vector3.MoveTowards(startpos, pathPoints[i - 1], spaceDistance * j); |
|
|
|
|
|
|
|
sprayWaterPoss.Add(sprayWtPos); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
flag = true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var result = (int)(distance / spaceDistance); |
|
|
|
|
|
|
|
for (int j = 1; j <= result; j++) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var sprayWaterPos = Vector3.MoveTowards(pathPoints[i - 1], pathPoints[i - 2], spaceDistance * j); |
|
|
|
|
|
|
|
sprayWaterPoss.Add(sprayWaterPos); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -253,7 +268,7 @@ public class WaterCurtainHoseSkillCtrl : MonoBehaviour |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!isClonedWaterCurtain) |
|
|
|
if (!isClonedWaterCurtain) |
|
|
|
{//选中的水幕水带不存在水幕粒子特效,实例化水幕 |
|
|
|
{//选中的水幕水带不存在水幕粒子特效,实例化水幕 |
|
|
|
CloneGameObjInfo info = selectedWaterCurtainHose.GetComponent<CloneGameObjInfo>(); |
|
|
|
CloneGameObjInfo info = selectedWaterCurtainHose.GetComponent<CloneGameObjInfo>(); |
|
|
|
for (int i = 0; i < sprayWaterPoss.Count; i++) |
|
|
|
for (int i = 0; i < sprayWaterPoss.Count; i++) |
|
|
|