Commit 1d5d7af1 by alsunj

Merge branch 'feat/Enemy-shoot-player' into 'main'

mock enemy AI

See merge request alsunj/loputoo!21
parents ff7c4a5e 72dcb273
...@@ -7,10 +7,15 @@ public class Enemy : MonoBehaviour ...@@ -7,10 +7,15 @@ public class Enemy : MonoBehaviour
[SerializeField] private EnemySettings enemySettings; [SerializeField] private EnemySettings enemySettings;
[SerializeField] private GameObject arrow; [SerializeField] private GameObject arrow;
[SerializeField] private GameObject weapon; [SerializeField] private GameObject weapon;
private EnemyManager _enemyManager;
private EnemyAnimator _enemyAnimator;
private GameObject _instantiatedArrow; private GameObject _instantiatedArrow;
private Transform _arrowSpawnPoint; private Transform _arrowSpawnPoint;
private float _shootingTimer; private float _shootingTimer;
private bool _isCrossbowLoaded; private bool _isCrossbowLoaded;
private bool _isAiming;
private Vector3 _LookingDirection;
private bool _targetLocked;
private Collider[] private Collider[]
...@@ -18,6 +23,28 @@ public class Enemy : MonoBehaviour ...@@ -18,6 +23,28 @@ public class Enemy : MonoBehaviour
private void Start() private void Start()
{ {
_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 += TargetShotEndEvent;
_enemyAnimator.receiveTargetAimedEventFromAnimator += ShootTarget;
}
else
{
Debug.LogError("EnemyAnimator is not found as a child");
}
if (enemySettings == null) if (enemySettings == null)
{ {
throw new Exception("EnemySettings is not set in the inspector"); throw new Exception("EnemySettings is not set in the inspector");
...@@ -54,61 +81,73 @@ public class Enemy : MonoBehaviour ...@@ -54,61 +81,73 @@ public class Enemy : MonoBehaviour
if (_shootingTimer > 0) if (_shootingTimer > 0)
{ {
_shootingTimer -= Time.deltaTime; _shootingTimer -= Time.deltaTime;
return;
} }
else if (!_isCrossbowLoaded)
if (!_targetLocked)
{ {
ReloadArrow(); ScanForCollision();
} }
ScanForCollision();
} }
private void ReloadArrow()
public void TargetShotEndEvent()
{ {
Debug.Log("Event received");
_instantiatedArrow.transform.SetParent(weapon.transform); _instantiatedArrow.transform.SetParent(weapon.transform);
_instantiatedArrow.transform.position = _arrowSpawnPoint.position; _instantiatedArrow.transform.position = _arrowSpawnPoint.position;
_instantiatedArrow.transform.rotation = _arrowSpawnPoint.rotation; _instantiatedArrow.transform.rotation = _arrowSpawnPoint.rotation;
_instantiatedArrow.GetComponent<Rigidbody>().linearVelocity = Vector3.zero; _instantiatedArrow.GetComponent<Rigidbody>().linearVelocity = Vector3.zero;
_isCrossbowLoaded = true; _isCrossbowLoaded = true;
_targetLocked = false;
} }
private void ScanForCollision() private void ScanForCollision()
{ {
int numColliders = Physics.OverlapSphereNonAlloc(transform.position, enemySettings.detectionRange, hitColliders, if (_isCrossbowLoaded && _shootingTimer <= 0)
enemySettings.targetLayer);
for (int i = 0; i < numColliders; i++)
{ {
if (_shootingTimer > 0) int numColliders = Physics.OverlapSphereNonAlloc(transform.position, enemySettings.detectionRange,
{ hitColliders,
RotateTowardsTarget(hitColliders[i]); enemySettings.targetLayer);
} if (numColliders > 0)
else
{ {
RotateTowardsTargetAndShootArrow(hitColliders[i]); 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;
RotateTowardsTarget(closestCollider);
} }
} }
} }
private void RotateTowardsTarget(Collider hitCollider) private void RotateTowardsTarget(Collider hitCollider)
{ {
Vector3 direction = (hitCollider.transform.position - transform.position).normalized; _enemyManager.enemyEvents.EnemyAim();
Quaternion lookRotation = Quaternion.LookRotation(new Vector3(direction.x, 0, direction.z)); _LookingDirection = (hitCollider.transform.position - transform.position).normalized;
transform.DORotateQuaternion(lookRotation, 0.7f); Quaternion lookRotation = Quaternion.LookRotation(new Vector3(_LookingDirection.x, 0, _LookingDirection.z));
transform.DORotateQuaternion(lookRotation, 0.5f);
// .OnComplete(() => { _enemyManager.enemyEvents.EnemyAim(false); });
} }
private void RotateTowardsTargetAndShootArrow(Collider hitCollider) private void ShootTarget()
{ {
Vector3 direction = (hitCollider.transform.position - transform.position).normalized; _instantiatedArrow.transform.SetParent(null);
Quaternion lookRotation = Quaternion.LookRotation(new Vector3(direction.x, 0, direction.z)); _instantiatedArrow.transform.rotation = weapon.transform.rotation;
transform.DORotateQuaternion(lookRotation, 0.7f).OnComplete(() => _instantiatedArrow.GetComponent<Rigidbody>().linearVelocity =
{ _LookingDirection * enemySettings.shootingRange;
_instantiatedArrow.transform.SetParent(null); _shootingTimer = enemySettings.shootingDelay;
_instantiatedArrow.transform.rotation = weapon.transform.rotation; _isCrossbowLoaded = false;
_instantiatedArrow.GetComponent<Rigidbody>().linearVelocity = _enemyManager.enemyEvents.EnemyAttack();
direction * enemySettings.shootingRange;
_shootingTimer = enemySettings.shootingDelay;
_isCrossbowLoaded = false;
//TODO: add delay for enemy to not rotate before the weapon is shot.
});
} }
} }
\ No newline at end of file
using System;
using System.Collections;
using Unity.VisualScripting;
using UnityEngine; using UnityEngine;
public class EnemyAnimator : MonoBehaviour public class EnemyAnimator : MonoBehaviour
{ {
private const string IS_WALKING = ""; private const string IS_AIMING = "Aim";
private const string IS_RELOADING = "Reload";
private const string IS_ATTACKING = "Attack";
// Start is called once before the first execution of Update after the MonoBehaviour is created private EnemyEvents _enemyEvents;
void Start() private Animator _animator;
public event Action receiveTargetShotEventFromAnimator;
public event Action receiveTargetAimedEventFromAnimator;
private void Start()
{
_animator = GetComponentInChildren<Animator>();
if (_animator == null)
{
Debug.LogError("Animator component not found in children.");
}
}
private void OnDisable()
{
if (_enemyEvents != null)
{
_enemyEvents.onEnemyAttack -= SetEnemyAttack;
_enemyEvents.onEnemyAim -= SetEnemyAim;
_enemyEvents.onEnemyReload -= SetEnemyReload;
}
}
public void InitializeEvents(EnemyEvents enemyEvents)
{
this._enemyEvents = enemyEvents;
if (_enemyEvents != null)
{
_enemyEvents.onEnemyAttack += SetEnemyAttack;
_enemyEvents.onEnemyAim += SetEnemyAim;
_enemyEvents.onEnemyReload += SetEnemyReload;
}
}
private void ReceiveTargetAimedEventFromAnimator()
{
receiveTargetAimedEventFromAnimator?.Invoke();
}
private void ReceiveTargetShotEventFromAnimator()
{
receiveTargetShotEventFromAnimator?.Invoke();
}
private void SetEnemyReload()
{
_animator.SetTrigger(IS_RELOADING);
}
private void SetEnemyAim()
{ {
_animator.SetTrigger(IS_AIMING);
} }
// Update is called once per frame private void SetEnemyAttack()
void Update()
{ {
_animator.SetTrigger(IS_ATTACKING);
} }
} }
\ No newline at end of file
using UnityEngine;
public class EnemyManager : MonoBehaviour
{
public EnemyEvents enemyEvents;
public void Initialize()
{
enemyEvents = new EnemyEvents();
}
}
\ No newline at end of file
fileFormatVersion: 2 fileFormatVersion: 2
guid: 07e9d1c54bd8feb41954ed530671ed66 guid: 6b51ffc7252b86b43a0b4806229fd39d
\ No newline at end of file \ No newline at end of file
fileFormatVersion: 2
guid: 32284d02f74e7014dad6d4704c03456b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: fa024538e9ddb7f458a201b3c807e27f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System;
public class EnemyEvents
{
public event Action onEnemyAttack;
public event Action onEnemyAim;
public event Action onEnemyReload;
public void EnemyAttack()
{
if (onEnemyAttack != null)
{
onEnemyAttack();
}
}
public void EnemyAim()
{
if (onEnemyAim != null)
{
onEnemyAim();
}
}
public void EnemyReload()
{
if (onEnemyReload != null)
{
onEnemyReload();
}
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 8793ebc03b0e46643854ebf871e6528f
\ No newline at end of file
fileFormatVersion: 2
guid: c39fd674ba0e48e4ea767ac2c6dbc311
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
public class PlayerAnimatorEventManager : MonoBehaviour
{
}
\ No newline at end of file
...@@ -2,7 +2,7 @@ using System; ...@@ -2,7 +2,7 @@ using System;
using Unity.Netcode; using Unity.Netcode;
using UnityEngine; using UnityEngine;
public class Key : Pickupable, IPickupable public class Key : Pickupable
{ {
// private Quaternion _startingRotation; // private Quaternion _startingRotation;
private BoxCollider _boxCollider; private BoxCollider _boxCollider;
......
...@@ -4,7 +4,7 @@ using UnityEngine; ...@@ -4,7 +4,7 @@ using UnityEngine;
public class FollowTransform : MonoBehaviour public class FollowTransform : MonoBehaviour
{ {
private ISwitchPlayerMap _targetPlayerControls; private ISwitchPlayerMap _targetPlayerControls;
private Transform targetTransform; private Transform _targetTransform;
private Quaternion _startingRotation; private Quaternion _startingRotation;
...@@ -27,7 +27,7 @@ public class FollowTransform : MonoBehaviour ...@@ -27,7 +27,7 @@ public class FollowTransform : MonoBehaviour
_targetPlayerControls.TurnOffPlayerControls(); _targetPlayerControls.TurnOffPlayerControls();
transform.DOMove(targetTransform.position, followTransformSettings.pickupDuration).OnComplete(() => transform.DOMove(targetTransform.position, followTransformSettings.pickupDuration).OnComplete(() =>
{ {
this.targetTransform = targetTransform; this._targetTransform = targetTransform;
_targetPlayerControls.TurnOnPlayerControls(); _targetPlayerControls.TurnOnPlayerControls();
}); });
} }
...@@ -39,22 +39,22 @@ public class FollowTransform : MonoBehaviour ...@@ -39,22 +39,22 @@ public class FollowTransform : MonoBehaviour
transform.DOMove(putDownPosition, followTransformSettings.putDownDuration).OnComplete(() => transform.DOMove(putDownPosition, followTransformSettings.putDownDuration).OnComplete(() =>
{ {
transform.rotation = _startingRotation; transform.rotation = _startingRotation;
targetTransform = null;
_targetPlayerControls.TurnOnPlayerControls(); _targetPlayerControls.TurnOnPlayerControls();
SetTargetPlayerControls(null);
_targetTransform = null;
}); });
SetTargetPlayerControls(null);
} }
private void LateUpdate() private void LateUpdate()
{ {
if (targetTransform == null) if (_targetTransform == null)
{ {
return; return;
} }
transform.position = targetTransform.position + followTransformSettings.targetPositionOffset; transform.position = _targetTransform.position + followTransformSettings.targetPositionOffset;
Vector3 targetEulerAngles = targetTransform.rotation.eulerAngles + followTransformSettings.targetRotationOffset; Vector3 targetEulerAngles =
_targetTransform.rotation.eulerAngles + followTransformSettings.targetRotationOffset;
transform.rotation = Quaternion.Euler(targetEulerAngles); transform.rotation = Quaternion.Euler(targetEulerAngles);
} }
} }
\ No newline at end of file
...@@ -14,7 +14,7 @@ public class PlayerAnimator : NetworkBehaviour ...@@ -14,7 +14,7 @@ public class PlayerAnimator : NetworkBehaviour
private PlayerEvents _playerEvents; private PlayerEvents _playerEvents;
private Animator _animator; private Animator _animator;
private void Awake() private void Start()
{ {
_animator = GetComponentInChildren<Animator>(); _animator = GetComponentInChildren<Animator>();
} }
...@@ -45,13 +45,6 @@ public class PlayerAnimator : NetworkBehaviour ...@@ -45,13 +45,6 @@ public class PlayerAnimator : NetworkBehaviour
} }
} }
private void Update()
{
if (!IsOwner)
{
return;
}
}
private void SetPlayerRunBool(bool state) private void SetPlayerRunBool(bool state)
{ {
...@@ -76,9 +69,9 @@ public class PlayerAnimator : NetworkBehaviour ...@@ -76,9 +69,9 @@ public class PlayerAnimator : NetworkBehaviour
private void SetPlayerDefence(bool state) private void SetPlayerDefence(bool state)
{ {
_animator.SetBool(IS_DEFENDING, state); _animator.SetBool(IS_DEFENDING, state);
if (state) // if (state)
{ // {
_animator.CrossFade(IS_DEFENDING, 0.1f, -1, 0, 1f); // _animator.CrossFade(IS_DEFENDING, 1f);
} // }
} }
} }
\ No newline at end of file
...@@ -437,21 +437,22 @@ public class PlayerController : NetworkBehaviour ...@@ -437,21 +437,22 @@ public class PlayerController : NetworkBehaviour
private void CheckForWeapons() private void CheckForWeapons()
{ {
if (_playerPlacements.playerRightHand != null) //TODO: here it has to make a request to server and check playerRightHandItem
{ // if (_playerPlacements.playerRightHand != null)
var explosive = _playerPlacements.playerRightHand.GetComponent<Explosive>(); // {
if (explosive != null) // Debug.Log(_playerPlacements.playerRightHand.name);
{ // var explosive = _playerPlacements.playerRightHand.GetComponent<Explosive>();
Vector3 throwDirection = transform.forward; // if (explosive != null)
explosive.Throw(throwDirection); // {
// Vector3 throwDirection = transform.forward;
} // explosive.Throw(throwDirection);
} // }
else // }
{ // else
HitObject(hitDamage); // {
// Debug.Log("hitobject");
} HitObject(hitDamage);
//}
} }
private void HitObject(float weaponHitDamage) private void HitObject(float weaponHitDamage)
......
...@@ -10,6 +10,7 @@ GameObject: ...@@ -10,6 +10,7 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 462326326808441748} - component: {fileID: 462326326808441748}
- component: {fileID: 4151337880934277662} - component: {fileID: 4151337880934277662}
- component: {fileID: 4208536349724091019}
m_Layer: 0 m_Layer: 0
m_Name: Rogue m_Name: Rogue
m_TagString: Untagged m_TagString: Untagged
...@@ -48,6 +49,18 @@ MonoBehaviour: ...@@ -48,6 +49,18 @@ MonoBehaviour:
enemySettings: {fileID: 11400000, guid: 5b554b15c5ebdf34b851d342d3f332c3, type: 2} enemySettings: {fileID: 11400000, guid: 5b554b15c5ebdf34b851d342d3f332c3, type: 2}
arrow: {fileID: 8885891558877188487, guid: c0cc14b5c48376d43b0421a2762d35cb, type: 3} arrow: {fileID: 8885891558877188487, guid: c0cc14b5c48376d43b0421a2762d35cb, type: 3}
weapon: {fileID: 6430031212675530119} weapon: {fileID: 6430031212675530119}
--- !u!114 &4208536349724091019
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 273039182630653378}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b51ffc7252b86b43a0b4806229fd39d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1369079606729036068 --- !u!1 &1369079606729036068
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -275,6 +288,9 @@ PrefabInstance: ...@@ -275,6 +288,9 @@ PrefabInstance:
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: a577d9f96e34b5b4bb53a563b9fcf3e9, type: 3} - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: a577d9f96e34b5b4bb53a563b9fcf3e9, type: 3}
insertIndex: -1 insertIndex: -1
addedObject: {fileID: 568773292121004276} addedObject: {fileID: 568773292121004276}
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: a577d9f96e34b5b4bb53a563b9fcf3e9, type: 3}
insertIndex: -1
addedObject: {fileID: 5907138048780906194}
m_SourcePrefab: {fileID: 100100000, guid: a577d9f96e34b5b4bb53a563b9fcf3e9, type: 3} m_SourcePrefab: {fileID: 100100000, guid: a577d9f96e34b5b4bb53a563b9fcf3e9, type: 3}
--- !u!4 &5640393319647876343 stripped --- !u!4 &5640393319647876343 stripped
Transform: Transform:
...@@ -308,6 +324,18 @@ Animator: ...@@ -308,6 +324,18 @@ Animator:
m_AllowConstantClipSamplingOptimization: 1 m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0 m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0 m_WriteDefaultValuesOnDisable: 0
--- !u!114 &5907138048780906194
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6289059839580298696}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f756dd42a94556a4489ea5f3fa82f1c2, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &6632933873018439538 stripped --- !u!4 &6632933873018439538 stripped
Transform: Transform:
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: a577d9f96e34b5b4bb53a563b9fcf3e9, type: 3} m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: a577d9f96e34b5b4bb53a563b9fcf3e9, type: 3}
......
...@@ -11,28 +11,38 @@ AnimatorStateMachine: ...@@ -11,28 +11,38 @@ AnimatorStateMachine:
m_ChildStates: m_ChildStates:
- serializedVersion: 1 - serializedVersion: 1
m_State: {fileID: -3853274732491035516} m_State: {fileID: -3853274732491035516}
m_Position: {x: 40, y: 200, z: 0} m_Position: {x: -30, y: 200, z: 0}
- serializedVersion: 1
m_State: {fileID: -6313296376528861971}
m_Position: {x: -30, y: 310, z: 0}
- serializedVersion: 1
m_State: {fileID: -3195231021192671509}
m_Position: {x: 230, y: 200, z: 0}
- serializedVersion: 1
m_State: {fileID: -3117074883161603952}
m_Position: {x: -310, y: 210, z: 0}
m_ChildStateMachines: [] m_ChildStateMachines: []
m_AnyStateTransitions: [] m_AnyStateTransitions: []
m_EntryTransitions: [] m_EntryTransitions: []
m_StateMachineTransitions: {} m_StateMachineTransitions: {}
m_StateMachineBehaviours: [] m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0} m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 40, y: 120, z: 0} m_EntryPosition: {x: -20, y: 110, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0} m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -3853274732491035516} m_DefaultState: {fileID: -3853274732491035516}
--- !u!1102 &-3853274732491035516 --- !u!1102 &-6313296376528861971
AnimatorState: AnimatorState:
serializedVersion: 6 serializedVersion: 6
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_Name: New State m_Name: Aim
m_Speed: 1 m_Speed: 1
m_CycleOffset: 0 m_CycleOffset: 0
m_Transitions: [] m_Transitions:
- {fileID: -240672606731872282}
m_StateMachineBehaviours: [] m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0} m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0 m_IKOnFeet: 0
...@@ -48,6 +58,135 @@ AnimatorState: ...@@ -48,6 +58,135 @@ AnimatorState:
m_MirrorParameter: m_MirrorParameter:
m_CycleOffsetParameter: m_CycleOffsetParameter:
m_TimeParameter: m_TimeParameter:
--- !u!1102 &-3853274732491035516
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Idle
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 4308505689113462075}
- {fileID: 3413363651460523439}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 345275505875579249, guid: 0592ff659cda68b41a8c48a2c5a11a87, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-3195231021192671509
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Attack
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: -1041327520746502340}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7083891485487361019, guid: 0592ff659cda68b41a8c48a2c5a11a87, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-3117074883161603952
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Reload
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 7048913800801506744}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: -1954687964646988558, guid: 0592ff659cda68b41a8c48a2c5a11a87, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &-1041327520746502340
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -3853274732491035516}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.4364797
m_TransitionOffset: 0
m_ExitTime: 0.8977654
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &-240672606731872282
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: Attack
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -3195231021192671509}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.84375
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!91 &9100000 --- !u!91 &9100000
AnimatorController: AnimatorController:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -56,7 +195,25 @@ AnimatorController: ...@@ -56,7 +195,25 @@ AnimatorController:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_Name: RogueAnimatorController m_Name: RogueAnimatorController
serializedVersion: 5 serializedVersion: 5
m_AnimatorParameters: [] m_AnimatorParameters:
- m_Name: Reload
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
- m_Name: Attack
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
- m_Name: Aim
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_AnimatorLayers: m_AnimatorLayers:
- serializedVersion: 5 - serializedVersion: 5
m_Name: Base Layer m_Name: Base Layer
...@@ -70,3 +227,75 @@ AnimatorController: ...@@ -70,3 +227,75 @@ AnimatorController:
m_IKPass: 0 m_IKPass: 0
m_SyncedLayerAffectsTiming: 0 m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000} m_Controller: {fileID: 9100000}
--- !u!1101 &3413363651460523439
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: Reload
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -3117074883161603952}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.24999988
m_TransitionOffset: 0.016385365
m_ExitTime: 0.8828125
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &4308505689113462075
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: Aim
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -6313296376528861971}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.8026316
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &7048913800801506744
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -3853274732491035516}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.84309626
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
...@@ -498,7 +498,7 @@ ModelImporter: ...@@ -498,7 +498,7 @@ ModelImporter:
name: 2H_Ranged_Aiming name: 2H_Ranged_Aiming
takeName: 2H_Ranged_Aiming takeName: 2H_Ranged_Aiming
internalID: -2767709846786070005 internalID: -2767709846786070005
firstFrame: 10 firstFrame: 0
lastFrame: 48 lastFrame: 48
wrapMode: 0 wrapMode: 0
orientationOffsetY: 0 orientationOffsetY: 0
...@@ -518,7 +518,14 @@ ModelImporter: ...@@ -518,7 +518,14 @@ ModelImporter:
mirror: 0 mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: [] curves: []
events: [] events:
- time: 0.87467366
functionName: ReceiveTargetAimedEventFromAnimator
data:
objectReferenceParameter: {fileID: 11500000, guid: f756dd42a94556a4489ea5f3fa82f1c2, type: 3}
floatParameter: 0
intParameter: 0
messageOptions: 0
transformMask: [] transformMask: []
maskType: 3 maskType: 3
maskSource: {instanceID: 0} maskSource: {instanceID: 0}
...@@ -528,14 +535,14 @@ ModelImporter: ...@@ -528,14 +535,14 @@ ModelImporter:
takeName: 2H_Ranged_Reload takeName: 2H_Ranged_Reload
internalID: -1954687964646988558 internalID: -1954687964646988558
firstFrame: 0 firstFrame: 0
lastFrame: 48 lastFrame: 47.8
wrapMode: 0 wrapMode: 0
orientationOffsetY: 0 orientationOffsetY: 0
level: 0 level: 0
cycleOffset: 0 cycleOffset: 0
loop: 0 loop: 0
hasAdditiveReferencePose: 0 hasAdditiveReferencePose: 0
loopTime: 0 loopTime: 1
loopBlend: 0 loopBlend: 0
loopBlendOrientation: 0 loopBlendOrientation: 0
loopBlendPositionY: 0 loopBlendPositionY: 0
...@@ -556,7 +563,7 @@ ModelImporter: ...@@ -556,7 +563,7 @@ ModelImporter:
name: 2H_Ranged_Shoot name: 2H_Ranged_Shoot
takeName: 2H_Ranged_Shoot takeName: 2H_Ranged_Shoot
internalID: 7083891485487361019 internalID: 7083891485487361019
firstFrame: 0 firstFrame: 3
lastFrame: 32 lastFrame: 32
wrapMode: 0 wrapMode: 0
orientationOffsetY: 0 orientationOffsetY: 0
...@@ -576,7 +583,14 @@ ModelImporter: ...@@ -576,7 +583,14 @@ ModelImporter:
mirror: 0 mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: [] curves: []
events: [] events:
- time: 0.9712794
functionName: ReceiveTargetShotEventFromAnimator
data:
objectReferenceParameter: {fileID: 11500000, guid: f756dd42a94556a4489ea5f3fa82f1c2, type: 3}
floatParameter: 0
intParameter: 0
messageOptions: 0
transformMask: [] transformMask: []
maskType: 3 maskType: 3
maskSource: {instanceID: 0} maskSource: {instanceID: 0}
...@@ -2768,7 +2782,7 @@ ModelImporter: ...@@ -2768,7 +2782,7 @@ ModelImporter:
cycleOffset: 0 cycleOffset: 0
loop: 0 loop: 0
hasAdditiveReferencePose: 0 hasAdditiveReferencePose: 0
loopTime: 0 loopTime: 1
loopBlend: 0 loopBlend: 0
loopBlendOrientation: 0 loopBlendOrientation: 0
loopBlendPositionY: 0 loopBlendPositionY: 0
......
...@@ -251,7 +251,7 @@ AnimatorController: ...@@ -251,7 +251,7 @@ AnimatorController:
m_Type: 9 m_Type: 9
m_DefaultFloat: 0 m_DefaultFloat: 0
m_DefaultInt: 0 m_DefaultInt: 0
m_DefaultBool: 1 m_DefaultBool: 0
m_Controller: {fileID: 9100000} m_Controller: {fileID: 9100000}
m_AnimatorLayers: m_AnimatorLayers:
- serializedVersion: 5 - serializedVersion: 5
......
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