add: EyeEnemy proper functionality
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1562924000103655330
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2987293529414042391}
|
||||
- component: {fileID: 3266538827119481022}
|
||||
- component: {fileID: 3277822925141770390}
|
||||
- component: {fileID: -8958570174584186611}
|
||||
- component: {fileID: 8393546946202406891}
|
||||
- component: {fileID: 9210136651646905660}
|
||||
m_Layer: 0
|
||||
m_Name: EnemyBullet
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2987293529414042391
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1562924000103655330}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.1, y: 0.1, z: 0.2}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &3266538827119481022
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1562924000103655330}
|
||||
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &3277822925141770390
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1562924000103655330}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 7ced48a396ccf7045919ead8355ab8c6, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!54 &-8958570174584186611
|
||||
Rigidbody:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1562924000103655330}
|
||||
serializedVersion: 4
|
||||
m_Mass: 1
|
||||
m_Drag: 0
|
||||
m_AngularDrag: 0.05
|
||||
m_CenterOfMass: {x: 0, y: 0, z: 0}
|
||||
m_InertiaTensor: {x: 1, y: 1, z: 1}
|
||||
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ImplicitCom: 1
|
||||
m_ImplicitTensor: 1
|
||||
m_UseGravity: 0
|
||||
m_IsKinematic: 0
|
||||
m_Interpolate: 0
|
||||
m_Constraints: 0
|
||||
m_CollisionDetection: 2
|
||||
--- !u!135 &8393546946202406891
|
||||
SphereCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1562924000103655330}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 1
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Radius: 0.5
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &9210136651646905660
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1562924000103655330}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 8d7536bbb5cbf394b8ec742b12cb0b87, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
speed: 5
|
||||
damage: 1
|
||||
timeToLive: 5
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6a9f72b16f60d5047974eb5893b0326a
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -80,7 +80,7 @@ PrefabInstance:
|
||||
addedObject: {fileID: 4157182199899525086}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 81be7b02df0db07479a8e1a9dd56f618, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: -3280827978807638765}
|
||||
addedObject: {fileID: 285488036582896095}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 81be7b02df0db07479a8e1a9dd56f618, type: 3}
|
||||
--- !u!1 &3602081654026665026 stripped
|
||||
GameObject:
|
||||
@@ -137,7 +137,7 @@ Rigidbody:
|
||||
m_Interpolate: 0
|
||||
m_Constraints: 112
|
||||
m_CollisionDetection: 0
|
||||
--- !u!114 &-3280827978807638765
|
||||
--- !u!114 &285488036582896095
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@@ -146,7 +146,19 @@ MonoBehaviour:
|
||||
m_GameObject: {fileID: 3602081654026665026}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 46894d927b8e6654487b876457ca8974, type: 3}
|
||||
m_Script: {fileID: 11500000, guid: 48cddee1e4d4837418957a7b4e6315c8, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
hp: 100
|
||||
projectilePrefab: {fileID: 1562924000103655330, guid: 6a9f72b16f60d5047974eb5893b0326a, type: 3}
|
||||
projectileSpawnPosition: {fileID: 8051388752729122526}
|
||||
attackRange: 10
|
||||
fireRate: 1
|
||||
offsetDistance: 1.5
|
||||
currentDelay: 0
|
||||
target: {fileID: 0}
|
||||
--- !u!4 &8051388752729122526 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: -3278615484307183667, guid: 81be7b02df0db07479a8e1a9dd56f618, type: 3}
|
||||
m_PrefabInstance: {fileID: 4412476501240889619}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
|
||||
@@ -257,7 +257,7 @@ GameObject:
|
||||
- component: {fileID: 3263211181679880648}
|
||||
m_Layer: 0
|
||||
m_Name: Player
|
||||
m_TagString: Untagged
|
||||
m_TagString: Player
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
|
||||
@@ -136,6 +136,10 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: Eye_Enemy1 (1)
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3602081654026665026, guid: 7ab59219438e4a241affd5e9441d9d9f, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4230844338806302456, guid: 7ab59219438e4a241affd5e9441d9d9f, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 7
|
||||
@@ -549,6 +553,10 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: Eye_Enemy1 (3)
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3602081654026665026, guid: 7ab59219438e4a241affd5e9441d9d9f, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4230844338806302456, guid: 7ab59219438e4a241affd5e9441d9d9f, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -7
|
||||
@@ -779,6 +787,10 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: Eye_Enemy1 (2)
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3602081654026665026, guid: 7ab59219438e4a241affd5e9441d9d9f, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4230844338806302456, guid: 7ab59219438e4a241affd5e9441d9d9f, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
@@ -1441,6 +1453,10 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: Eye_Enemy1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3602081654026665026, guid: 7ab59219438e4a241affd5e9441d9d9f, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4230844338806302456, guid: 7ab59219438e4a241affd5e9441d9d9f, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class EnemyBulletProjectile : MonoBehaviour
|
||||
{
|
||||
public float speed = 1f;
|
||||
public float damage = 20f;
|
||||
public float timeToLive = 5f;
|
||||
|
||||
float currentTime = 0;
|
||||
|
||||
Rigidbody rb;
|
||||
|
||||
void Start() {
|
||||
rb = GetComponent<Rigidbody>();
|
||||
rb.linearVelocity = transform.forward * speed;
|
||||
}
|
||||
|
||||
void Update() {
|
||||
currentTime += Time.deltaTime;
|
||||
if (currentTime >= timeToLive) Destroy(gameObject);
|
||||
}
|
||||
|
||||
void OnTriggerEnter(Collider other) {
|
||||
if (other.gameObject.CompareTag("Player")) {
|
||||
Player player = other.GetComponent<Player>();
|
||||
player.DealDamage(damage);
|
||||
}
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8d7536bbb5cbf394b8ec742b12cb0b87
|
||||
@@ -2,13 +2,31 @@ using UnityEngine;
|
||||
|
||||
public class EyeEnemy : Enemy
|
||||
{
|
||||
public float _hp = 100;
|
||||
public GameObject projectilePrefab;
|
||||
public Transform projectileSpawnPosition;
|
||||
public float attackRange = 10f;
|
||||
public float fireRate = 1f;
|
||||
public float offsetDistance = 1f;
|
||||
|
||||
[SerializeField] float currentDelay = 0;
|
||||
|
||||
[SerializeField] Player target;
|
||||
|
||||
void Start() {
|
||||
hp = _hp;
|
||||
target = FindFirstObjectByType<Player>();
|
||||
}
|
||||
|
||||
void Update() {
|
||||
|
||||
if (fireRate != 0) currentDelay = Mathf.Clamp(currentDelay += Time.deltaTime, 0, 1 / fireRate);
|
||||
Vector3 offset = (target.transform.position - projectileSpawnPosition.position).normalized * offsetDistance;
|
||||
bool doShoot = false;
|
||||
if (Physics.Raycast(projectileSpawnPosition.position + offset, offset, out RaycastHit hit, attackRange)) {
|
||||
if (hit.transform.CompareTag("Player")) doShoot = true;
|
||||
}
|
||||
if (doShoot && (fireRate == 0 || currentDelay >= 1 / fireRate)) {
|
||||
GameObject projectile = Instantiate(projectilePrefab, projectileSpawnPosition.position + offset, transform.rotation);
|
||||
projectile.transform.LookAt(target.transform);
|
||||
currentDelay = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ using UnityEngine.SceneManagement;
|
||||
public class DeployController : MonoBehaviour
|
||||
{
|
||||
public void Start() {
|
||||
GameController.SetCursorState(true);
|
||||
GameController.SetCursorState(false);
|
||||
}
|
||||
|
||||
public void Deploy(string sceneName) {
|
||||
|
||||
@@ -7,9 +7,11 @@ public class GroundDetector : MonoBehaviour
|
||||
|
||||
public void OnTriggerEnter(Collider other) {
|
||||
if ((1 << other.gameObject.layer & groundMask) != 0) onGround = true;
|
||||
// onGround = true;
|
||||
}
|
||||
void OnTriggerStay(Collider other) { OnTriggerEnter(other); }
|
||||
void OnTriggerExit(Collider other) {
|
||||
if ((1 << other.gameObject.layer & groundMask) != 0) onGround = false;
|
||||
// onGround = false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user