fix:添加部分拼刺刀事件

This commit is contained in:
bzx
2025-12-15 11:03:45 +08:00
parent 59f184e4aa
commit 2c56fcb571
7 changed files with 95 additions and 67 deletions

View File

@@ -84,7 +84,7 @@ MonoBehaviour:
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
m_PresetInfoIsWorld: 1
--- !u!114 &604231646819748748
MonoBehaviour:
m_ObjectHideFlags: 0

View File

@@ -9,7 +9,7 @@
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<data android:scheme="picoapp" android:host="launch" android:path="/com.pineappletech.defendnj.ningxiayinchuanjinfengxinhualianguangchang"/>
<data android:scheme="picoapp" android:host="launch" android:path="/com.pineappletech.defendnj.hunanchangdelixianwandaguangchang"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

View File

@@ -9370,7 +9370,7 @@ MonoBehaviour:
IncludeChildColliders: 0
RuntimeFollower: {fileID: 0}
colliderMaxDistance: 100
lastTimeMaxDistanceCalced: 639001864378219333
lastTimeMaxDistanceCalced: 639012212281030474
--- !u!82 &675942809
AudioSource:
m_ObjectHideFlags: 0
@@ -13311,7 +13311,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
version: 1073741824
data:
dataString: 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
dataString: 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
file_cachedStartup: {fileID: 0}
cacheStartup: 0
showNavGraphs: 1

View File

@@ -271,7 +271,7 @@ public class PlayerAI : Agent
public virtual void DoAttack()
{
if (!isServer) return; // 攻击判定/伤害应由 Server 执行Host 权威)
if (GameManager.Ins.gameState == GameState.EndEvent)
if (GameManager.Ins.gameState == GameState.EndEvent|| GameManager.Ins.isPkEvent)
{
AnimatorComponent.SetInteger("state",5);
return;
@@ -295,7 +295,8 @@ public class PlayerAI : Agent
}
else
{
gun.EnemyShoot(target.transform.position);
if(gun!=null)
gun.EnemyShoot(target.transform.position);
}
}
}

View File

@@ -171,7 +171,7 @@ public class GameManager : NetworkBehaviour
[SyncVar]
public long vistEnd = 0;
// 总游玩时长
private int vistAllTime = (int)(60*12);
private int vistAllTime = (int)(60*7);//开启最后拼刺刀模式
[SyncVar]
public string settleData = "";
@@ -184,6 +184,8 @@ public class GameManager : NetworkBehaviour
public int curRoundWaveTime;
public GameObject player;
[SyncVar] public bool isPkEvent;
//添加
[Header("AI角色")]
public GameObject aiCharacterPre;//AI角色预制体
@@ -205,10 +207,14 @@ public class GameManager : NetworkBehaviour
private List<Vector3> smoothedPath = new List<Vector3>();
public void GamePlay()
{
CreateAICharacter();
//CreateAICharacter();
isAIIntroductionComplete = true;
GameLocal .Ins .BGMState .gameObject .SetActive (true);
if (isClient)
{
isStart = false;
CreateDoor();
}
}
//修改处添加AI介绍完成后的游戏开始方法
@@ -388,7 +394,7 @@ public class GameManager : NetworkBehaviour
{
Debug.Log("正在退出游戏...");
Application.Quit();
}, 5f);
}, 10f);
}
@@ -429,23 +435,28 @@ public class GameManager : NetworkBehaviour
// }
// curRoundEnemyCount = EnemyList.Count;
//}
public void PlayEndEvent()
public void PlayEndEvent(bool isEnd)
{
Debug.LogError("开启End事件");
gameState = GameState.EndEvent;
if (isEnd)
{
gameState = GameState.EndEvent;
PlaySound2DRPC("1.61");
}
GivePistol(GunType.MeleeWeapon);
foreach (var item in PlayerAiList.Values)
{
item.EndEvent();
}
PlaySound2DRPC("1.61");
OpenDoor();
// 定义3x3范围的中心点和大小
Vector3 centerPos = GameLocal.Ins.pkPos.position;
float areaSize = 3f; // 3x3的范围
for (int i = 0; i < 7; i++)
int createCount = isEnd ? 7 : 15;
for (int i = 0; i < createCount; i++)
{
Transform[] targetPos = GameLocal.Ins.enemyEndPos;
GameObject enemy = Instantiate(enemyEndAiPre);
@@ -473,61 +484,64 @@ public class GameManager : NetworkBehaviour
enemyIndex++;
Enemy enemyScript = enemy.GetComponent<Enemy>();
enemyScript.OnSpawn(enemyIndex, 3, 1, GameLocal.Ins.pkPos.position);
enemyScript.OnSpawn(enemyIndex, 3, 1, isEnd? GameLocal.Ins.pkPos.position: GameLocal.Ins.self.transform.position);
enemyScript.ai.maxSpeed = 2;
EnemyList.Add(enemyIndex, enemyScript);
GameObject playerAi = Instantiate(playerEndAiPres);
NetworkServer.Spawn(playerAi);
// 检查是否为指定场地
if (GameLocal.Ins.place == Place.Jiangsu_Xvzhou_Guolou_Oulebao)
if (isEnd)
{
// 在3x3范围内随机生成位置确保与敌人位置不重叠
Vector3 randomOffset;
bool positionValid;
int attempts = 0;
do
GameObject playerAi = Instantiate(playerEndAiPres);
NetworkServer.Spawn(playerAi);
// 检查是否为指定场地
if (GameLocal.Ins.place == Place.Jiangsu_Xvzhou_Guolou_Oulebao)
{
randomOffset = new Vector3(
Random.Range(-areaSize / 2f, areaSize / 2f),
0,
Random.Range(-areaSize / 2f, areaSize / 2f)
);
// 在3x3范围内随机生成位置确保与敌人位置不重叠
Vector3 randomOffset;
bool positionValid;
int attempts = 0;
// 检查是否与现有单位位置太近
positionValid = true;
Vector3 proposedPos = centerPos + randomOffset;
foreach (var existingEnemy in EnemyList.Values)
do
{
if (Vector3.Distance(proposedPos, existingEnemy.transform.position) < 0.8f) // 稍微减小最小距离
randomOffset = new Vector3(
Random.Range(-areaSize / 2f, areaSize / 2f),
0,
Random.Range(-areaSize / 2f, areaSize / 2f)
);
// 检查是否与现有单位位置太近
positionValid = true;
Vector3 proposedPos = centerPos + randomOffset;
foreach (var existingEnemy in EnemyList.Values)
{
positionValid = false;
break;
if (Vector3.Distance(proposedPos, existingEnemy.transform.position) < 0.8f) // 稍微减小最小距离
{
positionValid = false;
break;
}
}
}
attempts++;
if (attempts > 15) break; // 增加尝试次数
attempts++;
if (attempts > 15) break; // 增加尝试次数
} while (!positionValid);
} while (!positionValid);
playerAi.transform.position = centerPos + randomOffset;
playerAi.transform.eulerAngles = Vector3.zero; // 或者设置随机朝向
playerAi.transform.position = centerPos + randomOffset;
playerAi.transform.eulerAngles = Vector3.zero; // 或者设置随机朝向
}
else
{
// 原有逻辑
playerAi.transform.position = GameLocal.Ins.endPlayerStartPos.position;
playerAi.transform.eulerAngles = AiInfos[1].EulerAngles;
}
PlayerAI playerAI = playerAi.GetComponent<PlayerAI>();
playerAI.OnSpawn(i + 2, PlayerAIType.EndPlayerAi, 1, enemy);
playerAI.ai.maxSpeed = 2;
PlayerAiList.Add(i + 2, playerAI);
}
else
{
// 原有逻辑
playerAi.transform.position = GameLocal.Ins.endPlayerStartPos.position;
playerAi.transform.eulerAngles = AiInfos[1].EulerAngles;
}
PlayerAI playerAI = playerAi.GetComponent<PlayerAI>();
playerAI.OnSpawn(i + 2, PlayerAIType.EndPlayerAi, 1, enemy);
playerAI.ai.maxSpeed = 2;
PlayerAiList.Add(i + 2, playerAI);
}
curRoundEnemyCount = EnemyList.Count;
@@ -741,7 +755,21 @@ public class GameManager : NetworkBehaviour
var roundInfo=RoundInfos[curRoundIndex];
// curRoundIndex=5;
// roundInfo= RoundInfos[curRoundIndex];
StartEvent(roundInfo);
bool isPk;
int pkIndex = Random.Range(0, 100);
isPk = pkIndex <= 20;
if (isPk)
{
isPkEvent = true;
PlayEndEvent(false);
}
else
{
isPkEvent = false;
GivePistol(GunType.Pistol);
StartEvent(roundInfo);
}
if (roundIndex==5)
{
CoroutineTaskManager.Instance.WaitSecondTodo(() =>
@@ -859,7 +887,7 @@ public class GameManager : NetworkBehaviour
}, 5);
break;
case GameEnemyEventType.CleanUp:
CreateEnemyEndBullet();
CreateEnemyEndBullet(true);
break;
}
}
@@ -991,7 +1019,7 @@ public class GameManager : NetworkBehaviour
}
public void CreateEnemyEndBullet()
public void CreateEnemyEndBullet(bool isEvent)
{
PlayerAiList[0].PlaySound3DRPC("1.65",true);
OpenEndBullet();
@@ -1008,7 +1036,7 @@ public class GameManager : NetworkBehaviour
}, 5);
CoroutineTaskManager.Instance.WaitSecondTodo(() =>
{
PlayEndEvent();
PlayEndEvent(isEvent);
DownEndBullet();
}, 8);
}
@@ -1068,7 +1096,6 @@ public class GameManager : NetworkBehaviour
{
gameState = GameState.Victory;
GameOver();
}
}
}

View File

@@ -5,7 +5,7 @@ EditorBuildSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Scenes:
- enabled: 1
- enabled: 0
path: Assets/_DefendNJ/Scenes/Company1Floor.unity
guid: 386a8fdea01af8a4e8d4a9835407ddec
- enabled: 0
@@ -101,7 +101,7 @@ EditorBuildSettings:
- enabled: 0
path: Assets/_DefendNJ/Scenes/Shanxi_Baoji_Meixian_TianlongShangcheng.unity
guid: da9dd7d980e281444bd142f8e6b9808e
- enabled: 0
- enabled: 1
path: Assets/_DefendNJ/Scenes/Hunan_Changde_Lixian_WandaGuangchang.unity
guid: c74b91fe6f0796e468bdbfc80c963893
- enabled: 0
@@ -134,7 +134,7 @@ EditorBuildSettings:
- enabled: 0
path: Assets/_DefendNJ/Scenes/Company1FloorShiwai.unity
guid: 8f335f3caf2191d46a73b164c0b01527
- enabled: 1
- enabled: 0
path: Assets/_DefendNJ/Scenes/Ningxia_Yinchuan_Jinfeng_XinhualianGuangchang.unity
guid: 6f47e333e3b608e419e72391e3b77ca2
m_configObjects:

View File

@@ -163,7 +163,7 @@ PlayerSettings:
androidSupportedAspectRatio: 1
androidMaxAspectRatio: 2.1
applicationIdentifier:
Android: com.pineappletech.defendnj.ningxiayinchuanjinfengxinhualianguangchang
Android: com.pineappletech.defendnj.hunanchangdelixianwandaguangchang
Standalone: com.DefaultCompany.com.unity.template.ar
buildNumber:
Standalone: 0