create mob death mehanics

This commit is contained in:
dart 2022-04-03 01:47:57 +03:00
parent d40bdce3be
commit 4300d43f92
5 changed files with 126 additions and 25 deletions

View File

@ -25,7 +25,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1199223373439478175} m_GameObject: {fileID: 1199223373439478175}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0.0704} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 1137981222306597008} m_Father: {fileID: 1137981222306597008}
@ -93,6 +93,7 @@ GameObject:
- component: {fileID: 1137981222306597008} - component: {fileID: 1137981222306597008}
- component: {fileID: 8044390793844211544} - component: {fileID: 8044390793844211544}
- component: {fileID: 4520856288189812233} - component: {fileID: 4520856288189812233}
- component: {fileID: 3826968412464473223}
m_Layer: 0 m_Layer: 0
m_Name: character m_Name: character
m_TagString: Untagged m_TagString: Untagged
@ -108,7 +109,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8275013663521780488} m_GameObject: {fileID: 8275013663521780488}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -1.9470656, y: 1.0665642, z: -0.07037996} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 8006084803627600395} - {fileID: 8006084803627600395}
@ -125,7 +126,7 @@ BoxCollider2D:
m_Enabled: 1 m_Enabled: 1
m_Density: 1 m_Density: 1
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_IsTrigger: 0 m_IsTrigger: 1
m_UsedByEffector: 0 m_UsedByEffector: 0
m_UsedByComposite: 0 m_UsedByComposite: 0
m_Offset: {x: -0.020021677, y: 0.0039904118} m_Offset: {x: -0.020021677, y: 0.0039904118}
@ -156,3 +157,24 @@ MonoBehaviour:
health: 250 health: 250
damage: 10 damage: 10
moveSpeed: 0.02 moveSpeed: 0.02
--- !u!50 &3826968412464473223
Rigidbody2D:
serializedVersion: 4
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8275013663521780488}
m_BodyType: 0
m_Simulated: 1
m_UseFullKinematicContacts: 0
m_UseAutoMass: 0
m_Mass: 0.0001
m_LinearDrag: 0
m_AngularDrag: 0
m_GravityScale: 0
m_Material: {fileID: 0}
m_Interpolate: 0
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 0

View File

@ -43,7 +43,7 @@ BoxCollider2D:
m_Enabled: 1 m_Enabled: 1
m_Density: 1 m_Density: 1
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_IsTrigger: 0 m_IsTrigger: 1
m_UsedByEffector: 0 m_UsedByEffector: 0
m_UsedByComposite: 0 m_UsedByComposite: 0
m_Offset: {x: -0.0049001575, y: -0.026252389} m_Offset: {x: -0.0049001575, y: -0.026252389}
@ -71,6 +71,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 7dc89d6f20b8bd496a76c3dad9b1b832, type: 3} m_Script: {fileID: 11500000, guid: 7dc89d6f20b8bd496a76c3dad9b1b832, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
characterObject: {fileID: 0}
moveSpeed: 0
minDist: 0
maxDist: 0
--- !u!1 &6540482753690656168 --- !u!1 &6540482753690656168
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -96,7 +100,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6540482753690656168} m_GameObject: {fileID: 6540482753690656168}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0.0704} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 5020074052172004519} m_Father: {fileID: 5020074052172004519}

View File

@ -567,15 +567,15 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 1137981222306597008, guid: d58051113365413fe9782fa6b28125fc, type: 3} - target: {fileID: 1137981222306597008, guid: d58051113365413fe9782fa6b28125fc, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: -0.38 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 1137981222306597008, guid: d58051113365413fe9782fa6b28125fc, type: 3} - target: {fileID: 1137981222306597008, guid: d58051113365413fe9782fa6b28125fc, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: 0.49 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 1137981222306597008, guid: d58051113365413fe9782fa6b28125fc, type: 3} - target: {fileID: 1137981222306597008, guid: d58051113365413fe9782fa6b28125fc, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: -0.07037996 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 1137981222306597008, guid: d58051113365413fe9782fa6b28125fc, type: 3} - target: {fileID: 1137981222306597008, guid: d58051113365413fe9782fa6b28125fc, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
@ -619,11 +619,19 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8006084803627600395, guid: d58051113365413fe9782fa6b28125fc, type: 3} - target: {fileID: 8006084803627600395, guid: d58051113365413fe9782fa6b28125fc, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 0.34 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8006084803627600395, guid: d58051113365413fe9782fa6b28125fc, type: 3} - target: {fileID: 8006084803627600395, guid: d58051113365413fe9782fa6b28125fc, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: 0.28 value: 0
objectReference: {fileID: 0}
- target: {fileID: 8044390793844211544, guid: d58051113365413fe9782fa6b28125fc, type: 3}
propertyPath: m_Offset.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8044390793844211544, guid: d58051113365413fe9782fa6b28125fc, type: 3}
propertyPath: m_Offset.y
value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8275013663521780488, guid: d58051113365413fe9782fa6b28125fc, type: 3} - target: {fileID: 8275013663521780488, guid: d58051113365413fe9782fa6b28125fc, type: 3}
propertyPath: m_Name propertyPath: m_Name

View File

@ -6,6 +6,7 @@
public class Mob : MonoBehaviour public class Mob : MonoBehaviour
{ {
[SerializeField] private GameObject characterObject; [SerializeField] private GameObject characterObject;
[SerializeField] private OverMind overMind;
[SerializeField] private float moveSpeed; [SerializeField] private float moveSpeed;
@ -66,16 +67,19 @@ void Update()
} }
} }
} }
void OnTriggerEnter2D(Collider2D col)
private void OnTriggerEnter2D(Collider2D col)
{ {
print("Detect"); Debug.Log("PIZDAAAAAA");
gameObject.SetActive(false); overMind.DeathGoToPull(gameObject);
} }
private void Death()
{
}
public void SetupMob(OverMind.MobParameters mobParameters) public void SetupMob(OverMind.MobParameters mobParameters)
{ {
characterObject = mobParameters.Character; characterObject = mobParameters.Character;
moveSpeed = mobParameters.MoveSpeed; moveSpeed = mobParameters.MoveSpeed;
overMind = mobParameters.OverMind;
} }
} }

View File

@ -16,18 +16,79 @@ public class OverMind : MonoBehaviour
private List<GameObject> _pullEnemies; private List<GameObject> _pullEnemies;
public struct SpawnRegions
{
public Vector4 TopRegion;
public Vector4 BottomRegion;
public Vector4 LeftRegion;
public Vector4 RightRegion;
}
private SpawnRegions generatedSpawnRegions;
public struct MobParameters public struct MobParameters
{ {
public float MoveSpeed; public float MoveSpeed;
public GameObject Character; public GameObject Character;
public OverMind OverMind;
} }
void Start() void Start()
{ {
PreHeaterSpawn(); PreHeaterSpawn();
StartCoroutine (spawnMobsCourutine()); StartCoroutine (spawnMobsCourutine());
} print(GenerateSpawnRegions().TopRegion);
generatedSpawnRegions = GenerateSpawnRegions();
}
public SpawnRegions GenerateSpawnRegions()
{
const float spawnBorder = 2f;
var stageDimensions = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width, Screen.height,0));
print(stageDimensions);
var generatedSpawnRegions = new SpawnRegions();
generatedSpawnRegions.TopRegion = new Vector4(
-stageDimensions.x, stageDimensions.x,
stageDimensions.y, stageDimensions.y + spawnBorder);
generatedSpawnRegions.BottomRegion = new Vector4(
-stageDimensions.x, stageDimensions.x,
-stageDimensions.y, -stageDimensions.y - spawnBorder);
generatedSpawnRegions.LeftRegion = new Vector4(
-stageDimensions.x, -stageDimensions.x - spawnBorder,
stageDimensions.y, -stageDimensions.y);
generatedSpawnRegions.RightRegion = new Vector4(
stageDimensions.x, -stageDimensions.x + spawnBorder,
stageDimensions.y, -stageDimensions.y);
return generatedSpawnRegions;
}
private Vector4 PickRandomSpawnBorder()
{
var randomIndex = Random.Range(1, 4);
var _randomSpawnBorder = new Vector4();
switch (randomIndex)
{
case 1:
_randomSpawnBorder = generatedSpawnRegions.TopRegion;
break;
case 2:
_randomSpawnBorder = generatedSpawnRegions.BottomRegion;
break;
case 3:
_randomSpawnBorder = generatedSpawnRegions.LeftRegion;
break;
case 4:
_randomSpawnBorder = generatedSpawnRegions.RightRegion;
break;
}
return _randomSpawnBorder;
}
private void PreHeaterSpawn() private void PreHeaterSpawn()
{ {
for (var i = 0; i < pullSize; i++) for (var i = 0; i < pullSize; i++)
@ -39,7 +100,8 @@ private void PreHeaterSpawn()
var newMobParameters = new MobParameters var newMobParameters = new MobParameters
{ {
MoveSpeed = mobMoveSpeed, MoveSpeed = mobMoveSpeed,
Character = characterObject Character = characterObject,
OverMind = this
}; };
newMob.GetComponent<Mob>().SetupMob(newMobParameters); newMob.GetComponent<Mob>().SetupMob(newMobParameters);
@ -48,15 +110,10 @@ private void PreHeaterSpawn()
Vector3 GenerateRandomSpawnMobPoint() Vector3 GenerateRandomSpawnMobPoint()
{ {
var spawnBorder = 2f; var _randomSpawnRegion = PickRandomSpawnBorder();
Vector3 stageDimensions = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width, Screen.height,0));
print(stageDimensions);
var xCoords = new Vector3(stageDimensions.x, stageDimensions.x + spawnBorder);
var yCoords = new Vector3(stageDimensions.y, stageDimensions.y + spawnBorder);
var spawnPoint = new Vector3( var spawnPoint = new Vector3(
Random.Range(xCoords.x, xCoords.y), Random.Range(_randomSpawnRegion.x,_randomSpawnRegion.y),
Random.Range(xCoords.x, xCoords.y), Random.Range(_randomSpawnRegion.z,_randomSpawnRegion.w),
0 0
); );
@ -80,6 +137,12 @@ IEnumerator spawnMobsCourutine()
} }
} }
public void DeathGoToPull(GameObject mob)
{
mob.SetActive(false);
mob.transform.parent = mobPull.transform;
}
// Update is called once per frame // Update is called once per frame
void Update() void Update()
{ {