Added Targeting for entities
*Changed all Runtime Sets to be <EntityBase> instead of <StructureBase> or <EnemyBase> *Added targeting configuration scriptable object (can now set up many differet targeting schemes and use them as needed) *Added targeting script *Modified Turret and Enemy to use targeting script (added on play) *Added NavMesh and NavMeshAgents for enemy movement to be used during prototyping
This commit is contained in:
parent
a70bd626a6
commit
b1f2446fa6
|
@ -413,7 +413,11 @@ MonoBehaviour:
|
|||
_basePosition: {fileID: 2692714622321691895}
|
||||
_uiFriendlyName: Enemy
|
||||
_entityBaseSet: {fileID: 11400000, guid: c5542e77624472441a67b1f34e19a116, type: 2}
|
||||
_enemyBaseSet: {fileID: 11400000, guid: 5f6dc84d75dbd9a459e519de42279066, type: 2}
|
||||
_enemyBaseSet: {fileID: 11400000, guid: e5f25127d92be074aac6e7b745fae107, type: 2}
|
||||
_targeterConfig: {fileID: 11400000, guid: d5813a38da3962d4498fc71ef33361b6, type: 2}
|
||||
_targeter: {fileID: 0}
|
||||
_target: {fileID: 0}
|
||||
_navMeshAgent: {fileID: 0}
|
||||
--- !u!1 &6940800288144322101
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -437,7 +441,7 @@ Transform:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6940800288144322101}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071068}
|
||||
m_LocalPosition: {x: 0, y: 2.01, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
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: 02781660543c12d4ebddaf334eb0d730, type: 3}
|
||||
m_Name: EnemyTargeterConfiguration
|
||||
m_EditorClassIdentifier:
|
||||
_range: 0
|
||||
_selectedTargetStrategy: 0
|
||||
_activeEntities: {fileID: 0}
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5f6dc84d75dbd9a459e519de42279066
|
||||
guid: d5813a38da3962d4498fc71ef33361b6
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
|
@ -1,15 +1,40 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AI;
|
||||
|
||||
namespace AsteroidGame.Entities
|
||||
{
|
||||
public class EnemyBase : EntityBase
|
||||
{
|
||||
[SerializeField] private SEnemyBaseRuntimeSet _enemyBaseSet;
|
||||
[SerializeField] private SEntityBaseRuntimeSet _enemyBaseSet;
|
||||
|
||||
[Header("Targeter")]
|
||||
[SerializeField] private STargeterConfig _targeterConfig;
|
||||
[SerializeField] private Targeter _targeter;
|
||||
[SerializeField] private EntityBase _target;
|
||||
|
||||
[Header("NavMeshAgent")]
|
||||
[SerializeField] private NavMeshAgent _navMeshAgent;
|
||||
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
_enemyBaseSet.Add(this);
|
||||
InitializeTargeter();
|
||||
InitializeNavMeshAgent();
|
||||
}
|
||||
|
||||
private void InitializeNavMeshAgent()
|
||||
{
|
||||
_navMeshAgent = gameObject.AddComponent<NavMeshAgent>();
|
||||
_navMeshAgent.speed = 0.1f;
|
||||
}
|
||||
|
||||
private void InitializeTargeter()
|
||||
{
|
||||
_targeter = gameObject.AddComponent<Targeter>();
|
||||
_targeter.SetParent(this);
|
||||
_targeter.SetConfig(_targeterConfig);
|
||||
}
|
||||
|
||||
protected override void OnDisable()
|
||||
|
@ -17,5 +42,14 @@ namespace AsteroidGame.Entities
|
|||
base.OnDisable();
|
||||
_enemyBaseSet.Remove(this);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (_targeter.FoundTarget())
|
||||
{
|
||||
_target = _targeter.GetTarget();
|
||||
_navMeshAgent.SetDestination(_target.GetBasePosition());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -9,7 +9,7 @@ MonoBehaviour:
|
|||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 33f48df2d03212c4986fe2c47c5de796, type: 3}
|
||||
m_Name: ActiveEnemies
|
||||
m_Script: {fileID: 11500000, guid: 9da2d6a0206101c47a22881a0ba2ece2, type: 3}
|
||||
m_Name: ActiveEnemyEntities
|
||||
m_EditorClassIdentifier:
|
||||
_list: []
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: bccdf438a1004a444bc24492728d6fbd
|
||||
guid: e5f25127d92be074aac6e7b745fae107
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
|
@ -9,7 +9,7 @@ MonoBehaviour:
|
|||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fbc6f67c9903cc8448f793da64d840cf, type: 3}
|
||||
m_Name: ActiveStructures
|
||||
m_Script: {fileID: 11500000, guid: 9da2d6a0206101c47a22881a0ba2ece2, type: 3}
|
||||
m_Name: ActiveStructureEntities
|
||||
m_EditorClassIdentifier:
|
||||
_list: []
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1925957d2bc2f0c4a9210131f2d2c4e5
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,18 @@
|
|||
using AsteroidGame.Interfaces;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AsteroidGame.Entities
|
||||
{
|
||||
[CreateAssetMenu(fileName = "newTargeterConfiguration", menuName = "Configuration/Targeter")]
|
||||
public class STargeterConfig : ScriptableObject
|
||||
{
|
||||
public float _range;
|
||||
public TargetStrategy _selectedTargetStrategy;
|
||||
public SEntityBaseRuntimeSet _activeEntities;
|
||||
public enum TargetStrategy
|
||||
{
|
||||
LowestRange,
|
||||
LowestHealth
|
||||
};
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 02781660543c12d4ebddaf334eb0d730
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -60,7 +60,7 @@ MonoBehaviour:
|
|||
_isConsumer: 0
|
||||
_maxPower: 100
|
||||
_currentPower: 0
|
||||
_structureBaseSet: {fileID: 11400000, guid: bccdf438a1004a444bc24492728d6fbd, type: 2}
|
||||
_structureBaseSet: {fileID: 11400000, guid: 1925957d2bc2f0c4a9210131f2d2c4e5, type: 2}
|
||||
--- !u!1 &1863277996181035512
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace AsteroidGame.Entities
|
|||
[SerializeField] protected int _currentPower;
|
||||
|
||||
[Header("Configuration")]
|
||||
[SerializeField] private SStructureBaseRuntimeSet _structureBaseSet;
|
||||
[SerializeField] private SEntityBaseRuntimeSet _structureBaseSet;
|
||||
|
||||
#region Private
|
||||
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2187298781219062666
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2187298781219062668}
|
||||
- component: {fileID: 2187298781219062669}
|
||||
m_Layer: 0
|
||||
m_Name: StructureDisabler
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2187298781219062668
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2187298781219062666}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -1.8230318, y: 5.3787107, z: -4.0428505}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2187298781219062669
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2187298781219062666}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f60f8a4b6b214b04083229f46bf1170b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_set: {fileID: 11400000, guid: bccdf438a1004a444bc24492728d6fbd, type: 2}
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 14893e62c82e47e4d886fdac849f9302
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -6,13 +6,10 @@ namespace AsteroidGame.Entities
|
|||
{
|
||||
public class Turret : StructureBase
|
||||
{
|
||||
[Header("WeaponParameters")] [SerializeField]
|
||||
private float _weaponRange = 40f;
|
||||
|
||||
[Header("WeaponParameters")]
|
||||
[SerializeField] private int _damage = 1;
|
||||
[SerializeField] private float _fireRate = 1;
|
||||
[SerializeField] private float _projectileSpeed = 5;
|
||||
[SerializeField] private TargetStrategy _targetStrategy = TargetStrategy.LowestHealth;
|
||||
|
||||
[Header("Stats")]
|
||||
[SerializeField] private float _kills = 0f;
|
||||
|
@ -22,103 +19,40 @@ namespace AsteroidGame.Entities
|
|||
[SerializeField] private Transform _turretHead;
|
||||
[SerializeField] private Transform _barrel;
|
||||
|
||||
[Header("Target")]
|
||||
[SerializeField] private SEnemyBaseRuntimeSet _activeEnemies;
|
||||
[SerializeField] private EnemyBase _targetEnemy;
|
||||
|
||||
[SerializeField] private enum TargetStrategy
|
||||
{
|
||||
ClosestEnemy,
|
||||
LowestHealth
|
||||
};
|
||||
[Header("Targeter")]
|
||||
[SerializeField] private STargeterConfig _targeterConfig;
|
||||
[SerializeField] private Targeter _targeter;
|
||||
[SerializeField] private EntityBase _target;
|
||||
|
||||
#region Publics
|
||||
|
||||
public float MaxDistance { get; set; }
|
||||
|
||||
public int Damage
|
||||
{
|
||||
get => _damage;
|
||||
set => _damage = value;
|
||||
}
|
||||
|
||||
public int FireRate { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
private void Start()
|
||||
protected override void OnEnable()
|
||||
{
|
||||
// enemyHandler = FindObjectOfType<EnemyHandler>();
|
||||
// scoreHandler = FindObjectOfType<ScoreHandler>();
|
||||
UpdateWeaponParameters(_fireRate, _projectileSpeed);
|
||||
base.OnEnable();
|
||||
InitializeTargeter();
|
||||
}
|
||||
|
||||
private void InitializeTargeter()
|
||||
{
|
||||
_targeter = gameObject.AddComponent<Targeter>();
|
||||
_targeter.SetParent(this);
|
||||
_targeter.SetConfig(_targeterConfig);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
FindEnemyTarget();
|
||||
}
|
||||
|
||||
private void UpdateWeaponParameters(float fireRate, float projectileSpeed)
|
||||
if (_targeter.FoundTarget())
|
||||
{
|
||||
// var main = _projectile.main;
|
||||
// main.startSpeed = _projectileSpeed;
|
||||
//
|
||||
// var emission = _projectile.emission;
|
||||
// emission.rateOverTime = _fireRate;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
|
||||
private void FindEnemyTarget()
|
||||
{
|
||||
float currentBestValue = Mathf.Infinity;
|
||||
var targetFound = false;
|
||||
|
||||
foreach (EnemyBase enemy in _activeEnemies._list)
|
||||
{
|
||||
float distanceToTarget = Vector3.Magnitude(enemy.GetCenterPosition() - GetCenterPosition());
|
||||
|
||||
bool withinRange = distanceToTarget < _weaponRange;
|
||||
if (withinRange)
|
||||
{
|
||||
switch (_targetStrategy)
|
||||
{
|
||||
case TargetStrategy.ClosestEnemy:
|
||||
{
|
||||
bool isClosest = distanceToTarget < currentBestValue;
|
||||
if (isClosest)
|
||||
{
|
||||
targetFound = true;
|
||||
currentBestValue = distanceToTarget;
|
||||
_targetEnemy = enemy;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case TargetStrategy.LowestHealth:
|
||||
{
|
||||
float enemyHealth = enemy.GetHealth();
|
||||
|
||||
bool isLowestHealth = enemyHealth < currentBestValue;
|
||||
if (isLowestHealth)
|
||||
{
|
||||
targetFound = true;
|
||||
currentBestValue = enemyHealth;
|
||||
_targetEnemy = enemy;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (targetFound)
|
||||
{
|
||||
_turretHead.transform.LookAt(_targetEnemy.GetCenterPosition());
|
||||
// ShootProjectile(true);
|
||||
_target = _targeter.GetTarget();
|
||||
_turretHead.transform.LookAt(_target.GetCenterPosition());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -756,15 +756,15 @@ MonoBehaviour:
|
|||
_isConsumer: 1
|
||||
_maxPower: 10
|
||||
_currentPower: 0
|
||||
_structureBaseSet: {fileID: 11400000, guid: bccdf438a1004a444bc24492728d6fbd, type: 2}
|
||||
_structureBaseSet: {fileID: 11400000, guid: 1925957d2bc2f0c4a9210131f2d2c4e5, type: 2}
|
||||
_weaponRange: 10
|
||||
_damage: 1
|
||||
_fireRate: 1
|
||||
_projectileSpeed: 5
|
||||
_targetStrategy: 1
|
||||
_kills: 0
|
||||
_damageDealt: 0
|
||||
_turretHead: {fileID: 5103935544653627402}
|
||||
_barrel: {fileID: 5103935545559248087}
|
||||
_activeEnemies: {fileID: 11400000, guid: 5f6dc84d75dbd9a459e519de42279066, type: 2}
|
||||
_targeterConfig: {fileID: 11400000, guid: 9df40bc219ab8f04cb4e86558bc0df86, type: 2}
|
||||
_targeter: {fileID: 0}
|
||||
_targetEnemy: {fileID: 0}
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
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: 02781660543c12d4ebddaf334eb0d730, type: 3}
|
||||
m_Name: TurretStandardTargeterConfiguration
|
||||
m_EditorClassIdentifier:
|
||||
_range: 15
|
||||
_selectedTargetStrategy: 0
|
||||
_activeEntities: {fileID: 11400000, guid: e5f25127d92be074aac6e7b745fae107, type: 2}
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9df40bc219ab8f04cb4e86558bc0df86
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,75 @@
|
|||
using UnityEngine;
|
||||
|
||||
namespace AsteroidGame.Entities
|
||||
{
|
||||
public class Targeter : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private float _range;
|
||||
[SerializeField] private STargeterConfig.TargetStrategy _targetStrategy;
|
||||
[SerializeField] private SEntityBaseRuntimeSet _activeEntities;
|
||||
[SerializeField] private EntityBase _targeterParent;
|
||||
[SerializeField] private EntityBase _targetEntity;
|
||||
|
||||
public void SetParent(EntityBase newParent) => _targeterParent = newParent;
|
||||
|
||||
public void SetConfig(STargeterConfig config)
|
||||
{
|
||||
_range = config._range;
|
||||
_targetStrategy = config._selectedTargetStrategy;
|
||||
_activeEntities = config._activeEntities;
|
||||
}
|
||||
|
||||
public EntityBase GetTarget()
|
||||
{
|
||||
return _targetEntity;
|
||||
}
|
||||
|
||||
public bool FoundTarget()
|
||||
{
|
||||
float currentBestValue = Mathf.Infinity;
|
||||
var targetFound = false;
|
||||
|
||||
foreach (EntityBase targetEntity in _activeEntities._list)
|
||||
{
|
||||
float distanceToTarget =
|
||||
Vector3.Magnitude(targetEntity.GetCenterPosition() - _targeterParent.GetCenterPosition());
|
||||
|
||||
bool withinRange = distanceToTarget < _range;
|
||||
if (withinRange)
|
||||
{
|
||||
switch (_targetStrategy)
|
||||
{
|
||||
case STargeterConfig.TargetStrategy.LowestRange:
|
||||
{
|
||||
bool isClosest = distanceToTarget < currentBestValue;
|
||||
if (isClosest)
|
||||
{
|
||||
targetFound = true;
|
||||
currentBestValue = distanceToTarget;
|
||||
_targetEntity = targetEntity;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case STargeterConfig.TargetStrategy.LowestHealth:
|
||||
{
|
||||
float enemyHealth = targetEntity.GetHealth();
|
||||
|
||||
bool isLowestHealth = enemyHealth < currentBestValue;
|
||||
if (isLowestHealth)
|
||||
{
|
||||
targetFound = true;
|
||||
currentBestValue = enemyHealth;
|
||||
_targetEntity = targetEntity;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return targetFound;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 28bcd65de1e3cf744a3ac9b53c030319
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 624b0cf4f0dd38a459121c046c909786
|
||||
guid: c3359f2750b233549861a0b0a52b3224
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
|
@ -122,7 +122,7 @@ NavMeshSettings:
|
|||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
m_NavMeshData: {fileID: 23800000, guid: b015bab8bed002c438c2a5abb0deec18, type: 2}
|
||||
--- !u!1 &38176945
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -271,56 +271,16 @@ Transform:
|
|||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 5
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &208658293 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 5599539567497807159, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
|
||||
m_PrefabInstance: {fileID: 1715656625}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &624469242 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 5263199550015624126, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3}
|
||||
m_PrefabInstance: {fileID: 5263199549561108292}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &732841883
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 732841885}
|
||||
- component: {fileID: 732841884}
|
||||
m_Layer: 0
|
||||
m_Name: Disabler
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &732841884
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 732841883}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f60f8a4b6b214b04083229f46bf1170b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_set: {fileID: 11400000, guid: bccdf438a1004a444bc24492728d6fbd, type: 2}
|
||||
--- !u!4 &732841885
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 732841883}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -1.8230318, y: 5.3787107, z: -4.0428505}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 6
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!4 &991542217 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3}
|
||||
|
@ -331,6 +291,103 @@ Transform:
|
|||
m_CorrespondingSourceObject: {fileID: 5200388201450229074, guid: 07826307af1971948b98dd42d1e9457a, type: 3}
|
||||
m_PrefabInstance: {fileID: 5200388200885062254}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &1089364665
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1089364666}
|
||||
- component: {fileID: 1089364669}
|
||||
- component: {fileID: 1089364668}
|
||||
- component: {fileID: 1089364667}
|
||||
m_Layer: 0
|
||||
m_Name: Cube
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 2147483647
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1089364666
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1089364665}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -11.3755, y: 1.3935, z: 3.9827}
|
||||
m_LocalScale: {x: 6.1543775, y: 3.7869, z: 5.7455}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1702078697}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!65 &1089364667
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1089364665}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!23 &1089364668
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1089364665}
|
||||
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_RenderingLayerMask: 257
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, 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 &1089364669
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1089364665}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!4 &1158682046 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 664620742648054780, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3}
|
||||
|
@ -393,6 +450,104 @@ PrefabInstance:
|
|||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: c2b4fe01faa847f4b976b5539477e1ec, type: 3}
|
||||
--- !u!1 &1402420031
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1402420032}
|
||||
- component: {fileID: 1402420035}
|
||||
- component: {fileID: 1402420034}
|
||||
- component: {fileID: 1402420033}
|
||||
m_Layer: 0
|
||||
m_Name: Plane
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 2147483647
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1402420032
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1402420031}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 5.32, y: 5.32, z: 5.32}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1702078697}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!64 &1402420033
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1402420031}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &1402420034
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1402420031}
|
||||
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_RenderingLayerMask: 257
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, 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 &1402420035
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1402420031}
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!1001 &1421503443
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -521,6 +676,39 @@ Transform:
|
|||
m_CorrespondingSourceObject: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
|
||||
m_PrefabInstance: {fileID: 1494435108}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &1702078696
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1702078697}
|
||||
m_Layer: 0
|
||||
m_Name: Environment
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1702078697
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1702078696}
|
||||
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:
|
||||
- {fileID: 1402420032}
|
||||
- {fileID: 1089364666}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 6
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &1715656625
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -528,13 +716,17 @@ PrefabInstance:
|
|||
m_Modification:
|
||||
m_TransformParent: {fileID: 157782261}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1411216412654489461, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
|
||||
propertyPath: _entityBaseSet
|
||||
value:
|
||||
objectReference: {fileID: 11400000, guid: e5f25127d92be074aac6e7b745fae107, type: 2}
|
||||
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -6.3
|
||||
value: -1.8
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
|
@ -542,7 +734,7 @@ PrefabInstance:
|
|||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 11.95
|
||||
value: 2.38
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
|
@ -583,6 +775,28 @@ Transform:
|
|||
m_CorrespondingSourceObject: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
|
||||
m_PrefabInstance: {fileID: 1715656625}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!195 &1715656628
|
||||
NavMeshAgent:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 208658293}
|
||||
m_Enabled: 1
|
||||
m_AgentTypeID: 0
|
||||
m_Radius: 0.5
|
||||
m_Speed: 3.5
|
||||
m_Acceleration: 8
|
||||
avoidancePriority: 50
|
||||
m_AngularSpeed: 120
|
||||
m_StoppingDistance: 0
|
||||
m_AutoTraverseOffMeshLink: 1
|
||||
m_AutoBraking: 1
|
||||
m_AutoRepath: 1
|
||||
m_Height: 2
|
||||
m_BaseOffset: 0
|
||||
m_WalkableMask: 4294967295
|
||||
m_ObstacleAvoidanceType: 4
|
||||
--- !u!1 &2047541735
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b015bab8bed002c438c2a5abb0deec18
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 23800000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Reference in New Issue