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
[SerializeField] private EnemySettings enemySettings;
[SerializeField] private GameObject arrow;
[SerializeField] private GameObject weapon;
private EnemyManager _enemyManager;
private EnemyAnimator _enemyAnimator;
private GameObject _instantiatedArrow;
private Transform _arrowSpawnPoint;
private float _shootingTimer;
private bool _isCrossbowLoaded;
private bool _isAiming;
private Vector3 _LookingDirection;
private bool _targetLocked;
private Collider[]
......@@ -18,6 +23,28 @@ public class Enemy : MonoBehaviour
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)
{
throw new Exception("EnemySettings is not set in the inspector");
......@@ -54,61 +81,73 @@ public class Enemy : MonoBehaviour
if (_shootingTimer > 0)
{
_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.position = _arrowSpawnPoint.position;
_instantiatedArrow.transform.rotation = _arrowSpawnPoint.rotation;
_instantiatedArrow.GetComponent<Rigidbody>().linearVelocity = Vector3.zero;
_isCrossbowLoaded = true;
_targetLocked = false;
}
private void ScanForCollision()
{
int numColliders = Physics.OverlapSphereNonAlloc(transform.position, enemySettings.detectionRange, hitColliders,
enemySettings.targetLayer);
for (int i = 0; i < numColliders; i++)
if (_isCrossbowLoaded && _shootingTimer <= 0)
{
if (_shootingTimer > 0)
{
RotateTowardsTarget(hitColliders[i]);
}
else
int numColliders = Physics.OverlapSphereNonAlloc(transform.position, enemySettings.detectionRange,
hitColliders,
enemySettings.targetLayer);
if (numColliders > 0)
{
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)
{
Vector3 direction = (hitCollider.transform.position - transform.position).normalized;
Quaternion lookRotation = Quaternion.LookRotation(new Vector3(direction.x, 0, direction.z));
transform.DORotateQuaternion(lookRotation, 0.7f);
_enemyManager.enemyEvents.EnemyAim();
_LookingDirection = (hitCollider.transform.position - transform.position).normalized;
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;
Quaternion lookRotation = Quaternion.LookRotation(new Vector3(direction.x, 0, direction.z));
transform.DORotateQuaternion(lookRotation, 0.7f).OnComplete(() =>
{
_instantiatedArrow.transform.SetParent(null);
_instantiatedArrow.transform.rotation = weapon.transform.rotation;
_instantiatedArrow.GetComponent<Rigidbody>().linearVelocity =
direction * enemySettings.shootingRange;
_shootingTimer = enemySettings.shootingDelay;
_isCrossbowLoaded = false;
//TODO: add delay for enemy to not rotate before the weapon is shot.
});
_instantiatedArrow.transform.SetParent(null);
_instantiatedArrow.transform.rotation = weapon.transform.rotation;
_instantiatedArrow.GetComponent<Rigidbody>().linearVelocity =
_LookingDirection * enemySettings.shootingRange;
_shootingTimer = enemySettings.shootingDelay;
_isCrossbowLoaded = false;
_enemyManager.enemyEvents.EnemyAttack();
}
}
\ No newline at end of file
using System;
using System.Collections;
using Unity.VisualScripting;
using UnityEngine;
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
void Start()
private EnemyEvents _enemyEvents;
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
void Update()
private void SetEnemyAttack()
{
_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
guid: 07e9d1c54bd8feb41954ed530671ed66
\ No newline at end of file
guid: 6b51ffc7252b86b43a0b4806229fd39d
\ 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;
using Unity.Netcode;
using UnityEngine;
public class Key : Pickupable, IPickupable
public class Key : Pickupable
{
// private Quaternion _startingRotation;
private BoxCollider _boxCollider;
......
......@@ -4,7 +4,7 @@ using UnityEngine;
public class FollowTransform : MonoBehaviour
{
private ISwitchPlayerMap _targetPlayerControls;
private Transform targetTransform;
private Transform _targetTransform;
private Quaternion _startingRotation;
......@@ -27,7 +27,7 @@ public class FollowTransform : MonoBehaviour
_targetPlayerControls.TurnOffPlayerControls();
transform.DOMove(targetTransform.position, followTransformSettings.pickupDuration).OnComplete(() =>
{
this.targetTransform = targetTransform;
this._targetTransform = targetTransform;
_targetPlayerControls.TurnOnPlayerControls();
});
}
......@@ -39,22 +39,22 @@ public class FollowTransform : MonoBehaviour
transform.DOMove(putDownPosition, followTransformSettings.putDownDuration).OnComplete(() =>
{
transform.rotation = _startingRotation;
targetTransform = null;
_targetPlayerControls.TurnOnPlayerControls();
SetTargetPlayerControls(null);
_targetTransform = null;
});
SetTargetPlayerControls(null);
}
private void LateUpdate()
{
if (targetTransform == null)
if (_targetTransform == null)
{
return;
}
transform.position = targetTransform.position + followTransformSettings.targetPositionOffset;
Vector3 targetEulerAngles = targetTransform.rotation.eulerAngles + followTransformSettings.targetRotationOffset;
transform.position = _targetTransform.position + followTransformSettings.targetPositionOffset;
Vector3 targetEulerAngles =
_targetTransform.rotation.eulerAngles + followTransformSettings.targetRotationOffset;
transform.rotation = Quaternion.Euler(targetEulerAngles);
}
}
\ No newline at end of file
......@@ -14,7 +14,7 @@ public class PlayerAnimator : NetworkBehaviour
private PlayerEvents _playerEvents;
private Animator _animator;
private void Awake()
private void Start()
{
_animator = GetComponentInChildren<Animator>();
}
......@@ -45,13 +45,6 @@ public class PlayerAnimator : NetworkBehaviour
}
}
private void Update()
{
if (!IsOwner)
{
return;
}
}
private void SetPlayerRunBool(bool state)
{
......@@ -76,9 +69,9 @@ public class PlayerAnimator : NetworkBehaviour
private void SetPlayerDefence(bool state)
{
_animator.SetBool(IS_DEFENDING, state);
if (state)
{
_animator.CrossFade(IS_DEFENDING, 0.1f, -1, 0, 1f);
}
// if (state)
// {
// _animator.CrossFade(IS_DEFENDING, 1f);
// }
}
}
\ No newline at end of file
......@@ -437,21 +437,22 @@ public class PlayerController : NetworkBehaviour
private void CheckForWeapons()
{
if (_playerPlacements.playerRightHand != null)
{
var explosive = _playerPlacements.playerRightHand.GetComponent<Explosive>();
if (explosive != null)
{
Vector3 throwDirection = transform.forward;
explosive.Throw(throwDirection);
}
}
else
{
HitObject(hitDamage);
}
//TODO: here it has to make a request to server and check playerRightHandItem
// if (_playerPlacements.playerRightHand != null)
// {
// Debug.Log(_playerPlacements.playerRightHand.name);
// var explosive = _playerPlacements.playerRightHand.GetComponent<Explosive>();
// if (explosive != null)
// {
// Vector3 throwDirection = transform.forward;
// explosive.Throw(throwDirection);
// }
// }
// else
// {
// Debug.Log("hitobject");
HitObject(hitDamage);
//}
}
private void HitObject(float weaponHitDamage)
......
......@@ -10,6 +10,7 @@ GameObject:
m_Component:
- component: {fileID: 462326326808441748}
- component: {fileID: 4151337880934277662}
- component: {fileID: 4208536349724091019}
m_Layer: 0
m_Name: Rogue
m_TagString: Untagged
......@@ -48,6 +49,18 @@ MonoBehaviour:
enemySettings: {fileID: 11400000, guid: 5b554b15c5ebdf34b851d342d3f332c3, type: 2}
arrow: {fileID: 8885891558877188487, guid: c0cc14b5c48376d43b0421a2762d35cb, type: 3}
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
GameObject:
m_ObjectHideFlags: 0
......@@ -275,6 +288,9 @@ PrefabInstance:
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: a577d9f96e34b5b4bb53a563b9fcf3e9, type: 3}
insertIndex: -1
addedObject: {fileID: 568773292121004276}
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: a577d9f96e34b5b4bb53a563b9fcf3e9, type: 3}
insertIndex: -1
addedObject: {fileID: 5907138048780906194}
m_SourcePrefab: {fileID: 100100000, guid: a577d9f96e34b5b4bb53a563b9fcf3e9, type: 3}
--- !u!4 &5640393319647876343 stripped
Transform:
......@@ -308,6 +324,18 @@ Animator:
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 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
Transform:
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: a577d9f96e34b5b4bb53a563b9fcf3e9, type: 3}
......
......@@ -11,28 +11,38 @@ AnimatorStateMachine:
m_ChildStates:
- serializedVersion: 1
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_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
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_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -3853274732491035516}
--- !u!1102 &-3853274732491035516
--- !u!1102 &-6313296376528861971
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: New State
m_Name: Aim
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_Transitions:
- {fileID: -240672606731872282}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
......@@ -48,6 +58,135 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
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
AnimatorController:
m_ObjectHideFlags: 0
......@@ -56,7 +195,25 @@ AnimatorController:
m_PrefabAsset: {fileID: 0}
m_Name: RogueAnimatorController
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:
- serializedVersion: 5
m_Name: Base Layer
......@@ -70,3 +227,75 @@ AnimatorController:
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
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:
name: 2H_Ranged_Aiming
takeName: 2H_Ranged_Aiming
internalID: -2767709846786070005
firstFrame: 10
firstFrame: 0
lastFrame: 48
wrapMode: 0
orientationOffsetY: 0
......@@ -518,7 +518,14 @@ ModelImporter:
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
events:
- time: 0.87467366
functionName: ReceiveTargetAimedEventFromAnimator
data:
objectReferenceParameter: {fileID: 11500000, guid: f756dd42a94556a4489ea5f3fa82f1c2, type: 3}
floatParameter: 0
intParameter: 0
messageOptions: 0
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
......@@ -528,14 +535,14 @@ ModelImporter:
takeName: 2H_Ranged_Reload
internalID: -1954687964646988558
firstFrame: 0
lastFrame: 48
lastFrame: 47.8
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 0
loopTime: 1
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
......@@ -556,7 +563,7 @@ ModelImporter:
name: 2H_Ranged_Shoot
takeName: 2H_Ranged_Shoot
internalID: 7083891485487361019
firstFrame: 0
firstFrame: 3
lastFrame: 32
wrapMode: 0
orientationOffsetY: 0
......@@ -576,7 +583,14 @@ ModelImporter:
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
events:
- time: 0.9712794
functionName: ReceiveTargetShotEventFromAnimator
data:
objectReferenceParameter: {fileID: 11500000, guid: f756dd42a94556a4489ea5f3fa82f1c2, type: 3}
floatParameter: 0
intParameter: 0
messageOptions: 0
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
......@@ -2768,7 +2782,7 @@ ModelImporter:
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 0
loopTime: 1
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
......
......@@ -251,7 +251,7 @@ AnimatorController:
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 1
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_AnimatorLayers:
- 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