Quickly added Enemy_4
This commit is contained in:
@@ -38,7 +38,7 @@ RenderSettings:
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 705507994}
|
||||
m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
|
||||
m_IndirectSpecularColor: {r: 0.18028328, g: 0.22571328, b: 0.3069218, a: 1}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
@@ -475,6 +475,7 @@ MonoBehaviour:
|
||||
- {fileID: 1716873588767813483, guid: ba65718b1eee9fde8b64fc1c56f7fcd7, type: 3}
|
||||
- {fileID: 1454311047477341964, guid: c033931eb931661a285a471741bae343, type: 3}
|
||||
- {fileID: 1454311047477341964, guid: c033931eb931661a285a471741bae343, type: 3}
|
||||
- {fileID: 5688048094632641677, guid: 68c912c6fd38ee6258ae1295410e82ea, type: 3}
|
||||
enemySpawnPerSecond: 0.5
|
||||
enemyDefaultPadding: 1.5
|
||||
--- !u!1 &998017458
|
||||
|
||||
@@ -183,7 +183,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: a2b7c79b712fe5c9ca22495cdf2f32b7, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
radius: -2.5
|
||||
radius: 3
|
||||
keepOnScreen: 0
|
||||
isOnScreen: 1
|
||||
camWidth: 0
|
||||
|
||||
@@ -375,7 +375,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: a2b7c79b712fe5c9ca22495cdf2f32b7, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
radius: -2.5
|
||||
radius: 2.5
|
||||
keepOnScreen: 0
|
||||
isOnScreen: 1
|
||||
camWidth: 0
|
||||
|
||||
@@ -10,6 +10,8 @@ GameObject:
|
||||
m_Component:
|
||||
- component: {fileID: 5688048094632641678}
|
||||
- component: {fileID: 5688048094632641679}
|
||||
- component: {fileID: 6012299646585092094}
|
||||
- component: {fileID: 6289777641844929688}
|
||||
m_Layer: 9
|
||||
m_Name: Enemy_4
|
||||
m_TagString: Enemy
|
||||
@@ -52,6 +54,67 @@ Rigidbody:
|
||||
m_Interpolate: 0
|
||||
m_Constraints: 120
|
||||
m_CollisionDetection: 0
|
||||
--- !u!114 &6012299646585092094
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5688048094632641677}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a2b7c79b712fe5c9ca22495cdf2f32b7, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
radius: 3.5
|
||||
keepOnScreen: 0
|
||||
isOnScreen: 1
|
||||
camWidth: 0
|
||||
camHeight: 0
|
||||
offRight: 0
|
||||
offLeft: 0
|
||||
offUp: 0
|
||||
offDown: 0
|
||||
--- !u!114 &6289777641844929688
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5688048094632641677}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 890512b9c88f600408f25130d273807b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
speed: 10
|
||||
fireRate: 0.3
|
||||
health: 10
|
||||
score: 100
|
||||
parts:
|
||||
- name: Cockpit
|
||||
health: 10
|
||||
protectedBy:
|
||||
- Fuselage
|
||||
go: {fileID: 0}
|
||||
mat: {fileID: 0}
|
||||
- name: Fuselage
|
||||
health: 10
|
||||
protectedBy:
|
||||
- WingL
|
||||
- WingR
|
||||
go: {fileID: 0}
|
||||
mat: {fileID: 0}
|
||||
- name: WingL
|
||||
health: 10
|
||||
protectedBy: []
|
||||
go: {fileID: 0}
|
||||
mat: {fileID: 0}
|
||||
- name: WingR
|
||||
health: 10
|
||||
protectedBy: []
|
||||
go: {fileID: 0}
|
||||
mat: {fileID: 0}
|
||||
--- !u!1 &5688048095306501618
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -63,7 +126,7 @@ GameObject:
|
||||
- component: {fileID: 5688048095306501619}
|
||||
- component: {fileID: 5688048095306501622}
|
||||
- component: {fileID: 5688048095306501621}
|
||||
- component: {fileID: 5688048095306501620}
|
||||
- component: {fileID: 1336262608}
|
||||
m_Layer: 9
|
||||
m_Name: WingR
|
||||
m_TagString: Untagged
|
||||
@@ -136,8 +199,8 @@ MeshRenderer:
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!135 &5688048095306501620
|
||||
SphereCollider:
|
||||
--- !u!136 &1336262608
|
||||
CapsuleCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
@@ -146,8 +209,9 @@ SphereCollider:
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Radius: 0.5
|
||||
m_Height: 1
|
||||
m_Direction: 0
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &5688048095477329001
|
||||
GameObject:
|
||||
@@ -160,7 +224,7 @@ GameObject:
|
||||
- component: {fileID: 5688048095477329002}
|
||||
- component: {fileID: 5688048095477329005}
|
||||
- component: {fileID: 5688048095477329004}
|
||||
- component: {fileID: 5688048095477329003}
|
||||
- component: {fileID: 1336262606}
|
||||
m_Layer: 9
|
||||
m_Name: WingL
|
||||
m_TagString: Untagged
|
||||
@@ -233,8 +297,8 @@ MeshRenderer:
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!135 &5688048095477329003
|
||||
SphereCollider:
|
||||
--- !u!136 &1336262606
|
||||
CapsuleCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
@@ -243,8 +307,9 @@ SphereCollider:
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Radius: 0.5
|
||||
m_Height: 1
|
||||
m_Direction: 0
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &5688048095502189620
|
||||
GameObject:
|
||||
@@ -257,7 +322,7 @@ GameObject:
|
||||
- component: {fileID: 5688048095502189621}
|
||||
- component: {fileID: 5688048095502189624}
|
||||
- component: {fileID: 5688048095502189623}
|
||||
- component: {fileID: 5688048095502189622}
|
||||
- component: {fileID: 1336262604}
|
||||
m_Layer: 9
|
||||
m_Name: Fuselage
|
||||
m_TagString: Untagged
|
||||
@@ -330,8 +395,8 @@ MeshRenderer:
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!135 &5688048095502189622
|
||||
SphereCollider:
|
||||
--- !u!136 &1336262604
|
||||
CapsuleCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
@@ -340,8 +405,9 @@ SphereCollider:
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Radius: 0.5
|
||||
m_Height: 1
|
||||
m_Direction: 1
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &5688048095870530698
|
||||
GameObject:
|
||||
|
||||
@@ -2,17 +2,66 @@ using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// Enemy_4 will start offscreen and then pick a random point on screen to
|
||||
/// move to. Once it has arrived, it will pick another random point and
|
||||
/// continue until the player has shot it down.
|
||||
/// </summary>
|
||||
|
||||
[System.Serializable]
|
||||
public class Part {
|
||||
// These three fields need to be defined in the Inspector pane
|
||||
public string name;
|
||||
public float health;
|
||||
public string[] protectedBy;
|
||||
[HideInInspector]
|
||||
public GameObject go;
|
||||
[HideInInspector]
|
||||
public Material mat;
|
||||
}
|
||||
|
||||
public class Enemy_4 : Enemy
|
||||
{
|
||||
// Start is called before the first frame update
|
||||
[Header("Set in Inspector: Enemy_4")]
|
||||
public Part[] parts;
|
||||
private Vector3 p0, p1; // The two points to interpolate
|
||||
private float timeStart; // Birth time for this Enemy_4
|
||||
private float duration = 4; // Duration of movement
|
||||
|
||||
void Start()
|
||||
{
|
||||
|
||||
// There is already an initial position chosen by Main.SpawnEnemy()
|
||||
// so add it to points as the initial p0 & p1
|
||||
p0 = p1 = pos;
|
||||
InitMovement();
|
||||
Transform t;
|
||||
foreach(Part prt in parts) {
|
||||
t = transform.Find(prt.name);
|
||||
if (t != null) {
|
||||
prt.go = t.gameObject;
|
||||
prt.mat = prt.go.GetComponent<Renderer>().material;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
void InitMovement() {
|
||||
p0 = p1; // Set p0 to the old p1
|
||||
// Assign a new on-screen location to p1
|
||||
float widMinRad = bndCheck.camWidth - bndCheck.radius;
|
||||
float hgtMinRad = bndCheck.camHeight - bndCheck.radius;
|
||||
p1.x = Random.Range(-widMinRad, widMinRad);
|
||||
p1.y = Random.Range(-hgtMinRad, hgtMinRad);
|
||||
// Reset the time
|
||||
timeStart = Time.time;
|
||||
}
|
||||
public override void Move() {
|
||||
// This completely overrides Enemy.Move() with a linear interpolation
|
||||
float u = (Time.time - timeStart) / duration;
|
||||
if (u >= 1) {
|
||||
InitMovement();
|
||||
u = 0;
|
||||
}
|
||||
u = 1 - Mathf.Pow(1 - u, 2); // Apply East Out easing to u
|
||||
pos = (1 - u) * p0 + u*p1; // Simple linear interpolation
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// This is an enum of the various possible weapon types.
|
||||
/// It also includes a "shield" type to allow a shield power-up.
|
||||
/// Items marked [NI] below are Not Implemented in the IGDPD book.
|
||||
/// </summary>
|
||||
|
||||
public enum WeaponType {
|
||||
none, // The default / no weapon
|
||||
blaster, // A simple blaster
|
||||
spread, // Two shots simultaneously
|
||||
phaser, // [NI] Shots that move in waves
|
||||
missile, // [NI] Homing missiles
|
||||
laser, // [NI]Damage over time
|
||||
shield // Raise shieldLevel
|
||||
}
|
||||
|
||||
public class Weapon : MonoBehaviour
|
||||
{
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8a45dacce959bdd1c943cd342de8d377
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user