Browse Source

范围边界优化

pull/106/head
45 10 months ago
parent
commit
c9f959c2d8
  1. 1967
      ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/MapUnity _2.prefab
  2. 378
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs
  3. 86
      ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs
  4. 28
      ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity/PlayerMark.cs
  5. 376
      ColorlessWorld-2024-4-2/Assets/Scripts/Player.cs
  6. 4
      ColorlessWorld-2024-4-2/Assets/Scripts/Servent/KindOfServent/ServantBottleCat.cs
  7. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Servent/Servant.cs
  8. 4
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs

1967
ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/MapUnity _2.prefab

File diff suppressed because it is too large

378
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs

@ -242,384 +242,6 @@ public class EnemyManager : Singleton<EnemyManager>
}
}
public void AttackRangePreviewInfluencedNode(MapUnity enemyNode, int step,List<MapUnity> influencePreviewPool)//可移动格子预览
{
influencePreviewPool .Clear();
//GameManager.Instance.playerOn.InfluencePool = GameManager.Instance.playerOn.unitPool;
MapUnity playerNode = enemyNode;
MapUnity currentNode = enemyNode;
MapUnity xRememberNode = enemyNode;
//Vector2 currentPoint = new Vector2(currentNode.locationX, currentNode.locationY);
//Vector2 surchPoint = new Vector2(currentNode.locationX, currentNode.locationY-step);
//迭代六次-逆时针
//向左
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[0] != null)
{
xRememberNode = xRememberNode.unitPool[0];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[5] != null)
{
influencePreviewPool.Add(currentNode.unitPool[5]);
currentNode = currentNode.unitPool[5];
}
else break;
}
}
//向左下
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[5] != null)
{
xRememberNode = xRememberNode.unitPool[5];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[4] != null)
{
influencePreviewPool.Add(currentNode.unitPool[4]);
currentNode = currentNode.unitPool[4];
}
else break;
}
}
//向右
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[4] != null)
{
xRememberNode = xRememberNode.unitPool[4];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[3] != null)
{
influencePreviewPool.Add(currentNode.unitPool[3]);
currentNode = currentNode.unitPool[3];
}
else break;
}
}
//向右上
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[3] != null)
{
xRememberNode = xRememberNode.unitPool[3];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[2] != null)
{
influencePreviewPool.Add(currentNode.unitPool[2]);
currentNode = currentNode.unitPool[2];
}
else break;
}
}
//向上
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[2] != null)
{
xRememberNode = xRememberNode.unitPool[2];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[1] != null)
{
influencePreviewPool.Add(currentNode.unitPool[1]);
currentNode = currentNode.unitPool[1];
}
else break;
}
}
//向左上
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[1] != null)
{
xRememberNode = xRememberNode.unitPool[1];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[0] != null)
{
influencePreviewPool.Add(currentNode.unitPool[0]);
currentNode = currentNode.unitPool[0];
}
else break;
}
}
//迭代六次-顺时针
//向左
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[5] != null)
{
xRememberNode = xRememberNode.unitPool[5];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[0] != null)
{
if (currentNode.influenced == false)
{
influencePreviewPool.Add(currentNode.unitPool[0]);
currentNode = currentNode.unitPool[0];
}
}
else break;
}
}
//向左下
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[4] != null)
{
xRememberNode = xRememberNode.unitPool[4];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[5] != null)
{
if (currentNode.influenced == false)
{
influencePreviewPool.Add(currentNode.unitPool[5]);
currentNode = currentNode.unitPool[5];
}
}
else break;
}
}
//向右
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[3] != null)
{
xRememberNode = xRememberNode.unitPool[3];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[4] != null)
{
if (currentNode.influenced == false)
{
influencePreviewPool.Add(currentNode.unitPool[4]);
currentNode = currentNode.unitPool[4];
}
}
else break;
}
}
//向右上
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[2] != null)
{
xRememberNode = xRememberNode.unitPool[2];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[3] != null)
{
if (currentNode.influenced == false)
{
influencePreviewPool.Add(currentNode.unitPool[3]);
currentNode = currentNode.unitPool[3];
}
}
else break;
}
}
//向上
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[1] != null)
{
xRememberNode = xRememberNode.unitPool[1];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[2] != null)
{
if (currentNode.influenced == false)
{
influencePreviewPool.Add(currentNode.unitPool[2]);
currentNode = currentNode.unitPool[2];
}
}
else break;
}
}
//向左上
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[0] != null)
{
xRememberNode = xRememberNode.unitPool[0];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[1] != null)
{
if (currentNode.influenced == false)
{
influencePreviewPool.Add(currentNode.unitPool[1]);
currentNode = currentNode.unitPool[1];
}
}
else break;
}
}
List<MapUnity> disInfluencePreviewPool = influencePreviewPool.Distinct(new MapUnityCompare()).ToList();
HashSet<MapUnity> hashPool = disInfluencePreviewPool.ToHashSet();
//遍历影响池变色
foreach ( var i in disInfluencePreviewPool)
{
i.EnemyInfluenced(hashPool);
i.enemyInfMark.GetComponent<Renderer>().material = i.enemyMark;
}
}
public void AttackRangeInfluencedNode(MapUnity enemyNode, int step, List<MapUnity> influencePreviewPool)//¼ÆËã¹¥»÷·¶Î§
{
influencePreviewPool.Clear();

86
ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs

@ -24,13 +24,17 @@ public class MapUnity : MonoBehaviour
[Header("UI效果范围控件")]
public bool influenced;//被选中
bool lastInfluenced;
public bool infHighLight;//我方高亮
bool lastInfHighLight;
public bool markInfluenced;//敌人范围
bool lastMarkInfluenced;//敌人范围
public bool aoeInfluenced;//被aoe标记
bool lastAoeInfluenced;//被aoe标记
public PlayerMark playerMark;//被选中激活
public PlayerMark highLightMark;//移动位置标记高亮
public PlayerMark enemyInfMark;//被选中高亮
public MeshRenderer playerMark;//被选中激活
public MeshRenderer highLightMark;//移动位置标记高亮
public MeshRenderer enemyInfMark;//被选中高亮
public GameObject aoeMake;//aoe标记
public Material red;
@ -55,8 +59,7 @@ public class MapUnity : MonoBehaviour
public Transform planePoint;
public int whoColour;
public int beforeWhoColour;
[Header("色块边框")]
public GameObject planeBorder;
[Header("地块泛光")]
public Sprite redFlood;
public Sprite greenFlood;
@ -171,17 +174,31 @@ public class MapUnity : MonoBehaviour
void Update()
{
if (influenced==false)
if (influenced!= lastInfluenced )
{
ClearPlayerInfluenced();
lastInfluenced = influenced;
if (influenced == false)
{
ClearPlayerInfluenced();
}
}
if (infHighLight ==false )
if (infHighLight != lastInfHighLight )
{
ClearHightLightInfluenced();
lastInfHighLight = infHighLight;
if (infHighLight==true )
{
ClearHightLightInfluenced();
}
}
if (markInfluenced ==false )
if (markInfluenced != lastMarkInfluenced)
{
ClearEnemyInfluenced();
lastMarkInfluenced = markInfluenced;
if (markInfluenced == false)
{
ClearEnemyInfluenced();
}
}
if (aoeInfluenced)
@ -291,23 +308,23 @@ public class MapUnity : MonoBehaviour
switch (newColor )
{
case 1:
playerMark.meshRenderer.material = redPre;
playerMark.material = redPre;
colorUnderAttack = newColor;
break;
case 2:
playerMark.meshRenderer.material = whitePre;
playerMark.material = whitePre;
colorUnderAttack = newColor;
break;
case 3:
playerMark.meshRenderer.material = bluePre;
playerMark.material = bluePre;
colorUnderAttack = newColor;
break;
case 4:
playerMark.meshRenderer.material = greenPre;
playerMark.material = greenPre;
colorUnderAttack = newColor;
break;
case 5:
playerMark.meshRenderer.material = blackPre;
playerMark.material = blackPre;
colorUnderAttack = newColor;
break;
}
@ -551,29 +568,60 @@ public class MapUnity : MonoBehaviour
public void PlayerInfluenced(HashSet <MapUnity> rangePool)
{
influenced = true;
playerMark.ShowMark(rangePool);
playerMark.gameObject .SetActive(true);
// playerMark.ShowMark(rangePool);
ShowMark(rangePool);
}
public void ClearPlayerInfluenced()
{
playerMark.gameObject.SetActive(false);
FadeMark();
}
public void HightLightInfluenced(HashSet<MapUnity> rangePool)
{
infHighLight = true;
highLightMark.ShowMark(rangePool);
highLightMark .gameObject .SetActive(true);
// highLightMark.ShowMark(rangePool);
ShowMark(rangePool);
}
public void ClearHightLightInfluenced()
{
highLightMark.gameObject.SetActive(false);
FadeMark();
}
public void EnemyInfluenced(HashSet<MapUnity> rangePool)
{
markInfluenced = true;
enemyInfMark.ShowMark(rangePool);
enemyInfMark .gameObject .SetActive(true);
//enemyInfMark.ShowMark(rangePool);
ShowMark(rangePool);
}
public void ClearEnemyInfluenced()
{
enemyInfMark.gameObject.SetActive(false);
FadeMark();
}
public void ShowMark(HashSet<MapUnity> rangePool)
{
for (int i = 0; i < unitPool.Count; i++)
{
if (unitPool[i] != null && rangePool.Contains(unitPool[i]))
{
rangeBorder[i].gameObject.SetActive(false);
}
else
{
rangeBorder[i].gameObject.SetActive(true);
}
}
}
public void FadeMark()
{
for (int i = 0; i < unitPool.Count; i++)
{
rangeBorder[i].gameObject.SetActive(false);
}
}
#endregion

28
ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity/PlayerMark.cs

@ -4,29 +4,9 @@ using UnityEngine;
public class PlayerMark : MonoBehaviour
{
public MeshRenderer meshRenderer;
public MapUnity mapUnity;
public List<MapUnity> unitPool;
public List <MeshRenderer > rangeBorder = new List <MeshRenderer > ();
// public MeshRenderer meshRenderer;
// public MapUnity mapUnity;
// public List<MapUnity> unitPool;
// public List <MeshRenderer > rangeBorder = new List <MeshRenderer > ();
private void Start()
{
unitPool = mapUnity.unitPool;
}
public void ShowMark(HashSet<MapUnity> rangePool)
{
transform.gameObject.SetActive(true);
for(int i=0;i< unitPool .Count;i++)
{
if (unitPool[i]!=null && rangePool .Contains (unitPool[i]))
{
rangeBorder[i].gameObject.SetActive(false);
}
else
{
rangeBorder[i].gameObject.SetActive(true);
}
}
}
}

376
ColorlessWorld-2024-4-2/Assets/Scripts/Player.cs

@ -80,7 +80,7 @@ public class Player : MonoBehaviour
foreach (MapUnity mapUnity in influencePreviewPool)
{
mapUnity.PlayerInfluenced(influencePreviewPool);
mapUnity.playerMark.meshRenderer.material = mapUnity.red;
mapUnity.playerMark.material = mapUnity.red;
}
//StepPreviewInfluencedNode(GameManager.Instance.playerState.currentStepRange);
@ -365,380 +365,6 @@ public class Player : MonoBehaviour
anim.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
}
}
public void StepPreviewInfluencedNode(int step)//可移动格子预览
{
influencePreviewPool.Clear();
//GameManager.Instance.playerOn.InfluencePool = GameManager.Instance.playerOn.unitPool;
MapUnity playerNode = GameManager.Instance.playerOn;
MapUnity currentNode = GameManager.Instance.playerOn;
MapUnity xRememberNode = GameManager.Instance.playerOn;
//Vector2 currentPoint = new Vector2(currentNode.locationX, currentNode.locationY);
//Vector2 surchPoint = new Vector2(currentNode.locationX, currentNode.locationY-step);
//迭代六次-逆时针
//向左
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[0] != null)
{
xRememberNode = xRememberNode.unitPool[0];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[5] != null)
{
influencePreviewPool.Add(currentNode.unitPool[5]);
currentNode = currentNode.unitPool[5];
}
else break;
}
}
//向左下
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[5] != null)
{
xRememberNode = xRememberNode.unitPool[5];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[4] != null)
{
influencePreviewPool.Add(currentNode.unitPool[4]);
currentNode = currentNode.unitPool[4];
}
else break;
}
}
//向右
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[4] != null)
{
xRememberNode = xRememberNode.unitPool[4];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[3] != null)
{
influencePreviewPool.Add(currentNode.unitPool[3]);
currentNode = currentNode.unitPool[3];
}
else break;
}
}
//向右上
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[3] != null)
{
xRememberNode = xRememberNode.unitPool[3];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[2] != null)
{
influencePreviewPool.Add(currentNode.unitPool[2]);
currentNode = currentNode.unitPool[2];
}
else break;
}
}
//向上
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[2] != null)
{
xRememberNode = xRememberNode.unitPool[2];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[1] != null)
{
influencePreviewPool.Add(currentNode.unitPool[1]);
currentNode = currentNode.unitPool[1];
}
else break;
}
}
//向左上
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[1] != null)
{
xRememberNode = xRememberNode.unitPool[1];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[0] != null)
{
influencePreviewPool.Add(currentNode.unitPool[0]);
currentNode = currentNode.unitPool[0];
}
else break;
}
}
//迭代六次-顺时针
//向左
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[5] != null)
{
xRememberNode = xRememberNode.unitPool[5];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[0] != null)
{
if(currentNode.influenced==false)
{
influencePreviewPool.Add(currentNode.unitPool[0]);
currentNode = currentNode.unitPool[0];
}
}
else break;
}
}
//向左下
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[4] != null)
{
xRememberNode = xRememberNode.unitPool[4];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[5] != null)
{
if (currentNode.influenced == false)
{
influencePreviewPool.Add(currentNode.unitPool[5]);
currentNode = currentNode.unitPool[5];
}
}
else break;
}
}
//向右
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[3] != null)
{
xRememberNode = xRememberNode.unitPool[3];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[4] != null)
{
if (currentNode.influenced == false)
{
influencePreviewPool.Add(currentNode.unitPool[4]);
currentNode = currentNode.unitPool[4];
}
}
else break;
}
}
//向右上
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[2] != null)
{
xRememberNode = xRememberNode.unitPool[2];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[3] != null)
{
if (currentNode.influenced == false)
{
influencePreviewPool.Add(currentNode.unitPool[3]);
currentNode = currentNode.unitPool[3];
}
}
else break;
}
}
//向上
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[1] != null)
{
xRememberNode = xRememberNode.unitPool[1];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[2] != null)
{
if (currentNode.influenced == false)
{
influencePreviewPool.Add(currentNode.unitPool[2]);
currentNode = currentNode.unitPool[2];
}
}
else break;
}
}
//向左上
xRememberNode = playerNode;//记忆标量归位
for (int j = 0; j < step; j++)
{
// surchPoint.y = currentNode.locationY+j+1;
// surchPoint.x = currentNode.locationX;
if (j != 0)
{
if (xRememberNode.unitPool[0] != null)
{
xRememberNode = xRememberNode.unitPool[0];//延迟一步
}
else break;
}
currentNode = xRememberNode;
for (int k = 0; k < step - j; k++)
{
if (currentNode.unitPool[1] != null)
{
if (currentNode.influenced == false)
{
influencePreviewPool.Add(currentNode.unitPool[1]);
currentNode = currentNode.unitPool[1];
}
}
else break;
}
}
//遍历影响池变色
foreach (MapUnity mapUnity in influencePreviewPool)
{
mapUnity.PlayerInfluenced(influencePreviewPool);
mapUnity.playerMark.meshRenderer.material = mapUnity.red;
}
}
#region 计算贝塞尔曲线的拟合点
public List<Vector3> CalculatePath(List <Vector3 > linePath , float posCount,Vector3 lineStart,Vector3 lineMiddel,Vector3 lineEnd)

4
ColorlessWorld-2024-4-2/Assets/Scripts/Servent/KindOfServent/ServantBottleCat.cs

@ -70,7 +70,7 @@ public class ServantBottleCat : Servant
foreach (MapUnity mapUnity in influencePreviewPool)
{
mapUnity.PlayerInfluenced(influencePreviewPool);
mapUnity.playerMark.meshRenderer.material = mapUnity.red;
mapUnity.playerMark.material = mapUnity.red;
}
TurnMaster.Instance.servantAction = TurnMaster.ServantAction.useSkill;
}
@ -82,7 +82,7 @@ public class ServantBottleCat : Servant
foreach (MapUnity mapUnity in influencePreviewPool)
{
mapUnity.PlayerInfluenced(influencePreviewPool);
mapUnity.playerMark.meshRenderer.material = mapUnity.red;
mapUnity.playerMark.material = mapUnity.red;
}
TurnMaster.Instance.servantAction = TurnMaster.ServantAction.useSkill;
}

2
ColorlessWorld-2024-4-2/Assets/Scripts/Servent/Servant.cs

@ -264,7 +264,7 @@ public class Servant : MonoBehaviour
foreach (MapUnity mapUnity in influencePreviewPool)
{
mapUnity.PlayerInfluenced(influencePreviewPool);
mapUnity.playerMark.meshRenderer.material = mapUnity.red;
mapUnity.playerMark.material = mapUnity.red;
}
//StepPreviewInfluencedNode(GameManager.Instance.playerState.currentStepRange);
//TurnMaster.Instance.servantAction = TurnMaster.ServantAction.move;

4
ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs

@ -215,7 +215,7 @@ public class MapUnityManager : Singleton<MapUnityManager>
foreach (MapUnity mapUnity in castPool)
{
mapUnity.PlayerInfluenced(castPool);
mapUnity.playerMark.meshRenderer.material = mapUnity.red;
mapUnity.playerMark.material = mapUnity.red;
}
}
@ -225,7 +225,7 @@ public class MapUnityManager : Singleton<MapUnityManager>
foreach (MapUnity mapUnity in castPool)
{
mapUnity.PlayerInfluenced(castPool);
mapUnity.playerMark.meshRenderer.material = mapUnity.red;
mapUnity.playerMark.material = mapUnity.red;
}
}
}

Loading…
Cancel
Save