Added all four gun types and firing bullets stable (although there is some slight 'recoil' for some variations)
This commit is contained in:
@@ -92,7 +92,7 @@ Rigidbody2D:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6732034634797273297}
|
||||
m_BodyType: 0
|
||||
m_BodyType: 1
|
||||
m_Simulated: 1
|
||||
m_UseFullKinematicContacts: 0
|
||||
m_UseAutoMass: 0
|
||||
@@ -143,4 +143,3 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: a30097626420c2945aa94dc3cee845d7, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
speed: 5
|
||||
|
||||
@@ -15,7 +15,7 @@ GameObject:
|
||||
- component: {fileID: 7683230909844016913}
|
||||
m_Layer: 0
|
||||
m_Name: Obstacle
|
||||
m_TagString: Untagged
|
||||
m_TagString: Obstacle
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
@@ -130,7 +130,7 @@ Rigidbody2D:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6511841225854600656}
|
||||
m_BodyType: 2
|
||||
m_BodyType: 0
|
||||
m_Simulated: 1
|
||||
m_UseFullKinematicContacts: 0
|
||||
m_UseAutoMass: 0
|
||||
|
||||
@@ -396,6 +396,11 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: Wall Down
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6511841225854600656, guid: 839e7f2e94b70514dbc986f93edcae38,
|
||||
type: 3}
|
||||
propertyPath: m_TagString
|
||||
value: Obstacle
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents:
|
||||
- {fileID: 5726703938094994942, guid: 839e7f2e94b70514dbc986f93edcae38, type: 3}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 839e7f2e94b70514dbc986f93edcae38, type: 3}
|
||||
@@ -477,6 +482,11 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: Wall Left
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6511841225854600656, guid: 839e7f2e94b70514dbc986f93edcae38,
|
||||
type: 3}
|
||||
propertyPath: m_TagString
|
||||
value: Obstacle
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents:
|
||||
- {fileID: 5726703938094994942, guid: 839e7f2e94b70514dbc986f93edcae38, type: 3}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 839e7f2e94b70514dbc986f93edcae38, type: 3}
|
||||
@@ -609,6 +619,11 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: Wall Up
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6511841225854600656, guid: 839e7f2e94b70514dbc986f93edcae38,
|
||||
type: 3}
|
||||
propertyPath: m_TagString
|
||||
value: Obstacle
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents:
|
||||
- {fileID: 5726703938094994942, guid: 839e7f2e94b70514dbc986f93edcae38, type: 3}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 839e7f2e94b70514dbc986f93edcae38, type: 3}
|
||||
@@ -690,6 +705,11 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: Wall Right
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6511841225854600656, guid: 839e7f2e94b70514dbc986f93edcae38,
|
||||
type: 3}
|
||||
propertyPath: m_TagString
|
||||
value: Obstacle
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents:
|
||||
- {fileID: 5726703938094994942, guid: 839e7f2e94b70514dbc986f93edcae38, type: 3}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 839e7f2e94b70514dbc986f93edcae38, type: 3}
|
||||
|
||||
@@ -24,20 +24,14 @@ public class BulletScript : MonoBehaviour
|
||||
void OnCollisionEnter2D(Collision2D other)
|
||||
{
|
||||
|
||||
if(other.gameObject.tag != "Player")
|
||||
if(other.gameObject.tag != "Player" && other.gameObject.tag != "Bullet")
|
||||
{
|
||||
Destroy(gameObject);
|
||||
}
|
||||
|
||||
if(other.gameObject.tag == "Player")
|
||||
{
|
||||
Physics2D.IgnoreCollision(
|
||||
other.gameObject.GetComponent<Collider2D>(), GetComponent<Collider2D>());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void OnBecameInvisible()
|
||||
void OnBecameInvisible()
|
||||
{
|
||||
Destroy(gameObject);
|
||||
}
|
||||
|
||||
@@ -28,9 +28,7 @@ public class PlayerScript : MonoBehaviour
|
||||
if(Input.GetButton("Fire1") && myTime > nextFire)
|
||||
{
|
||||
nextFire = myTime + 0.5f;
|
||||
GameObject newBullet = Instantiate(bullet, transform.position, Quaternion.Euler(0,0,Random.Range(0.0f, 360.0f)));
|
||||
float scaleChange = Random.Range(0.5f, 1.5f);
|
||||
newBullet.transform.localScale = new Vector2(scaleChange, scaleChange);
|
||||
GunFire(Random.Range(0.0f, 360.0f));
|
||||
nextFire = nextFire - myTime;
|
||||
myTime = 0.0f;
|
||||
}
|
||||
@@ -61,4 +59,69 @@ public class PlayerScript : MonoBehaviour
|
||||
|
||||
}
|
||||
|
||||
void GunFire(float aim)
|
||||
{
|
||||
|
||||
int gunSelect = Random.Range(0,4);
|
||||
GameObject newBullet;
|
||||
float scaleChange = 1.0f;
|
||||
Vector3 pos = PlayerCircle(transform.position);
|
||||
Quaternion rot = Quaternion.FromToRotation(Vector3.down, transform.position-pos);
|
||||
|
||||
switch(gunSelect)
|
||||
{
|
||||
|
||||
//pistol
|
||||
case 0:
|
||||
newBullet = Instantiate(bullet, pos, rot);
|
||||
scaleChange = Random.Range(0.5f, 1.5f);
|
||||
newBullet.transform.localScale = new Vector2(scaleChange, scaleChange);
|
||||
break;
|
||||
//shotgun
|
||||
case 1:
|
||||
newBullet = Instantiate(bullet, pos, rot);
|
||||
scaleChange = Random.Range(0.5f, 1.5f);
|
||||
newBullet.transform.localScale = new Vector2(scaleChange, scaleChange);
|
||||
newBullet = Instantiate(bullet, pos+((Vector3.up+Vector3.right)*0.75f), Quaternion.FromToRotation(Vector3.down, transform.position-(pos+((Vector3.up+Vector3.right)*0.75f))));
|
||||
newBullet.transform.localScale = new Vector2(scaleChange, scaleChange);
|
||||
newBullet = Instantiate(bullet, pos+((Vector3.down+Vector3.left)*0.75f), Quaternion.FromToRotation(Vector3.down, transform.position-(pos+((Vector3.down+Vector3.left)*0.75f))));
|
||||
newBullet.transform.localScale = new Vector2(scaleChange, scaleChange);
|
||||
break;
|
||||
//machinegun
|
||||
case 2:
|
||||
newBullet = Instantiate(bullet, pos, rot);
|
||||
scaleChange = Random.Range(0.5f, 1.5f);
|
||||
newBullet.transform.localScale = new Vector2(scaleChange, scaleChange);
|
||||
for(int i = 1 ; i < 5; i++)
|
||||
{
|
||||
newBullet = Instantiate(bullet, pos+(Vector3.down+Vector3.left)*(0.1f*i), Quaternion.FromToRotation(Vector3.down, transform.position-(pos+(Vector3.down+Vector3.left)*(0.1f*i))));
|
||||
newBullet.transform.localScale = new Vector2(scaleChange, scaleChange);
|
||||
}
|
||||
break;
|
||||
//railgun
|
||||
case 3:
|
||||
scaleChange = Random.Range(0.5f, 1.5f);
|
||||
for(int i = 0 ; i < 100; i++)
|
||||
{
|
||||
newBullet = Instantiate(bullet, pos, rot);
|
||||
newBullet.transform.localScale = new Vector2(scaleChange, scaleChange);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
Vector3 PlayerCircle (Vector3 center){
|
||||
float radius = 1.25f;
|
||||
float ang = Random.value * 360;
|
||||
Vector3 circle;
|
||||
|
||||
circle.x = center.x + radius * Mathf.Sin(ang * Mathf.Deg2Rad);
|
||||
circle.y = center.y + radius * Mathf.Cos(ang * Mathf.Deg2Rad);
|
||||
circle.z = 0;
|
||||
|
||||
return circle;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user