Commit cd4e334d by alsunj

refactor rogue enemy

parent aa32937b
......@@ -49,3 +49,8 @@ MonoBehaviour:
SourcePrefabToOverride: {fileID: 0}
SourceHashToOverride: 0
OverridingTargetPrefab: {fileID: 0}
- Override: 0
Prefab: {fileID: 2899838405596494908, guid: bc02f320cbb1a9d4996b6e1fe7f10469, type: 3}
SourcePrefabToOverride: {fileID: 0}
SourceHashToOverride: 0
OverridingTargetPrefab: {fileID: 0}
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 32
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: MinionMaterial
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 1
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.511
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 0.5989195, g: 1, b: 0, a: 0.019607844}
- _Color: {r: 0.5989195, g: 1, b: 0, a: 0.019607844}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &8225686986967998630
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 9
fileFormatVersion: 2
guid: 77cf19e9a78b028409ae90af84fff786
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
using Unity.Netcode;
using UnityEngine;
public class AnimatedEnemy : Enemy
{
protected EnemyAnimator _enemyAnimator;
protected EnemyManager _enemyManager;
protected override void InitializeEnemy()
{
base.InitializeEnemy();
_enemyManager = GetComponent<EnemyManager>();
if (_enemyManager != null)
{
_enemyManager.Initialize();
}
else
{
Debug.LogError("EnemyManager is not set in the inspector");
}
_enemyAnimator = GetComponentInChildren<EnemyAnimator>();
_enemyAnimator.InitializeEvents(_enemyManager.enemyEvents);
// if (_enemyAnimator != null)
// {
// _enemyAnimator.InitializeEvents(_enemyManager.enemyEvents);
// _enemyAnimator.receiveTargetShotEventFromAnimator += TargetShotEventServerRpc;
// _enemyAnimator.receiveTargetAimedEventFromAnimator += ShootTargetServerRpc;
// _enemyAnimator.receiveTargetReloadEventFromAnimator += ReloadCrossbowServerRpc;
// }
}
// not possible to raise the functions to inheritor
// [ServerRpc]
// protected virtual void ReloadCrossbowServerRpc()
// {
// }
//
// [ServerRpc]
// protected virtual void ShootTargetServerRpc()
// {
// _enemyManager.enemyEvents.EnemyAttack();
// }
//
// [ServerRpc]
// protected virtual void TargetShotEventServerRpc()
// {
// _enemyManager.enemyEvents.EnemyReload();
// }
protected void AimAtTarget()
{
_enemyManager.enemyEvents.EnemyAim();
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 3aeeb521b91d5a64cba17d2d91ee22a8
\ No newline at end of file
using System;
using DG.Tweening;
using Unity.Netcode;
using UnityEngine;
public class Enemy : NetworkBehaviour
{
[SerializeField] private EnemySettings enemySettings;
[SerializeField] private GameObject arrow;
[SerializeField] private GameObject weapon;
private EnemyManager _enemyManager;
private EnemyAnimator _enemyAnimator;
private NetworkObject _instantiatedArrow;
private Transform _arrowSpawnPoint;
private float _shootingTimer;
private bool _isCrossbowLoaded;
private bool _isAiming;
private Vector3 _lookingDirection;
private bool _targetLocked;
private Collider[] hitColliders;
public void InitializeEnemy()
{
_enemyManager = GetComponent<EnemyManager>();
if (_enemyManager != null)
{
_enemyManager.Initialize();
}
else
{
Debug.LogError("EnemyManager is not set in the inspector");
}
_enemyAnimator = GetComponentInChildren<EnemyAnimator>();
if (_enemyAnimator != null)
{
_enemyAnimator.InitializeEvents(_enemyManager.enemyEvents);
_enemyAnimator.receiveTargetShotEventFromAnimator += TargetShotAnimationEndEventServerRpc;
_enemyAnimator.receiveTargetAimedEventFromAnimator += ShootTargetServerRpc;
_enemyAnimator.receiveTargetReloadEventFromAnimator += ReloadCrossbowServerRpc;
}
else
{
Debug.LogError("EnemyAnimator is not found as a child");
}
if (enemySettings == null)
{
throw new Exception("EnemySettings is not set in the inspector");
}
if (weapon == null)
{
throw new Exception("Weapon is not set in the inspector");
}
_arrowSpawnPoint = weapon.transform.Find("Skeleton_Crossbow/ArrowSpawnPoint");
if (_arrowSpawnPoint == null)
{
throw new Exception("ArrowSpawnPoint is not found as a child of Weapon");
}
if (arrow == null)
{
throw new Exception("Arrow is not set in the inspector");
}
InstantiateArrowServer();
hitColliders = new Collider[NetworkManager.Singleton.ConnectedClients.Count];
}
public void InstantiateArrowServer()
{
_instantiatedArrow = Instantiate(arrow, _arrowSpawnPoint.position, _arrowSpawnPoint.rotation)
.GetComponent<NetworkObject>();
_instantiatedArrow.Spawn();
_instantiatedArrow.GetComponent<Arrow>().SetTargetTransform(_arrowSpawnPoint.transform);
_isCrossbowLoaded = true;
}
private void Update()
protected virtual void InitializeEnemy()
{
if (!IsServer) return;
if (_shootingTimer > 0)
{
_shootingTimer -= Time.deltaTime;
return;
}
if (!_targetLocked)
{
ScanForCollisionServerRpc();
}
}
[ServerRpc]
public void TargetShotAnimationEndEventServerRpc()
{
_instantiatedArrow.GetComponent<Arrow>().RemoveTargetTransform();
_instantiatedArrow.GetComponent<Rigidbody>().linearVelocity = _lookingDirection * enemySettings.shootingRange;
//UpdateArrowTransformClientRpc(new NetworkObjectReference(_instantiatedArrow), _arrowSpawnPoint.position,
// _arrowSpawnPoint.rotation);
_enemyManager.enemyEvents.EnemyReload();
}
[ServerRpc]
private void ReloadCrossbowServerRpc()
public void SetTarget()
{
//_instantiatedArrow.gameObject.SetActive(false);
// _instantiatedArrow.transform.SetParent(weapon.transform);
_instantiatedArrow.GetComponent<Rigidbody>().linearVelocity = Vector3.zero;
_instantiatedArrow.GetComponent<Arrow>().SetTargetTransform(_arrowSpawnPoint.transform);
_targetLocked = false;
_isCrossbowLoaded = true;
}
[ServerRpc]
private void ScanForCollisionServerRpc()
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
if (_isCrossbowLoaded && _shootingTimer <= 0)
{
int numColliders = Physics.OverlapSphereNonAlloc(transform.position, enemySettings.detectionRange,
hitColliders,
enemySettings.targetLayer);
if (numColliders > 0)
{
Collider closestCollider = null;
float closestDistance = float.MaxValue;
for (int i = 0; i < numColliders; i++)
{
float distance = Vector3.Distance(transform.position, hitColliders[i].transform.position);
if (distance < closestDistance)
{
closestDistance = distance;
closestCollider = hitColliders[i];
}
}
_targetLocked = true;
// RotateTowardsTargetClientRpc(closestCollider.gameObject.GetComponent<NetworkObject>().NetworkObjectId);
GameObject targetObject = closestCollider.gameObject;
_enemyManager.enemyEvents.EnemyAim();
_lookingDirection = (targetObject.transform.position - transform.position).normalized;
Quaternion lookRotation =
Quaternion.LookRotation(new Vector3(_lookingDirection.x, 0, _lookingDirection.z));
transform.DORotateQuaternion(lookRotation, 0.5f);
}
}
}
[ServerRpc]
private void ShootTargetServerRpc()
// Update is called once per frame
void Update()
{
_shootingTimer = enemySettings.shootingDelay;
_isCrossbowLoaded = false;
_enemyManager.enemyEvents.EnemyAttack();
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: d49894b4707dc5f448f3c7c3342e4310
\ No newline at end of file
guid: ccd14e9eb32c8ad4580704195002820f
\ No newline at end of file
......@@ -46,6 +46,7 @@ public class EnemyAnimator : MonoBehaviour
private void ReceiveTargetAimedEventFromAnimator()
{
Debug.Log("ReceiveTargetAimedEventFromAnimator");
receiveTargetAimedEventFromAnimator?.Invoke();
}
......@@ -56,6 +57,7 @@ public class EnemyAnimator : MonoBehaviour
private void ReceiveTargetShotEventFromAnimator()
{
Debug.Log("ReceiveTargetShotEventFromAnimator");
receiveTargetShotEventFromAnimator?.Invoke();
}
......@@ -66,14 +68,7 @@ public class EnemyAnimator : MonoBehaviour
private void SetEnemyAim()
{
if (_animator != null)
{
_animator.SetTrigger(IS_AIMING);
}
else
{
Debug.LogError("Animator is null when SetEnemyAim is called on " + gameObject.name);
}
_animator.SetTrigger(IS_AIMING);
}
private void SetEnemyAttack()
......
......@@ -5,6 +5,6 @@ public class EnemySettings : ScriptableObject
{
public LayerMask targetLayer;
public float detectionRange = 7f;
public float shootingRange = 10f;
public float shootingRange = 20f;
public float shootingDelay = 1f;
}
\ No newline at end of file
......@@ -52,7 +52,7 @@ public class EnemySpawner : MonoBehaviour
private void OnServerStartedServerRpc()
{
Debug.Log("Setting up enemy spawner");
ApplyExistingEnemyArrows();
// ApplyExistingEnemyArrows();
FindEnemySpawnPositions();
FindEnemyConfig();
StartEnemySpawnTimers();
......@@ -111,15 +111,14 @@ public class EnemySpawner : MonoBehaviour
GameObject spawnedEnemy =
Instantiate(_rogueEnemyPrefab, spawnPosition, Quaternion.identity, gameObject.transform);
spawnedEnemy.GetComponent<NetworkObject>().Spawn();
SpawnEnemyForClientRpc(spawnedEnemy);
// SpawnEnemyForClientRpc(spawnedEnemy);
}
}
[ClientRpc]
private void SpawnEnemyForClientRpc(GameObject spawnedEnemy)
{
spawnedEnemy.GetComponent<Enemy>().InitializeEnemy();
}
//
// [ClientRpc]
// private void SpawnEnemyForClientRpc(GameObject spawnedEnemy)
// {
// }
[ServerRpc]
private void SpawnSlimeEnemyServerRpc(Vector3 spawnPosition)
......@@ -149,22 +148,22 @@ public class EnemySpawner : MonoBehaviour
_SlimeEnemySpawnTimer = _SlimeEnemySpawnCooldown;
}
private void ApplyExistingEnemyArrows()
{
// SpawnEnemyArrows();
var enemiesTransform = GameObject.Find("Enemies")?.transform;
if (enemiesTransform != null)
{
foreach (Transform child in enemiesTransform)
{
var enemy = child.GetComponent<Enemy>();
if (enemy != null)
{
enemy.InstantiateArrowServer();
}
}
}
}
// private void ApplyExistingEnemyArrows()
// {
// // SpawnEnemyArrows();
// var enemiesTransform = GameObject.Find("Enemies")?.transform;
// if (enemiesTransform != null)
// {
// foreach (Transform child in enemiesTransform)
// {
// var enemy = child.GetComponent<Rogue>();
// if (enemy != null)
// {
// enemy.InstantiateArrowServer();
// }
// }
// }
// }
private void FindEnemySpawnPositions()
......
using System;
using DG.Tweening;
using Unity.Netcode;
using UnityEngine;
public class Rogue : AnimatedEnemy
{
[SerializeField] private EnemySettings enemySettings;
[SerializeField] private GameObject arrow;
[SerializeField] private GameObject weapon;
private Arrow _arrowComponent;
private float _shootingTimer;
private bool _isCrossbowLoaded;
private bool _isAiming;
private Vector3 _lookingDirection;
private bool _targetLocked;
private Collider[] hitColliders;
private NetworkObject _instantiatedArrow;
private Transform _arrowSpawnPoint;
private Rigidbody _arrowRigidbody;
public override void OnNetworkSpawn()
{
if (IsServer)
{
InitializeEnemy();
}
}
protected override void InitializeEnemy()
{
base.InitializeEnemy();
if (_enemyAnimator != null)
{
_enemyAnimator.receiveTargetShotEventFromAnimator += TargetShotEvent;
_enemyAnimator.receiveTargetAimedEventFromAnimator += ShootTarget;
_enemyAnimator.receiveTargetReloadEventFromAnimator += ReloadCrossbow;
}
else
{
Debug.LogError("EnemyAnimator, EnemyManager, or EnemyEvents not initialized in Rogue.");
}
if (enemySettings == null)
{
throw new Exception("EnemySettings is not set in the inspector");
}
if (weapon == null)
{
throw new Exception("Weapon is not set in the inspector");
}
_arrowSpawnPoint = weapon.transform.Find("Skeleton_Crossbow/ArrowSpawnPoint");
if (_arrowSpawnPoint == null)
{
throw new Exception("ArrowSpawnPoint is not found as a child of Weapon");
}
if (arrow == null)
{
throw new Exception("Arrow is not set in the inspector");
}
InstantiateArrow();
hitColliders = new Collider[NetworkManager.Singleton.ConnectedClients.Count];
}
public void InstantiateArrow()
{
_instantiatedArrow = Instantiate(arrow, _arrowSpawnPoint.position, _arrowSpawnPoint.rotation)
.GetComponent<NetworkObject>();
_instantiatedArrow.Spawn();
_arrowComponent = _instantiatedArrow.GetComponent<Arrow>();
_arrowRigidbody = _instantiatedArrow.GetComponent<Rigidbody>();
_arrowComponent.SetTargetTransform(_arrowSpawnPoint.transform);
_isCrossbowLoaded = true;
}
private void Update()
{
if (!IsServer) return;
if (_shootingTimer > 0)
{
_shootingTimer -= Time.deltaTime;
return;
}
if (!_targetLocked)
{
ScanForCollisionServerRpc();
}
}
[ServerRpc]
private void ScanForCollisionServerRpc()
{
if (_isCrossbowLoaded && _shootingTimer <= 0)
{
int numColliders = Physics.OverlapSphereNonAlloc(transform.position, enemySettings.detectionRange,
hitColliders,
enemySettings.targetLayer);
if (numColliders > 0)
{
Collider closestCollider = null;
float closestDistance = float.MaxValue;
for (int i = 0; i < numColliders; i++)
{
float distance = Vector3.Distance(transform.position, hitColliders[i].transform.position);
if (distance < closestDistance)
{
closestDistance = distance;
closestCollider = hitColliders[i];
}
}
_targetLocked = true;
GameObject targetObject = closestCollider.gameObject;
AimAtTarget();
_lookingDirection = (targetObject.transform.position - transform.position).normalized;
Quaternion lookRotation =
Quaternion.LookRotation(new Vector3(_lookingDirection.x, 0, _lookingDirection.z));
transform.DORotateQuaternion(lookRotation, 0.5f);
}
}
}
private void ShootTarget()
{
_enemyManager.enemyEvents.EnemyAttack();
_shootingTimer = enemySettings.shootingDelay;
_isCrossbowLoaded = false;
}
private void TargetShotEvent()
{
_enemyManager.enemyEvents.EnemyReload();
_arrowComponent.RemoveTargetTransform();
_arrowRigidbody.linearVelocity = _lookingDirection * enemySettings.shootingRange;
}
private void ReloadCrossbow()
{
_arrowRigidbody.linearVelocity = Vector3.zero;
_arrowComponent.SetTargetTransform(_arrowSpawnPoint.transform);
_targetLocked = false;
_isCrossbowLoaded = true;
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: d49894b4707dc5f448f3c7c3342e4310
\ No newline at end of file
using Unity.Netcode;
using UnityEngine;
public class Slime : Enemy
{
private Vector3 _targetPosition;
private Rigidbody _rigidbody;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 352c4af0caf056747ba8281ba03928ce
\ No newline at end of file
fileFormatVersion: 2
guid: 6e5708c863b0f4a4b94c8cd95d7eedab
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2899838405596494908
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 108378693547780218}
- component: {fileID: -5213069575148900343}
- component: {fileID: 990296165704056550}
- component: {fileID: 7639242156254445465}
- component: {fileID: 3234479000206332123}
- component: {fileID: 5394816119229616792}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &108378693547780218
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2899838405596494908}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.93, y: 0.93, z: 0.93}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 1548183771846525344}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!54 &-5213069575148900343
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2899838405596494908}
serializedVersion: 4
m_Mass: 5.05
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: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 112
m_CollisionDetection: 0
--- !u!65 &990296165704056550
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2899838405596494908}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &7639242156254445465
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2899838405596494908}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier:
GlobalObjectIdHash: 0
InScenePlacedSourceGlobalObjectIdHash: 0
DeferredDespawnTick: 0
Ownership: 1
AlwaysReplicateAsRoot: 0
SynchronizeTransform: 1
ActiveSceneSynchronization: 0
SceneMigrationSynchronization: 1
SpawnWithObservers: 1
DontDestroyWithOwner: 0
AutoObjectParentSync: 1
SyncOwnerTransformWhenParented: 1
AllowOwnerToParent: 0
--- !u!114 &3234479000206332123
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2899838405596494908}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e96cb6065543e43c4a752faaa1468eb1, type: 3}
m_Name:
m_EditorClassIdentifier:
ShowTopMostFoldoutHeaderGroup: 1
NetworkTransformExpanded: 0
AuthorityMode: 0
TickSyncChildren: 0
UseUnreliableDeltas: 0
SyncPositionX: 1
SyncPositionY: 1
SyncPositionZ: 1
SyncRotAngleX: 0
SyncRotAngleY: 0
SyncRotAngleZ: 0
SyncScaleX: 0
SyncScaleY: 0
SyncScaleZ: 0
PositionThreshold: 0.001
RotAngleThreshold: 0.01
ScaleThreshold: 0.01
UseQuaternionSynchronization: 0
UseQuaternionCompression: 0
UseHalfFloatPrecision: 0
InLocalSpace: 0
SwitchTransformSpaceWhenParented: 0
Interpolate: 1
SlerpPosition: 0
--- !u!114 &5394816119229616792
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2899838405596494908}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f6c0be61502bb534f922ebb746851216, type: 3}
m_Name:
m_EditorClassIdentifier:
ShowTopMostFoldoutHeaderGroup: 1
NetworkRigidbodyBaseExpanded: 0
UseRigidBodyForMotion: 1
AutoUpdateKinematicState: 1
AutoSetKinematicOnDespawn: 1
--- !u!1 &7494803013719323330
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1548183771846525344}
- component: {fileID: 5709875665919505967}
- component: {fileID: 6502456230351746431}
m_Layer: 0
m_Name: CubeVisual
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1548183771846525344
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7494803013719323330}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 108378693547780218}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &5709875665919505967
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7494803013719323330}
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: 77cf19e9a78b028409ae90af84fff786, 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!33 &6502456230351746431
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7494803013719323330}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
fileFormatVersion: 2
guid: bc02f320cbb1a9d4996b6e1fe7f10469
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
......@@ -821,7 +821,7 @@ PrefabInstance:
- target: {fileID: 202725141662654280, guid: c3c6003d148e24045a5699c460b258c9, type: 3}
propertyPath: _slimeEnemyPrefab
value:
objectReference: {fileID: 273039182630653378, guid: 347c9a55bcfa08347bc5fb513a0e9ad4, type: 3}
objectReference: {fileID: 2899838405596494908, guid: bc02f320cbb1a9d4996b6e1fe7f10469, type: 3}
- target: {fileID: 282998371085549544, guid: c3c6003d148e24045a5699c460b258c9, type: 3}
propertyPath: GlobalObjectIdHash
value: 2201525822
......@@ -875,6 +875,10 @@ PrefabInstance:
value: 389880154
objectReference: {fileID: 0}
- target: {fileID: 2406308509100318415, guid: c3c6003d148e24045a5699c460b258c9, type: 3}
propertyPath: m_Enabled
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2406308509100318415, guid: c3c6003d148e24045a5699c460b258c9, type: 3}
propertyPath: startGame
value: 1
objectReference: {fileID: 0}
......
......@@ -12,10 +12,9 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 616231e36fe89cd42bd7aea67dfa0ace, type: 3}
m_Name: RogueSettings
m_EditorClassIdentifier:
WeaponPrefab: {fileID: 6946634317865969344, guid: 9180e072eabc06f4c9448c5d26b5425e, type: 3}
targetLayer:
serializedVersion: 2
m_Bits: 512
detectionRange: 7
shootingRange: 10
shootingRange: 20
shootingDelay: 4
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment