V3.3.7 转移SceneBlockPrefabSet

转移SceneBlockPrefabSet至Scene Start的StartSceneData中
This commit is contained in:
2023-10-08 23:56:11 +09:00
parent 86e51f849f
commit 9219b3d0da
21 changed files with 714 additions and 637 deletions
-1
View File
@@ -29,7 +29,6 @@ public class EnemyContainer : MonoBehaviour
// initialize enemy by random but not in block area
public void RandomInitEnemysExcept(int enemyNum, Vector3 blockPosition, float sceneSize)
{
Debug.Log("RandomInitEnemysExcept");
float randX = 0f;
float randZ = 0f;
for (int i = 0; i < enemyNum; i++)
@@ -130,6 +130,9 @@ public class ParameterContainer : MonoBehaviour
[Tooltip("free Win reward")]
public float freeWinReward = 50.0f;
[Tooltip("Scene Prefab Set")]
public SceneBlocksSet scenePrefabSet;
private float targetTimeBonus = 0f;
private float areaTimeBonus = 0f;
private float freeTimeBonus = 0f;
@@ -175,6 +178,7 @@ public class ParameterContainer : MonoBehaviour
gotoLevelProbs = startSceneData.gotoLevelProbs;
defenceProb = startSceneData.defenceProb;
defenceLevelProbs = startSceneData.defenceLevelProbs;
scenePrefabSet = startSceneData.scenePrefabSet;
}
private void Update()
+5 -5
View File
@@ -4,20 +4,20 @@ public class SceneBlockContainer : MonoBehaviour
{
public float sceneSize = 10f;
public GameObject environmentObj;
public GameObject parameterContainerObj;
public GameObject hudObj;
// public GameObject[] attackBlockPrefabs = new GameObject[1];
// public GameObject[] goBlockPrefabs = new GameObject[1];
// public GameObject[] defencePrefabs = new GameObject[1];
public SceneBlocksSet scenePrefabSet;
private GameObject nowBlockObj;
public SceneBlock nowBlock;
private GameObject nowBlockObj;
private ParameterContainer paramCon;
private void Start()
{
// initialize scene prefab set
scenePrefabSet.InitializeSceneBlocksSet(hudObj);
paramCon = parameterContainerObj.GetComponent<ParameterContainer>();
}
/// <summary>
@@ -40,7 +40,7 @@ public class SceneBlockContainer : MonoBehaviour
DestroyBlock();
}
// choose target type
nowBlockObj = Instantiate(scenePrefabSet.GetPrefab(level, blockType, targetType), blockPosition + environmentObj.transform.position, Quaternion.identity, transform);
nowBlockObj = Instantiate(paramCon.scenePrefabSet.GetPrefab(level, blockType, targetType), blockPosition + environmentObj.transform.position, Quaternion.identity, transform);
nowBlock = nowBlockObj.GetComponent<SceneBlock>();
nowBlock.group1Tag = tag1;
nowBlock.group2Tag = tag2;
+7 -7
View File
@@ -105,8 +105,8 @@ public class TargetController : MonoBehaviour
freeProb = 1 - attackProb - gotoProb - defenceProb;
targetNum = (int)Targets.Num;
gotoLevelNum = sceneBlockCon.scenePrefabSet.GetLevelNumber(Targets.Go);
attackLevelNum = sceneBlockCon.scenePrefabSet.GetLevelNumber(Targets.Attack);
gotoLevelNum = paramCon.scenePrefabSet.GetLevelNumber(Targets.Go);
attackLevelNum = paramCon.scenePrefabSet.GetLevelNumber(Targets.Attack);
if (freeProb < 0)
{
Debug.LogError("TargetController.Start: target percentage wrong");
@@ -166,7 +166,7 @@ public class TargetController : MonoBehaviour
else if (randTargetType > gotoProb && randTargetType <= gotoProb + attackProb)
{
// attack target spawn
Debug.Log("ATTACK!");
Debug.Log("ATTACK Mode Start");
targetTypeInt = (int)Targets.Attack;
RandomSpawnSceneBlock(Targets.Attack);
// set startDistance
@@ -176,7 +176,7 @@ public class TargetController : MonoBehaviour
else if (randTargetType > gotoProb + attackProb && randTargetType <= gotoProb + attackProb + defenceProb)
{
// defence target spawn
Debug.Log("DEFENCE!");
Debug.Log("DEFENCE Mode Start");
targetTypeInt = (int)Targets.Defence;
RandomSpawnSceneBlock(Targets.Defence);
// set startDistance
@@ -184,7 +184,7 @@ public class TargetController : MonoBehaviour
}
else
{
Debug.Log("Free");
Debug.Log("Free Mode Start");
targetTypeInt = (int)Targets.Free;
enemyCon.DestroyAllEnemys();
enemyCon.RandomInitEnemys(hudCon.enemyNum);
@@ -257,8 +257,8 @@ public class TargetController : MonoBehaviour
private void RandomSpawnSceneBlock(Targets targetType)
{
randLevel = RollRandomLevelIndex(targetType);
randBlockType = Random.Range(0, sceneBlockCon.scenePrefabSet.GetBlockNumber(randLevel,targetType));
sceneBlockSize = sceneBlockCon.scenePrefabSet.GetBlockSize(randLevel, randBlockType, targetType);
randBlockType = Random.Range(0, paramCon.scenePrefabSet.GetBlockNumber(randLevel,targetType));
sceneBlockSize = paramCon.scenePrefabSet.GetBlockSize(randLevel, randBlockType, targetType);
float randX = UnityEngine.Random.Range(minEnemyAreaX + sceneBlockSize / 2 + 1f, maxEnemyAreaX - sceneBlockSize / 2 - 1f);
float randZ = UnityEngine.Random.Range(minEnemyAreaZ + sceneBlockSize / 2 + 1f, maxEnemyAreaZ - sceneBlockSize / 2 - 1f);