working on charging and quick attacks
This commit is contained in:
Submodule Assets/RebootKit updated: 363b20a067...369f7099ad
@@ -34,7 +34,7 @@ namespace RebootReality.jelycho.Beacons {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int GetMaxBytes() {
|
public int GetMaxBytes() {
|
||||||
return 0;
|
return sizeof(float) * 3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,6 +43,10 @@ namespace RebootReality.jelycho.Beacons {
|
|||||||
[SerializeField] float m_ConnectionRopeLength = 10.0f;
|
[SerializeField] float m_ConnectionRopeLength = 10.0f;
|
||||||
[SerializeField] float m_BeaconSpawnRadius = 15.0f;
|
[SerializeField] float m_BeaconSpawnRadius = 15.0f;
|
||||||
|
|
||||||
|
[SerializeField] float m_BeaconSpawnShakeIntensity = 1.0f;
|
||||||
|
[SerializeField] float m_BeaconSpawnShakeRadius = 20.0f;
|
||||||
|
[SerializeField] float m_BeaconSpawnShakeDuration = 1.0f;
|
||||||
|
|
||||||
protected override IActorData CreateActorData() {
|
protected override IActorData CreateActorData() {
|
||||||
return new BaseManagerActorData();
|
return new BaseManagerActorData();
|
||||||
}
|
}
|
||||||
@@ -52,6 +56,13 @@ namespace RebootReality.jelycho.Beacons {
|
|||||||
SpawnBeaconCommandData commandData = new SpawnBeaconCommandData();
|
SpawnBeaconCommandData commandData = new SpawnBeaconCommandData();
|
||||||
DataSerializationUtils.Deserialize(actorCommand.Data, ref commandData);
|
DataSerializationUtils.Deserialize(actorCommand.Data, ref commandData);
|
||||||
RR.SpawnActor(m_BeaconPrefab, commandData.Position, Quaternion.identity);
|
RR.SpawnActor(m_BeaconPrefab, commandData.Position, Quaternion.identity);
|
||||||
|
|
||||||
|
if (RR.World.Context is WorldContext worldContext) {
|
||||||
|
worldContext.FeedbacksManager.ShakeCamera(commandData.Position,
|
||||||
|
m_BeaconSpawnRadius,
|
||||||
|
m_BeaconSpawnShakeIntensity,
|
||||||
|
m_BeaconSpawnShakeDuration);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ namespace RebootReality.jelycho.Beacons {
|
|||||||
[Range(0.0f, 1.0f)] public float growAmount = 0.5f;
|
[Range(0.0f, 1.0f)] public float growAmount = 0.5f;
|
||||||
[SerializeField] public float growSpeed = 0.5f;
|
[SerializeField] public float growSpeed = 0.5f;
|
||||||
|
|
||||||
|
[SerializeField] public ParticleSystem m_GrowParticleSystem;
|
||||||
|
|
||||||
float m_CurrentGrowAmount = 0.0f;
|
float m_CurrentGrowAmount = 0.0f;
|
||||||
|
|
||||||
void Update() {
|
void Update() {
|
||||||
@@ -81,6 +83,8 @@ namespace RebootReality.jelycho.Beacons {
|
|||||||
m_CurrentGrowAmount = 0.0f;
|
m_CurrentGrowAmount = 0.0f;
|
||||||
UpdateElements(m_CurrentGrowAmount);
|
UpdateElements(m_CurrentGrowAmount);
|
||||||
growAmount = 1.0f;
|
growAmount = 1.0f;
|
||||||
|
|
||||||
|
m_GrowParticleSystem.Play();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
using RebootKit.Engine.Network;
|
using System;
|
||||||
|
using RebootKit.Engine.Main;
|
||||||
|
using RebootKit.Engine.Network;
|
||||||
using RebootKit.Engine.Simulation;
|
using RebootKit.Engine.Simulation;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using Logger = RebootKit.Engine.Foundation.Logger;
|
||||||
|
|
||||||
namespace RebootReality.jelycho.Enemies {
|
namespace RebootReality.jelycho.Enemies {
|
||||||
public class ZombieActorData : IActorData {
|
public class ZombieActorData : IActorData {
|
||||||
@@ -15,11 +18,104 @@ namespace RebootReality.jelycho.Enemies {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ZombieActor : Actor {
|
public interface IKillable {
|
||||||
|
bool IsAlive();
|
||||||
|
|
||||||
|
float OnHit(Actor attacker, float damage);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ZombieActor : Actor, IKillable {
|
||||||
|
static readonly Logger s_Logger = new Logger(nameof(ZombieActor));
|
||||||
|
|
||||||
[SerializeField] Animator m_Animator;
|
[SerializeField] Animator m_Animator;
|
||||||
|
|
||||||
|
[SerializeField] Collider[] m_RagdollColliders;
|
||||||
|
[SerializeField] Rigidbody[] m_RagdollRigidbodies;
|
||||||
|
|
||||||
|
[SerializeField] Collider[] m_Hitboxes;
|
||||||
|
|
||||||
|
//
|
||||||
|
// @MARK: Unity callbacks
|
||||||
|
//
|
||||||
|
void Awake() {
|
||||||
|
SetRagdollLocal(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// @MARK: Actor
|
||||||
|
//
|
||||||
protected override IActorData CreateActorData() {
|
protected override IActorData CreateActorData() {
|
||||||
return new ZombieActorData();
|
return new ZombieActorData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void OnActorEventClient(ActorEvent actorEvent) {
|
||||||
|
ZombieActorEvents zombieEvent = (ZombieActorEvents) actorEvent.EventID;
|
||||||
|
|
||||||
|
switch (zombieEvent) {
|
||||||
|
case ZombieActorEvents.EnableRagdoll: {
|
||||||
|
SetRagdollLocal(true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// @MARK: Ragdoll
|
||||||
|
//
|
||||||
|
void EnableRagdoll() {
|
||||||
|
SendActorEvent((byte)ZombieActorEvents.EnableRagdoll);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetRagdollLocal(bool active) {
|
||||||
|
foreach (Collider ragdollCollider in m_RagdollColliders) {
|
||||||
|
ragdollCollider.enabled = active;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Rigidbody ragdollRigidbody in m_RagdollRigidbodies) {
|
||||||
|
ragdollRigidbody.isKinematic = !active;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_Animator.enabled = !active;
|
||||||
|
|
||||||
|
foreach (Collider hitbox in m_Hitboxes) {
|
||||||
|
hitbox.enabled = !active;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// @MARK: IKillable
|
||||||
|
//
|
||||||
|
public float Health { get; private set; } = 100.0f;
|
||||||
|
|
||||||
|
public bool IsAlive() {
|
||||||
|
return Health > 0.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float OnHit(Actor attacker, float damage) {
|
||||||
|
if (!RR.IsServer()) {
|
||||||
|
s_Logger.Error("OnHit can only be called on the server.");
|
||||||
|
return 0.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!IsAlive()) {
|
||||||
|
return 0.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
s_Logger.Info($"Hit: {damage}");
|
||||||
|
|
||||||
|
Health -= damage;
|
||||||
|
if (Health <= 0.0f) {
|
||||||
|
s_Logger.Info("Die");
|
||||||
|
EnableRagdoll();
|
||||||
|
return damage - Mathf.Abs(Health);
|
||||||
|
}
|
||||||
|
|
||||||
|
return damage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
enum ZombieActorEvents {
|
||||||
|
None = 0x00,
|
||||||
|
EnableRagdoll = 0x01
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
3
Assets/jelycho/Code/Feedbacks.meta
Normal file
3
Assets/jelycho/Code/Feedbacks.meta
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3e17e27d5e3a403ca95f4b4bc3ef1352
|
||||||
|
timeCreated: 1753936922
|
||||||
140
Assets/jelycho/Code/Feedbacks/FeedbacksManagerActor.cs
Normal file
140
Assets/jelycho/Code/Feedbacks/FeedbacksManagerActor.cs
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using RebootKit.Engine.Main;
|
||||||
|
using RebootKit.Engine.Network;
|
||||||
|
using RebootKit.Engine.Simulation;
|
||||||
|
using Unity.Mathematics;
|
||||||
|
using UnityEngine;
|
||||||
|
using Logger = RebootKit.Engine.Foundation.Logger;
|
||||||
|
|
||||||
|
namespace RebootReality.jelycho.Feedbacks {
|
||||||
|
struct CameraShakeFeedback {
|
||||||
|
public Vector3 center;
|
||||||
|
public float radius;
|
||||||
|
public float intensity;
|
||||||
|
public float timer;
|
||||||
|
|
||||||
|
public static int GetMaxBytes() {
|
||||||
|
return sizeof(float) * 3 + sizeof(float) * 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FeedbacksManagerActor : Actor {
|
||||||
|
static readonly Logger s_Logger = new Logger(nameof(FeedbacksManagerActor));
|
||||||
|
|
||||||
|
List<CameraShakeFeedback> m_ActiveCameraShakes = new List<CameraShakeFeedback>();
|
||||||
|
|
||||||
|
//
|
||||||
|
// @MARK: Camera shake
|
||||||
|
//
|
||||||
|
public void ShakeCamera(Vector3 center, float radius, float intensity, float duration) {
|
||||||
|
if (!RR.IsServer()) {
|
||||||
|
s_Logger.Error("ShakeCamera can only be called on the server.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
FeedbacksCameraShakeEvent ev = new FeedbacksCameraShakeEvent {
|
||||||
|
Feedback = new CameraShakeFeedback {
|
||||||
|
center = center,
|
||||||
|
radius = radius,
|
||||||
|
intensity = intensity,
|
||||||
|
timer = duration
|
||||||
|
}
|
||||||
|
};
|
||||||
|
SendActorEvent((byte)FeedbacksManagerActorEvents.CameraShake, ref ev);
|
||||||
|
}
|
||||||
|
|
||||||
|
public float GetShakeIntensityForPosition(Vector3 position) {
|
||||||
|
if (m_ActiveCameraShakes.Count == 0) {
|
||||||
|
return 0.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
float intensity = 0.0f;
|
||||||
|
|
||||||
|
foreach (CameraShakeFeedback feedback in m_ActiveCameraShakes) {
|
||||||
|
if (feedback.radius <= 0.0f) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
float distSquared = math.distancesq(feedback.center, position);
|
||||||
|
float radiusSquared = feedback.radius * feedback.radius;
|
||||||
|
|
||||||
|
if (distSquared > radiusSquared) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
float feedbackIntensity = Mathf.Lerp(0.0f,
|
||||||
|
feedback.intensity,
|
||||||
|
1.0f - (distSquared / radiusSquared));
|
||||||
|
intensity = Mathf.Max(feedbackIntensity, intensity);
|
||||||
|
}
|
||||||
|
|
||||||
|
return intensity;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// @MARK: Actor
|
||||||
|
//
|
||||||
|
protected override IActorData CreateActorData() {
|
||||||
|
return new NoActorData();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnClientTick(float deltaTime) {
|
||||||
|
for (int i = m_ActiveCameraShakes.Count - 1; i >= 0; i--) {
|
||||||
|
CameraShakeFeedback feedback = m_ActiveCameraShakes[i];
|
||||||
|
feedback.timer -= deltaTime;
|
||||||
|
|
||||||
|
if (feedback.timer <= 0.0f) {
|
||||||
|
m_ActiveCameraShakes.RemoveAt(i);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_ActiveCameraShakes[i] = feedback;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnActorEventClient(ActorEvent actorEvent) {
|
||||||
|
FeedbacksManagerActorEvents feedbackEvent = (FeedbacksManagerActorEvents)actorEvent.EventID;
|
||||||
|
|
||||||
|
switch (feedbackEvent) {
|
||||||
|
|
||||||
|
case FeedbacksManagerActorEvents.CameraShake: {
|
||||||
|
FeedbacksCameraShakeEvent ev = new FeedbacksCameraShakeEvent();
|
||||||
|
DataSerializationUtils.Deserialize(actorEvent.Data, ref ev);
|
||||||
|
|
||||||
|
if (ev.Feedback.timer > 0.0f) {
|
||||||
|
m_ActiveCameraShakes.Add(ev.Feedback);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
enum FeedbacksManagerActorEvents : byte {
|
||||||
|
None = 0x00,
|
||||||
|
CameraShake = 0x01,
|
||||||
|
}
|
||||||
|
|
||||||
|
struct FeedbacksCameraShakeEvent : IActorData {
|
||||||
|
public CameraShakeFeedback Feedback;
|
||||||
|
|
||||||
|
public int GetMaxBytes() {
|
||||||
|
return CameraShakeFeedback.GetMaxBytes();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Serialize(NetworkBufferWriter writer) {
|
||||||
|
writer.Write(Feedback.center);
|
||||||
|
writer.Write(Feedback.radius);
|
||||||
|
writer.Write(Feedback.intensity);
|
||||||
|
writer.Write(Feedback.timer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Deserialize(NetworkBufferReader reader) {
|
||||||
|
reader.Read(out Feedback.center);
|
||||||
|
reader.Read(out Feedback.radius);
|
||||||
|
reader.Read(out Feedback.intensity);
|
||||||
|
reader.Read(out Feedback.timer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c66663d8df214ee9b21785208a782cc0
|
||||||
|
timeCreated: 1753936932
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
using RebootKit.Engine.Foundation;
|
|
||||||
using RebootKit.Engine.Simulation;
|
|
||||||
using RebootReality.jelycho.Player;
|
|
||||||
|
|
||||||
namespace RebootReality.jelycho.Items {
|
|
||||||
public class EggChargeAction : IItemChargeAction {
|
|
||||||
static readonly Logger s_Logger = new Logger(nameof(EggChargeAction));
|
|
||||||
|
|
||||||
public bool OnChargeStart(Actor user, ItemActor itemActor) {
|
|
||||||
PlayerActor player = user as PlayerActor;
|
|
||||||
if (player == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (itemActor.Config.itemType != ItemType.Egg) {
|
|
||||||
s_Logger.Error($"Item {itemActor.name} is not an egg, cannot charge.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
s_Logger.Info($"Begin charging egg: {itemActor.name} by {user.name}");
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnChargeUpdate(Actor user, ItemActor itemActor, float chargeProgress) {
|
|
||||||
PlayerActor player = user as PlayerActor;
|
|
||||||
if (player == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Here you can implement the logic for updating the charge progress, e.g. visual effects
|
|
||||||
s_Logger.Info($"Charging egg: {itemActor.name} by {user.name}, progress: {chargeProgress * 100}%");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnChargeEnd(Actor user, ItemActor itemActor, float chargeProgress) {
|
|
||||||
PlayerActor player = user as PlayerActor;
|
|
||||||
if (player == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
s_Logger.Info($"Finished charging egg: {itemActor.name} by {user.name}, final progress: {chargeProgress * 100}%");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnChargeCancel(Actor user, ItemActor itemActor) {
|
|
||||||
PlayerActor player = user as PlayerActor;
|
|
||||||
if (player == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
s_Logger.Info($"Charging egg: {itemActor.name} by {user.name} was cancelled.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
20
Assets/jelycho/Code/Items/HeavySlashAttackChargeAttack.cs
Normal file
20
Assets/jelycho/Code/Items/HeavySlashAttackChargeAttack.cs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
using RebootKit.Engine.Simulation;
|
||||||
|
|
||||||
|
namespace RebootReality.jelycho.Items {
|
||||||
|
public class HeavySlashAttackChargeAttack : IItemChargeAction {
|
||||||
|
public bool OnChargeStart(Actor user, ItemActor itemActor) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool OnChargeUpdate(Actor user, ItemActor itemActor, float chargeProgress) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool OnChargeEnd(Actor user, ItemActor itemActor, float chargeProgress) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnChargeCancel(Actor user, ItemActor itemActor) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 281ce87013154d44872e7b170e4d375c
|
||||||
|
timeCreated: 1753934000
|
||||||
@@ -4,29 +4,41 @@ using RebootKit.Engine.Simulation;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace RebootReality.jelycho.Items {
|
namespace RebootReality.jelycho.Items {
|
||||||
public enum ItemType {
|
|
||||||
Neutral = 0,
|
|
||||||
Egg = 1,
|
|
||||||
Sword = 2,
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface IItemChargeAction {
|
public interface IItemChargeAction {
|
||||||
bool OnChargeStart(Actor user, ItemActor itemActor);
|
bool OnChargeStart(Actor user, ItemActor itemActor);
|
||||||
void OnChargeUpdate(Actor user, ItemActor itemActor, float chargeProgress);
|
bool OnChargeUpdate(Actor user, ItemActor itemActor, float chargeProgress);
|
||||||
void OnChargeEnd(Actor user, ItemActor itemActor, float chargeProgress);
|
bool OnChargeEnd(Actor user, ItemActor itemActor, float chargeProgress);
|
||||||
void OnChargeCancel(Actor user, ItemActor itemActor);
|
void OnChargeCancel(Actor user, ItemActor itemActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface IItemQuickAttackAction {
|
||||||
|
void Attack(Actor attacker, ItemActor itemActor);
|
||||||
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
public class ItemConfig {
|
public class ItemConfig {
|
||||||
public ItemType itemType = ItemType.Neutral;
|
|
||||||
public Sprite icon;
|
public Sprite icon;
|
||||||
|
|
||||||
[MaxLength(32)] public string characterEquippedMountSlotName = "hand_right";
|
[MaxLength(32)] public string characterEquippedMountSlotName = "hand_right";
|
||||||
|
|
||||||
|
[Header("Character Animations Names")]
|
||||||
|
public string idleAnimation;
|
||||||
|
public string chargingAnimation;
|
||||||
|
public string chargedUseAnimation;
|
||||||
|
|
||||||
|
public string[] quickAttacksAnimations;
|
||||||
|
public string blockAnimation;
|
||||||
|
|
||||||
|
[Header("Quick Attack")]
|
||||||
|
public bool canQuickAttack = false;
|
||||||
|
[SerializeReference] public IItemQuickAttackAction quickAttackAction;
|
||||||
|
|
||||||
|
[Header("Block")]
|
||||||
|
public bool canBlock = false;
|
||||||
|
|
||||||
[Header("Chargeable")]
|
[Header("Chargeable")]
|
||||||
public bool isChargeable = false;
|
public bool isChargeable = false;
|
||||||
public float minChargeDuration = 0.1f;
|
public float minChargeDuration = 0.5f;
|
||||||
public float maxChargeDuration = 1.0f;
|
public float maxChargeDuration = 1.0f;
|
||||||
public float chargeCooldown = 1.0f;
|
public float chargeCooldown = 1.0f;
|
||||||
[SerializeReference] public IItemChargeAction chargeAction;
|
[SerializeReference] public IItemChargeAction chargeAction;
|
||||||
|
|||||||
31
Assets/jelycho/Code/Items/ItemQuickAttackAction.cs
Normal file
31
Assets/jelycho/Code/Items/ItemQuickAttackAction.cs
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
using RebootKit.Engine.Simulation;
|
||||||
|
using RebootReality.jelycho.Enemies;
|
||||||
|
using RebootReality.jelycho.Player;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace RebootReality.jelycho.Items {
|
||||||
|
public class ItemQuickAttackAction : IItemQuickAttackAction {
|
||||||
|
static readonly Collider[] s_CollidersBuffer = new Collider[512];
|
||||||
|
|
||||||
|
public void Attack(Actor attacker, ItemActor itemActor) {
|
||||||
|
PlayerActor playerActor = attacker as PlayerActor;
|
||||||
|
if (playerActor == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector3 attackPosition = playerActor.GetAttackPosition();
|
||||||
|
|
||||||
|
int count = Physics.OverlapSphereNonAlloc(attackPosition, 3.0f, s_CollidersBuffer);
|
||||||
|
for (int i = 0; i < count; ++i) {
|
||||||
|
if (s_CollidersBuffer[i].TryGetComponent(out IKillable killable)) {
|
||||||
|
Actor killableActor = killable as Actor;
|
||||||
|
if (killableActor == attacker) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
playerActor.DealDamage(killable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
3
Assets/jelycho/Code/Items/ItemQuickAttackAction.cs.meta
Normal file
3
Assets/jelycho/Code/Items/ItemQuickAttackAction.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 05afb452f53145848b90465de1a40e30
|
||||||
|
timeCreated: 1753943558
|
||||||
52
Assets/jelycho/Code/Items/SpawnBeaconChargeAction.cs
Normal file
52
Assets/jelycho/Code/Items/SpawnBeaconChargeAction.cs
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
using RebootKit.Engine.Main;
|
||||||
|
using RebootKit.Engine.Simulation;
|
||||||
|
using RebootReality.jelycho.Player;
|
||||||
|
using UnityEngine;
|
||||||
|
using Logger = RebootKit.Engine.Foundation.Logger;
|
||||||
|
|
||||||
|
namespace RebootReality.jelycho.Items {
|
||||||
|
public class SpawnBeaconChargeAction : IItemChargeAction {
|
||||||
|
static readonly Logger s_Logger = new Logger(nameof(SpawnBeaconChargeAction));
|
||||||
|
|
||||||
|
public bool OnChargeStart(Actor user, ItemActor itemActor) {
|
||||||
|
PlayerActor player = user as PlayerActor;
|
||||||
|
if (player == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool OnChargeUpdate(Actor user, ItemActor itemActor, float chargeProgress) {
|
||||||
|
PlayerActor player = user as PlayerActor;
|
||||||
|
if (player == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool OnChargeEnd(Actor user, ItemActor itemActor, float chargeProgress) {
|
||||||
|
PlayerActor player = user as PlayerActor;
|
||||||
|
if (player == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (RR.World.Context is WorldContext worldContext) {
|
||||||
|
if (player.TryGetBeaconPosition(out Vector3 beaconPosition)) {
|
||||||
|
worldContext.BaseManager.TrySpawnBeacon(beaconPosition);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnChargeCancel(Actor user, ItemActor itemActor) {
|
||||||
|
PlayerActor player = user as PlayerActor;
|
||||||
|
if (player == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using RebootKit.Engine.Foundation;
|
using RebootKit.Engine.Foundation;
|
||||||
|
using RebootKit.Engine.Main;
|
||||||
using RebootKit.Engine.Simulation.Sensors;
|
using RebootKit.Engine.Simulation.Sensors;
|
||||||
using RebootReality.jelycho.Main;
|
using RebootReality.jelycho.Main;
|
||||||
using Unity.Cinemachine;
|
using Unity.Cinemachine;
|
||||||
@@ -10,7 +11,7 @@ namespace RebootReality.jelycho.Player {
|
|||||||
[AddComponentMenu(GameConsts.k_AddComponentMenu + "Player/First Person Camera")]
|
[AddComponentMenu(GameConsts.k_AddComponentMenu + "Player/First Person Camera")]
|
||||||
public class FPPCamera : MonoBehaviour {
|
public class FPPCamera : MonoBehaviour {
|
||||||
[ConfigVar("fpp.camera.fov", 60.0f, "Field of view for the first person camera.")]
|
[ConfigVar("fpp.camera.fov", 60.0f, "Field of view for the first person camera.")]
|
||||||
static ConfigVar s_cameraFOV;
|
static ConfigVar s_CameraFOV;
|
||||||
|
|
||||||
[Header("Base")]
|
[Header("Base")]
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
@@ -22,10 +23,17 @@ namespace RebootReality.jelycho.Player {
|
|||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public CinemachineCamera Camera { get; private set; }
|
public CinemachineCamera Camera { get; private set; }
|
||||||
|
|
||||||
CinemachineBasicMultiChannelPerlin m_BobbingNoiseComponent;
|
CinemachineBasicMultiChannelPerlin m_NoiseComponent;
|
||||||
|
|
||||||
|
[SerializeField] SignalSourceAsset m_BobbingNoiseSettings;
|
||||||
[SerializeField] float m_BobbingFrequency = 0.5f;
|
[SerializeField] float m_BobbingFrequency = 0.5f;
|
||||||
[SerializeField] float m_BobbingAmplitude = 0.75f;
|
[SerializeField] float m_BobbingAmplitude = 0.75f;
|
||||||
|
|
||||||
|
float m_BobbingIntensity = 0.0f;
|
||||||
|
|
||||||
|
[SerializeField] SignalSourceAsset m_ShakeNoiseSettings;
|
||||||
|
[SerializeField] float m_ShakeFrequency = 1.0f;
|
||||||
|
[SerializeField] float m_ShakeAmplitude = 1.0f;
|
||||||
|
|
||||||
[Header("Picking")]
|
[Header("Picking")]
|
||||||
[SerializeField] float m_PickDistance = 5.0f;
|
[SerializeField] float m_PickDistance = 5.0f;
|
||||||
@@ -46,16 +54,30 @@ namespace RebootReality.jelycho.Player {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Awake() {
|
void Awake() {
|
||||||
m_BobbingNoiseComponent =
|
m_NoiseComponent =
|
||||||
Camera.GetCinemachineComponent(CinemachineCore.Stage.Noise) as CinemachineBasicMultiChannelPerlin;
|
Camera.GetCinemachineComponent(CinemachineCore.Stage.Noise) as CinemachineBasicMultiChannelPerlin;
|
||||||
Assert.IsNotNull(m_BobbingNoiseComponent);
|
Assert.IsNotNull(m_NoiseComponent);
|
||||||
|
|
||||||
SetBobbing(0.0f);
|
SetBobbing(0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Tick() {
|
public void Tick() {
|
||||||
Camera.Lens.FieldOfView = s_cameraFOV.FloatValue;
|
Camera.Lens.FieldOfView = s_CameraFOV.FloatValue;
|
||||||
// Camera.transform.localRotation = Quaternion.Euler(Pitch, 0f, 0f);
|
// Camera.transform.localRotation = Quaternion.Euler(Pitch, 0f, 0f);
|
||||||
|
|
||||||
|
if (RR.World.Context is WorldContext worldContext) {
|
||||||
|
float shakeIntensity = worldContext.FeedbacksManager.GetShakeIntensityForPosition(transform.position);
|
||||||
|
|
||||||
|
if (shakeIntensity > 0.0f) {
|
||||||
|
m_NoiseComponent.NoiseProfile = m_ShakeNoiseSettings as NoiseSettings;
|
||||||
|
m_NoiseComponent.AmplitudeGain = m_ShakeAmplitude * shakeIntensity;
|
||||||
|
m_NoiseComponent.FrequencyGain = m_ShakeFrequency * shakeIntensity;
|
||||||
|
} else {
|
||||||
|
m_NoiseComponent.NoiseProfile = m_BobbingNoiseSettings as NoiseSettings;
|
||||||
|
m_NoiseComponent.AmplitudeGain = m_BobbingAmplitude * m_BobbingIntensity;
|
||||||
|
m_NoiseComponent.FrequencyGain = m_BobbingFrequency * m_BobbingIntensity;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Rotate(float x, float y) {
|
public void Rotate(float x, float y) {
|
||||||
@@ -73,8 +95,7 @@ namespace RebootReality.jelycho.Player {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void SetBobbing(float t) {
|
public void SetBobbing(float t) {
|
||||||
m_BobbingNoiseComponent.AmplitudeGain = m_BobbingAmplitude * t;
|
m_BobbingIntensity = t;
|
||||||
m_BobbingNoiseComponent.FrequencyGain = m_BobbingFrequency * t;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,7 @@ using RebootKit.Engine.Foundation;
|
|||||||
using RebootKit.Engine.Main;
|
using RebootKit.Engine.Main;
|
||||||
using RebootKit.Engine.Network;
|
using RebootKit.Engine.Network;
|
||||||
using RebootKit.Engine.Simulation;
|
using RebootKit.Engine.Simulation;
|
||||||
|
using RebootReality.jelycho.Enemies;
|
||||||
using RebootReality.jelycho.Items;
|
using RebootReality.jelycho.Items;
|
||||||
using Unity.Collections;
|
using Unity.Collections;
|
||||||
using Unity.Mathematics;
|
using Unity.Mathematics;
|
||||||
@@ -12,16 +13,6 @@ using UnityEngine;
|
|||||||
using Logger = RebootKit.Engine.Foundation.Logger;
|
using Logger = RebootKit.Engine.Foundation.Logger;
|
||||||
|
|
||||||
namespace RebootReality.jelycho.Player {
|
namespace RebootReality.jelycho.Player {
|
||||||
[Serializable]
|
|
||||||
struct PlayerItemTypeHandsAnimationsConfig {
|
|
||||||
public ItemType itemType;
|
|
||||||
|
|
||||||
// @TODO: Cache hashes for state names
|
|
||||||
public string idle;
|
|
||||||
public string charging;
|
|
||||||
public string chargedUse;
|
|
||||||
}
|
|
||||||
|
|
||||||
public class PlayerActor : Actor {
|
public class PlayerActor : Actor {
|
||||||
static readonly Logger s_Logger = new Logger(nameof(PlayerActor));
|
static readonly Logger s_Logger = new Logger(nameof(PlayerActor));
|
||||||
|
|
||||||
@@ -62,15 +53,8 @@ namespace RebootReality.jelycho.Player {
|
|||||||
[Header("Animations")]
|
[Header("Animations")]
|
||||||
[SerializeField] int m_HandsLayerIndex;
|
[SerializeField] int m_HandsLayerIndex;
|
||||||
|
|
||||||
[SerializeField] PlayerItemTypeHandsAnimationsConfig[] m_ItemTypeHandsAnimations;
|
|
||||||
[SerializeField] PlayerItemTypeHandsAnimationsConfig m_DefaultItemHandsAnimations;
|
|
||||||
[SerializeField] string m_HandsIdleStateName = "Hands Locomotion";
|
[SerializeField] string m_HandsIdleStateName = "Hands Locomotion";
|
||||||
|
|
||||||
[Header("Dragging")]
|
|
||||||
[SerializeField] Transform m_DragGutStartPosition;
|
|
||||||
[SerializeField] PhysicsObjectDragger m_PhysicsDragger;
|
|
||||||
[SerializeField] FloatRange m_DragDistanceRange = new FloatRange(1.0f, 5.0f);
|
|
||||||
|
|
||||||
[Header("Beacon location picking")]
|
[Header("Beacon location picking")]
|
||||||
[SerializeField] LayerMask m_BeaconPlacementLayerMask = 0;
|
[SerializeField] LayerMask m_BeaconPlacementLayerMask = 0;
|
||||||
[SerializeField] float m_BeaconPlacementMaxDistance = 15.0f;
|
[SerializeField] float m_BeaconPlacementMaxDistance = 15.0f;
|
||||||
@@ -95,9 +79,14 @@ namespace RebootReality.jelycho.Player {
|
|||||||
|
|
||||||
ItemActor m_EquippedItem;
|
ItemActor m_EquippedItem;
|
||||||
|
|
||||||
|
[SerializeField] float m_StartChargeDelay = 0.15f;
|
||||||
|
|
||||||
bool m_IsCharging;
|
bool m_IsCharging;
|
||||||
float m_ChargeTimer;
|
float m_ChargeTimer;
|
||||||
|
|
||||||
|
int m_QuickAttackComboCounter;
|
||||||
|
float m_QuickAttackComboTimer;
|
||||||
|
|
||||||
public float3 LookDirection {
|
public float3 LookDirection {
|
||||||
get {
|
get {
|
||||||
float pitchRad = math.radians(-m_Camera.Pitch);
|
float pitchRad = math.radians(-m_Camera.Pitch);
|
||||||
@@ -178,27 +167,6 @@ namespace RebootReality.jelycho.Player {
|
|||||||
m_Locomotion.SetWishDirection(direction);
|
m_Locomotion.SetWishDirection(direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartDrag() {
|
|
||||||
if (!m_IsSetupAsOwner) {
|
|
||||||
s_Logger.Error("Cannot start dragging when not set up as owner.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
GameObject pickedGameObject = m_Camera.Sensor.Sense();
|
|
||||||
if (pickedGameObject != null && pickedGameObject.TryGetComponent(out Rigidbody rigidbody)) {
|
|
||||||
m_PhysicsDragger.Grab(rigidbody);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void StopDrag() {
|
|
||||||
if (!m_IsSetupAsOwner) {
|
|
||||||
s_Logger.Error("Cannot stop dragging when not set up as owner.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_PhysicsDragger.Drop();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void DropItem() {
|
public void DropItem() {
|
||||||
if (!m_IsSetupAsOwner) {
|
if (!m_IsSetupAsOwner) {
|
||||||
s_Logger.Error("Cannot drop item when not set up as owner.");
|
s_Logger.Error("Cannot drop item when not set up as owner.");
|
||||||
@@ -213,42 +181,6 @@ namespace RebootReality.jelycho.Player {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerItemTypeHandsAnimationsConfig GetHandsAnimationsConfig(ItemType itemType) {
|
|
||||||
foreach (PlayerItemTypeHandsAnimationsConfig config in m_ItemTypeHandsAnimations) {
|
|
||||||
if (config.itemType == itemType) {
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return m_DefaultItemHandsAnimations;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetHandsIdleAnimation() {
|
|
||||||
if (m_EquippedItem != null) {
|
|
||||||
PlayerItemTypeHandsAnimationsConfig animationsConfig =
|
|
||||||
GetHandsAnimationsConfig(m_EquippedItem.Config.itemType);
|
|
||||||
m_Animator.CrossFade(animationsConfig.idle, 0.0f, m_HandsLayerIndex);
|
|
||||||
} else {
|
|
||||||
m_Animator.CrossFade(m_HandsIdleStateName, 0.0f, m_HandsLayerIndex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetChargingAnimation() {
|
|
||||||
if (m_EquippedItem != null) {
|
|
||||||
PlayerItemTypeHandsAnimationsConfig animationsConfig =
|
|
||||||
GetHandsAnimationsConfig(m_EquippedItem.Config.itemType);
|
|
||||||
m_Animator.CrossFade(animationsConfig.charging, 0.0f, m_HandsLayerIndex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetChargedUseAnimation() {
|
|
||||||
if (m_EquippedItem != null) {
|
|
||||||
PlayerItemTypeHandsAnimationsConfig animationsConfig =
|
|
||||||
GetHandsAnimationsConfig(m_EquippedItem.Config.itemType);
|
|
||||||
m_Animator.CrossFade(animationsConfig.chargedUse, 0.0f, m_HandsLayerIndex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void BeginPrimaryAction() {
|
public void BeginPrimaryAction() {
|
||||||
if (!m_IsSetupAsOwner) {
|
if (!m_IsSetupAsOwner) {
|
||||||
s_Logger.Error("Cannot begin primary action when not set up as owner.");
|
s_Logger.Error("Cannot begin primary action when not set up as owner.");
|
||||||
@@ -259,13 +191,42 @@ namespace RebootReality.jelycho.Player {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_EquippedItem.Config.chargeAction != null && m_EquippedItem.Config.isChargeable) {
|
m_IsCharging = false;
|
||||||
if (m_EquippedItem.Config.chargeAction.OnChargeStart(this, m_EquippedItem)) {
|
m_ChargeTimer = 0.0f;
|
||||||
m_IsCharging = true;
|
|
||||||
m_ChargeTimer = 0.0f;
|
if (m_QuickAttackComboTimer <= 0.0f) {
|
||||||
SetChargingAnimation();
|
m_QuickAttackComboCounter = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void HoldingPrimaryAction() {
|
||||||
|
if (!m_IsSetupAsOwner) {
|
||||||
|
s_Logger.Error("Cannot begin primary action when not set up as owner.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_EquippedItem == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemConfig itemConfig = m_EquippedItem.Config;
|
||||||
|
|
||||||
|
if (!m_IsCharging && itemConfig.isChargeable && m_EquippedItem.Config.chargeAction != null ) {
|
||||||
|
m_ChargeTimer += Time.deltaTime;
|
||||||
|
|
||||||
|
if (m_ChargeTimer >= m_StartChargeDelay) {
|
||||||
|
if (itemConfig.chargeAction.OnChargeStart(this, m_EquippedItem)) {
|
||||||
|
SetChargingAnimation();
|
||||||
|
m_IsCharging = true;
|
||||||
|
m_ChargeTimer = 0.0f;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_IsCharging) {
|
||||||
|
m_ChargeTimer += Time.deltaTime;
|
||||||
|
itemConfig.chargeAction.OnChargeUpdate(this, m_EquippedItem, GetChargeProgress());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
float GetChargeProgress() {
|
float GetChargeProgress() {
|
||||||
@@ -285,6 +246,10 @@ namespace RebootReality.jelycho.Player {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_EquippedItem == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_IsCharging) {
|
if (m_IsCharging) {
|
||||||
ItemConfig itemConfig = m_EquippedItem.Config;
|
ItemConfig itemConfig = m_EquippedItem.Config;
|
||||||
|
|
||||||
@@ -298,6 +263,14 @@ namespace RebootReality.jelycho.Player {
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_IsCharging = false;
|
m_IsCharging = false;
|
||||||
|
} else if (m_EquippedItem.Config.canQuickAttack) {
|
||||||
|
PlayQuickAttackAnimation(m_QuickAttackComboCounter);
|
||||||
|
m_QuickAttackComboCounter += 1;
|
||||||
|
m_QuickAttackComboTimer = 2.0f;
|
||||||
|
|
||||||
|
if (m_EquippedItem.Config.quickAttackAction != null) {
|
||||||
|
m_EquippedItem.Config.quickAttackAction.Attack(this, m_EquippedItem);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -326,9 +299,68 @@ namespace RebootReality.jelycho.Player {
|
|||||||
Pickup(itemActor);
|
Pickup(itemActor);
|
||||||
} else if (m_TargetInteractable.Value is not null) {
|
} else if (m_TargetInteractable.Value is not null) {
|
||||||
m_TargetInteractable.Value.Interact();
|
m_TargetInteractable.Value.Interact();
|
||||||
// SetAnimatorTriggerRpc(AnimatorParamHashes.Throw);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// @MARK: Hands animations
|
||||||
|
//
|
||||||
|
void PlayHandsAnimation(string animationName) {
|
||||||
|
int hash = Animator.StringToHash(animationName);
|
||||||
|
|
||||||
|
if (!m_Animator.HasState(m_HandsLayerIndex, hash)) {
|
||||||
|
s_Logger.Error($"Animator does not have state with name {animationName}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
PlayHandsAnimation(hash);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PlayHandsAnimation(int animationHash) {
|
||||||
|
m_Animator.CrossFade(animationHash, 0.0f, m_HandsLayerIndex);
|
||||||
|
|
||||||
|
if (RR.IsServer()) {
|
||||||
|
PlayerPlayHandsAnimationEvent handsAnimationEvent = new PlayerPlayHandsAnimationEvent {
|
||||||
|
AnimationHash = animationHash
|
||||||
|
};
|
||||||
|
SendActorEvent((byte)PlayerActorEvents.PlayHandsAnimation, ref handsAnimationEvent);
|
||||||
|
} else {
|
||||||
|
PlayerActorRequestHandsAnimationCommand handsAnimationCommand =
|
||||||
|
new PlayerActorRequestHandsAnimationCommand {
|
||||||
|
AnimationHash = animationHash
|
||||||
|
};
|
||||||
|
SendActorCommand((byte) PlayerActorCommands.RequestHandsAnimation, ref handsAnimationCommand);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetHandsIdleAnimation() {
|
||||||
|
if (m_EquippedItem != null) {
|
||||||
|
PlayHandsAnimation(m_EquippedItem.Config.idleAnimation);
|
||||||
|
} else {
|
||||||
|
PlayHandsAnimation(m_HandsIdleStateName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetChargingAnimation() {
|
||||||
|
if (m_EquippedItem != null) {
|
||||||
|
PlayHandsAnimation(m_EquippedItem.Config.chargingAnimation);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetChargedUseAnimation() {
|
||||||
|
if (m_EquippedItem != null) {
|
||||||
|
PlayHandsAnimation(m_EquippedItem.Config.chargedUseAnimation);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void PlayQuickAttackAnimation(int combo) {
|
||||||
|
if (m_EquippedItem == null || m_EquippedItem.Config.quickAttacksAnimations.Length == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
string animationName = m_EquippedItem.Config.quickAttacksAnimations[combo % m_EquippedItem.Config.quickAttacksAnimations.Length];
|
||||||
|
PlayHandsAnimation(animationName);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// @MARK: Actor
|
// @MARK: Actor
|
||||||
@@ -347,10 +379,9 @@ namespace RebootReality.jelycho.Player {
|
|||||||
TickCamera();
|
TickCamera();
|
||||||
UpdateAnimator(m_Locomotion.Velocity);
|
UpdateAnimator(m_Locomotion.Velocity);
|
||||||
SenseInteractable();
|
SenseInteractable();
|
||||||
|
|
||||||
if (m_IsCharging) {
|
if (m_QuickAttackComboTimer > 0.0f) {
|
||||||
m_ChargeTimer += deltaTime;
|
m_QuickAttackComboTimer -= deltaTime;
|
||||||
m_EquippedItem.Config.chargeAction.OnChargeUpdate(this, m_EquippedItem, GetChargeProgress());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_SyncRemoteStateTimer -= deltaTime;
|
m_SyncRemoteStateTimer -= deltaTime;
|
||||||
@@ -429,6 +460,39 @@ namespace RebootReality.jelycho.Player {
|
|||||||
Inventory.TryDrop(command.InventorySlotIndex, out _);
|
Inventory.TryDrop(command.InventorySlotIndex, out _);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case PlayerActorCommands.RequestHandsAnimation: {
|
||||||
|
PlayerActorRequestHandsAnimationCommand command = new PlayerActorRequestHandsAnimationCommand();
|
||||||
|
DataSerializationUtils.Deserialize(actorCommand.Data, ref command);
|
||||||
|
|
||||||
|
if (m_Animator.HasState(m_HandsLayerIndex, command.AnimationHash)) {
|
||||||
|
PlayerPlayHandsAnimationEvent handsAnimationEvent = new PlayerPlayHandsAnimationEvent {
|
||||||
|
AnimationHash = command.AnimationHash
|
||||||
|
};
|
||||||
|
SendActorEvent((byte)PlayerActorEvents.PlayHandsAnimation, ref handsAnimationEvent);
|
||||||
|
} else {
|
||||||
|
s_Logger.Error($"Animator does not have state with hash {command.AnimationHash}");
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case PlayerActorCommands.DealDamage: {
|
||||||
|
PlayerActorDealDamageCommand dealDamageCommand = new PlayerActorDealDamageCommand();
|
||||||
|
DataSerializationUtils.Deserialize(actorCommand.Data, ref dealDamageCommand);
|
||||||
|
|
||||||
|
Actor targetActor = RR.FindSpawnedActor(dealDamageCommand.TargetActorID);
|
||||||
|
if (targetActor == null) {
|
||||||
|
s_Logger.Error($"Target actor with ID {dealDamageCommand.TargetActorID} not found.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (targetActor is IKillable killable) {
|
||||||
|
killable.OnHit(this, 100.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -489,6 +553,22 @@ namespace RebootReality.jelycho.Player {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case PlayerActorEvents.PlayHandsAnimation: {
|
||||||
|
if (RR.IsServer()) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
PlayerPlayHandsAnimationEvent handsAnimationEvent = new PlayerPlayHandsAnimationEvent();
|
||||||
|
DataSerializationUtils.Deserialize(actorEvent.Data, ref handsAnimationEvent);
|
||||||
|
|
||||||
|
if (m_Animator.HasState(m_HandsLayerIndex, handsAnimationEvent.AnimationHash)) {
|
||||||
|
m_Animator.CrossFade(handsAnimationEvent.AnimationHash, 0.0f, m_HandsLayerIndex);
|
||||||
|
} else {
|
||||||
|
s_Logger.Error($"Animator does not have state with hash {handsAnimationEvent.AnimationHash}");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
s_Logger.Error("Invalid actor event received: " + actorEvent.EventID);
|
s_Logger.Error("Invalid actor event received: " + actorEvent.EventID);
|
||||||
break;
|
break;
|
||||||
@@ -543,6 +623,17 @@ namespace RebootReality.jelycho.Player {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void DealDamage(IKillable target) {
|
||||||
|
if (target is Actor actor) {
|
||||||
|
PlayerActorDealDamageCommand dealDamageCommand = new PlayerActorDealDamageCommand {
|
||||||
|
TargetActorID = actor.ActorID
|
||||||
|
};
|
||||||
|
SendActorCommand((byte)PlayerActorCommands.DealDamage, ref dealDamageCommand);
|
||||||
|
} else {
|
||||||
|
s_Logger.Error($"Player can only deal damage to other actors!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// @MARK: Remote
|
// @MARK: Remote
|
||||||
//
|
//
|
||||||
@@ -640,7 +731,7 @@ namespace RebootReality.jelycho.Player {
|
|||||||
|
|
||||||
if (m_EquippedItem != null) {
|
if (m_EquippedItem != null) {
|
||||||
m_EquippedItem.SetHidden(false);
|
m_EquippedItem.SetHidden(false);
|
||||||
m_EquippedItem.MountTo(this, "hand_right");
|
m_EquippedItem.MountTo(this, m_EquippedItem.Config.characterEquippedMountSlotName);
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerActorPrimaryEquippedItemChangedEvent itemChangedEvent =
|
PlayerActorPrimaryEquippedItemChangedEvent itemChangedEvent =
|
||||||
@@ -709,7 +800,7 @@ namespace RebootReality.jelycho.Player {
|
|||||||
//
|
//
|
||||||
// @MARK: Sensors
|
// @MARK: Sensors
|
||||||
//
|
//
|
||||||
bool TryGetBeaconPosition(out Vector3 position) {
|
public bool TryGetBeaconPosition(out Vector3 position) {
|
||||||
Ray ray = new Ray(m_Camera.Camera.transform.position, m_Camera.Camera.transform.forward);
|
Ray ray = new Ray(m_Camera.Camera.transform.position, m_Camera.Camera.transform.forward);
|
||||||
if (Physics.Raycast(ray, out RaycastHit hit, m_BeaconPlacementMaxDistance, m_BeaconPlacementLayerMask) &&
|
if (Physics.Raycast(ray, out RaycastHit hit, m_BeaconPlacementMaxDistance, m_BeaconPlacementLayerMask) &&
|
||||||
Vector3.Dot(hit.normal, Vector3.up) >= m_NormalDotUpThreshold) {
|
Vector3.Dot(hit.normal, Vector3.up) >= m_NormalDotUpThreshold) {
|
||||||
@@ -721,6 +812,10 @@ namespace RebootReality.jelycho.Player {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Vector3 GetAttackPosition() {
|
||||||
|
return m_Camera.transform.position + m_Camera.transform.forward * 1.5f;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// @MARK: Inventory
|
// @MARK: Inventory
|
||||||
//
|
//
|
||||||
@@ -797,12 +892,6 @@ namespace RebootReality.jelycho.Player {
|
|||||||
public static readonly int VelocityRightNormalized = Animator.StringToHash("VelocityRightNormalized");
|
public static readonly int VelocityRightNormalized = Animator.StringToHash("VelocityRightNormalized");
|
||||||
public static readonly int TurnVelocity = Animator.StringToHash("TurnVelocity");
|
public static readonly int TurnVelocity = Animator.StringToHash("TurnVelocity");
|
||||||
public static readonly int IsGrounded = Animator.StringToHash("IsGrounded");
|
public static readonly int IsGrounded = Animator.StringToHash("IsGrounded");
|
||||||
|
|
||||||
public static readonly int Attack = Animator.StringToHash("Attack");
|
|
||||||
public static readonly int Block = Animator.StringToHash("Block");
|
|
||||||
public static readonly int Throw = Animator.StringToHash("Throw");
|
|
||||||
|
|
||||||
public static readonly int Holding = Animator.StringToHash("Holding");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateAnimator(Vector3 velocity) {
|
void UpdateAnimator(Vector3 velocity) {
|
||||||
@@ -822,7 +911,6 @@ namespace RebootReality.jelycho.Player {
|
|||||||
m_Animator.SetFloat(AnimatorParamHashes.TurnVelocity, turnVelocity);
|
m_Animator.SetFloat(AnimatorParamHashes.TurnVelocity, turnVelocity);
|
||||||
|
|
||||||
m_Animator.SetBool(AnimatorParamHashes.IsGrounded, m_Locomotion.IsGrounded);
|
m_Animator.SetBool(AnimatorParamHashes.IsGrounded, m_Locomotion.IsGrounded);
|
||||||
m_Animator.SetInteger(AnimatorParamHashes.Holding, 1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -875,6 +963,8 @@ namespace RebootReality.jelycho.Player {
|
|||||||
DropItem = 0x03,
|
DropItem = 0x03,
|
||||||
EquipItem = 0x04,
|
EquipItem = 0x04,
|
||||||
SelectItemSlot = 0x05,
|
SelectItemSlot = 0x05,
|
||||||
|
RequestHandsAnimation = 0x06,
|
||||||
|
DealDamage = 0x07
|
||||||
}
|
}
|
||||||
|
|
||||||
struct PlayerActorPickupItemCommand : IActorData {
|
struct PlayerActorPickupItemCommand : IActorData {
|
||||||
@@ -940,6 +1030,38 @@ namespace RebootReality.jelycho.Player {
|
|||||||
return sizeof(int); // SlotIndex
|
return sizeof(int); // SlotIndex
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct PlayerActorRequestHandsAnimationCommand : IActorData {
|
||||||
|
public int AnimationHash;
|
||||||
|
|
||||||
|
public void Serialize(NetworkBufferWriter writer) {
|
||||||
|
writer.Write(AnimationHash);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Deserialize(NetworkBufferReader reader) {
|
||||||
|
reader.Read(out AnimationHash);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetMaxBytes() {
|
||||||
|
return sizeof(int);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct PlayerActorDealDamageCommand : IActorData {
|
||||||
|
public ushort TargetActorID;
|
||||||
|
|
||||||
|
public int GetMaxBytes() {
|
||||||
|
return sizeof(ushort);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Serialize(NetworkBufferWriter writer) {
|
||||||
|
writer.Write(TargetActorID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Deserialize(NetworkBufferReader reader) {
|
||||||
|
reader.Read(out TargetActorID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// @MARK: Player Actor Events
|
// @MARK: Player Actor Events
|
||||||
enum PlayerActorEvents : byte {
|
enum PlayerActorEvents : byte {
|
||||||
@@ -947,6 +1069,7 @@ namespace RebootReality.jelycho.Player {
|
|||||||
PrimaryEquippedItemChanged = 0x01,
|
PrimaryEquippedItemChanged = 0x01,
|
||||||
UpdatedRemoteState = 0x02,
|
UpdatedRemoteState = 0x02,
|
||||||
UpdateInventory = 0x03,
|
UpdateInventory = 0x03,
|
||||||
|
PlayHandsAnimation = 0x04,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct PlayerActorPrimaryEquippedItemChangedEvent : IActorData {
|
struct PlayerActorPrimaryEquippedItemChangedEvent : IActorData {
|
||||||
@@ -988,4 +1111,20 @@ namespace RebootReality.jelycho.Player {
|
|||||||
return sizeof(byte) + SlotsActorIDs.Length * sizeof(ushort);
|
return sizeof(byte) + SlotsActorIDs.Length * sizeof(ushort);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct PlayerPlayHandsAnimationEvent : IActorData {
|
||||||
|
public int AnimationHash;
|
||||||
|
|
||||||
|
public void Serialize(NetworkBufferWriter writer) {
|
||||||
|
writer.Write(AnimationHash);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Deserialize(NetworkBufferReader reader) {
|
||||||
|
reader.Read(out AnimationHash);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetMaxBytes() {
|
||||||
|
return sizeof(int);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -116,14 +116,6 @@ namespace RebootReality.jelycho.Player {
|
|||||||
m_Actor.Jump();
|
m_Actor.Jump();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_Config.dragObjectActionReference.action.WasPressedThisFrame()) {
|
|
||||||
m_Actor.StartDrag();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_Config.dragObjectActionReference.action.WasReleasedThisFrame()) {
|
|
||||||
m_Actor.StopDrag();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_Config.dropItemActionReference.action.WasReleasedThisFrame()) {
|
if (m_Config.dropItemActionReference.action.WasReleasedThisFrame()) {
|
||||||
m_Actor.DropItem();
|
m_Actor.DropItem();
|
||||||
}
|
}
|
||||||
@@ -132,6 +124,10 @@ namespace RebootReality.jelycho.Player {
|
|||||||
m_Actor.BeginPrimaryAction();
|
m_Actor.BeginPrimaryAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_Config.primaryActionReference.action.IsPressed()) {
|
||||||
|
m_Actor.HoldingPrimaryAction();
|
||||||
|
}
|
||||||
|
|
||||||
if (m_Config.primaryActionReference.action.WasReleasedThisFrame()) {
|
if (m_Config.primaryActionReference.action.WasReleasedThisFrame()) {
|
||||||
m_Actor.EndPrimaryAction();
|
m_Actor.EndPrimaryAction();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using RebootKit.Engine.Simulation;
|
using RebootKit.Engine.Simulation;
|
||||||
using RebootReality.jelycho.Beacons;
|
using RebootReality.jelycho.Beacons;
|
||||||
|
using RebootReality.jelycho.Feedbacks;
|
||||||
using RebootReality.jelycho.Ropes;
|
using RebootReality.jelycho.Ropes;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@@ -8,5 +9,6 @@ namespace RebootReality.jelycho {
|
|||||||
[field: SerializeField] public Transform PlayerSpawnPoint { get; private set; }
|
[field: SerializeField] public Transform PlayerSpawnPoint { get; private set; }
|
||||||
[field: SerializeField] public RopesManager RopesManager { get; private set; }
|
[field: SerializeField] public RopesManager RopesManager { get; private set; }
|
||||||
[field: SerializeField] public BaseManagerActor BaseManager { get; private set; }
|
[field: SerializeField] public BaseManagerActor BaseManager { get; private set; }
|
||||||
|
[field: SerializeField] public FeedbacksManagerActor FeedbacksManager { get; private set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
154
Assets/jelycho/Materials/m_beacon_spawn_particle.mat
Normal file
154
Assets/jelycho/Materials/m_beacon_spawn_particle.mat
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &-5992090960356355505
|
||||||
|
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
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: m_beacon_spawn_particle
|
||||||
|
m_Shader: {fileID: 4800000, guid: b7839dad95683814aa64166edc107ae2, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords:
|
||||||
|
- _FLIPBOOKBLENDING_OFF
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap:
|
||||||
|
RenderType: Opaque
|
||||||
|
disabledShaderPasses: []
|
||||||
|
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
|
||||||
|
- _BlendOp: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _CameraFadingEnabled: 0
|
||||||
|
- _CameraFarFadeDistance: 2
|
||||||
|
- _CameraNearFadeDistance: 1
|
||||||
|
- _ClearCoatMask: 0
|
||||||
|
- _ClearCoatSmoothness: 0
|
||||||
|
- _ColorMode: 0
|
||||||
|
- _Cull: 2
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailAlbedoMapScale: 1
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DistortionBlend: 0.5
|
||||||
|
- _DistortionEnabled: 0
|
||||||
|
- _DistortionStrength: 1
|
||||||
|
- _DistortionStrengthScaled: 0.1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _DstBlendAlpha: 0
|
||||||
|
- _EnvironmentReflections: 1
|
||||||
|
- _FlipbookBlending: 0
|
||||||
|
- _FlipbookMode: 0
|
||||||
|
- _GlossMapScale: 0
|
||||||
|
- _Glossiness: 0
|
||||||
|
- _GlossyReflections: 0
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.005
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _ReceiveShadows: 1
|
||||||
|
- _Smoothness: 0
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SoftParticlesEnabled: 0
|
||||||
|
- _SoftParticlesFarFadeDistance: 1
|
||||||
|
- _SoftParticlesNearFadeDistance: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _SrcBlendAlpha: 1
|
||||||
|
- _Surface: 0
|
||||||
|
- _WorkflowMode: 1
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _BaseColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
- _CameraFadeParams: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
m_AllowLocking: 1
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: eb39d5756df08a54e958d4e3e6397146
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -3068,6 +3068,7 @@ MonoBehaviour:
|
|||||||
<PlayerSpawnPoint>k__BackingField: {fileID: 1678453720}
|
<PlayerSpawnPoint>k__BackingField: {fileID: 1678453720}
|
||||||
<RopesManager>k__BackingField: {fileID: 308713547}
|
<RopesManager>k__BackingField: {fileID: 308713547}
|
||||||
<BaseManager>k__BackingField: {fileID: 1336405006}
|
<BaseManager>k__BackingField: {fileID: 1336405006}
|
||||||
|
<FeedbacksManager>k__BackingField: {fileID: 1985162060}
|
||||||
--- !u!4 &1109886928
|
--- !u!4 &1109886928
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -3465,9 +3466,9 @@ MonoBehaviour:
|
|||||||
m_OverrideActorColliders: []
|
m_OverrideActorColliders: []
|
||||||
m_SetKinematicOnMount: 1
|
m_SetKinematicOnMount: 1
|
||||||
m_DisableCollidersOnMount: 1
|
m_DisableCollidersOnMount: 1
|
||||||
syncTransform: 1
|
syncTransform: 0
|
||||||
syncPosition: 1
|
syncPosition: 0
|
||||||
syncRotation: 1
|
syncRotation: 0
|
||||||
syncScale: 0
|
syncScale: 0
|
||||||
m_AttachmentSockets: []
|
m_AttachmentSockets: []
|
||||||
m_BeaconPrefab:
|
m_BeaconPrefab:
|
||||||
@@ -3478,6 +3479,9 @@ MonoBehaviour:
|
|||||||
m_EditorAssetChanged: 0
|
m_EditorAssetChanged: 0
|
||||||
m_ConnectionRopeLength: 10
|
m_ConnectionRopeLength: 10
|
||||||
m_BeaconSpawnRadius: 15
|
m_BeaconSpawnRadius: 15
|
||||||
|
m_BeaconSpawnShakeIntensity: 1
|
||||||
|
m_BeaconSpawnShakeRadius: 40
|
||||||
|
m_BeaconSpawnShakeDuration: 0.5
|
||||||
--- !u!4 &1336405007
|
--- !u!4 &1336405007
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -4694,6 +4698,63 @@ MeshFilter:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1972428158}
|
m_GameObject: {fileID: 1972428158}
|
||||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
--- !u!1 &1985162059
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1985162061}
|
||||||
|
- component: {fileID: 1985162060}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: feedbacks_manager
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &1985162060
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1985162059}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: c66663d8df214ee9b21785208a782cc0, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
<SourceActorPath>k__BackingField:
|
||||||
|
<ActorStaticID>k__BackingField: 5576711600302125785
|
||||||
|
<ActorID>k__BackingField: 0
|
||||||
|
m_ActorName:
|
||||||
|
actorRigidbody: {fileID: 0}
|
||||||
|
m_OverrideActorColliders: []
|
||||||
|
m_SetKinematicOnMount: 1
|
||||||
|
m_DisableCollidersOnMount: 1
|
||||||
|
syncTransform: 0
|
||||||
|
syncPosition: 0
|
||||||
|
syncRotation: 0
|
||||||
|
syncScale: 0
|
||||||
|
m_AttachmentSockets: []
|
||||||
|
--- !u!4 &1985162061
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1985162059}
|
||||||
|
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: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &2023481772
|
--- !u!1 &2023481772
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -4929,6 +4990,7 @@ SceneRoots:
|
|||||||
m_Roots:
|
m_Roots:
|
||||||
- {fileID: 1109886928}
|
- {fileID: 1109886928}
|
||||||
- {fileID: 1336405007}
|
- {fileID: 1336405007}
|
||||||
|
- {fileID: 1985162061}
|
||||||
- {fileID: 1678453720}
|
- {fileID: 1678453720}
|
||||||
- {fileID: 308713548}
|
- {fileID: 308713548}
|
||||||
- {fileID: 1352279077}
|
- {fileID: 1352279077}
|
||||||
|
|||||||
@@ -49,22 +49,50 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
<SourceActorPath>k__BackingField:
|
<SourceActorPath>k__BackingField:
|
||||||
<ActorID>k__BackingField: 4851955581397251236
|
<ActorStaticID>k__BackingField: 5248754592638867461
|
||||||
|
<ActorID>k__BackingField: 13476
|
||||||
m_ActorName: DEV Dagger
|
m_ActorName: DEV Dagger
|
||||||
actorRigidbody: {fileID: 695493513755002537}
|
actorRigidbody: {fileID: 695493513755002537}
|
||||||
m_OverrideActorColliders: []
|
m_OverrideActorColliders: []
|
||||||
m_SetKinematicOnMount: 1
|
m_SetKinematicOnMount: 1
|
||||||
m_DisableCollidersOnMount: 1
|
m_DisableCollidersOnMount: 1
|
||||||
transformSyncMode: 11
|
syncTransform: 1
|
||||||
|
syncPosition: 1
|
||||||
|
syncRotation: 1
|
||||||
|
syncScale: 0
|
||||||
m_AttachmentSockets: []
|
m_AttachmentSockets: []
|
||||||
<Config>k__BackingField:
|
<Config>k__BackingField:
|
||||||
itemType: 2
|
|
||||||
icon: {fileID: -137324388, guid: 72d716a5a5f582f43b585b9599f6ecf2, type: 3}
|
icon: {fileID: -137324388, guid: 72d716a5a5f582f43b585b9599f6ecf2, type: 3}
|
||||||
characterEquippedMountSlotName: hand_right
|
characterEquippedMountSlotName: dagger
|
||||||
isChargeable: 0
|
idleAnimation: RH_Dagger_Idle
|
||||||
chargeDuration: 0.5
|
chargingAnimation: RH_Dagger_Heavy_Charged
|
||||||
|
chargedUseAnimation: RH_Dagger_Heavy_Attack
|
||||||
|
quickAttacksAnimations:
|
||||||
|
- RH_Dagger_Light_Attack_1
|
||||||
|
- RH_Dagger_Light_Attack_2
|
||||||
|
- RH_Dagger_Light_Attack_3
|
||||||
|
- RH_Dagger_Light_Attack_4
|
||||||
|
blockAnimation: RH_Dagger_Block
|
||||||
|
canQuickAttack: 1
|
||||||
|
quickAttackAction:
|
||||||
|
rid: 6725240543990252292
|
||||||
|
canBlock: 0
|
||||||
|
isChargeable: 1
|
||||||
|
minChargeDuration: 0.5
|
||||||
|
maxChargeDuration: 2
|
||||||
chargeCooldown: 1
|
chargeCooldown: 1
|
||||||
|
chargeAction:
|
||||||
|
rid: 6725240539245969495
|
||||||
m_HighlightEffect: {fileID: 6192756147651944583}
|
m_HighlightEffect: {fileID: 6192756147651944583}
|
||||||
|
references:
|
||||||
|
version: 2
|
||||||
|
RefIds:
|
||||||
|
- rid: 6725240539245969495
|
||||||
|
type: {class: HeavySlashAttackChargeAttack, ns: RebootReality.jelycho.Items, asm: RebootReality.jelycho}
|
||||||
|
data:
|
||||||
|
- rid: 6725240543990252292
|
||||||
|
type: {class: ItemQuickAttackAction, ns: RebootReality.jelycho.Items, asm: RebootReality.jelycho}
|
||||||
|
data:
|
||||||
--- !u!54 &695493513755002537
|
--- !u!54 &695493513755002537
|
||||||
Rigidbody:
|
Rigidbody:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@@ -63,21 +63,27 @@ MonoBehaviour:
|
|||||||
syncScale: 0
|
syncScale: 0
|
||||||
m_AttachmentSockets: []
|
m_AttachmentSockets: []
|
||||||
<Config>k__BackingField:
|
<Config>k__BackingField:
|
||||||
itemType: 1
|
|
||||||
icon: {fileID: 22319203, guid: 72d716a5a5f582f43b585b9599f6ecf2, type: 3}
|
icon: {fileID: 22319203, guid: 72d716a5a5f582f43b585b9599f6ecf2, type: 3}
|
||||||
characterEquippedMountSlotName: hand_right
|
characterEquippedMountSlotName: egg
|
||||||
|
idleAnimation: Right_Hand_Hold_Idle
|
||||||
|
chargingAnimation: Right_Hand_Hold_Charged
|
||||||
|
chargedUseAnimation: Right_Hand_Hold_Throw
|
||||||
|
quickAttacksAnimations: []
|
||||||
|
blockAnimation:
|
||||||
|
canQuickAttack: 0
|
||||||
|
canBlock: 0
|
||||||
isChargeable: 1
|
isChargeable: 1
|
||||||
minChargeDuration: 0.1
|
minChargeDuration: 0.1
|
||||||
maxChargeDuration: 1
|
maxChargeDuration: 1
|
||||||
chargeCooldown: 1
|
chargeCooldown: 1
|
||||||
chargeAction:
|
chargeAction:
|
||||||
rid: 6725240519461962327
|
rid: 6725240539245969494
|
||||||
m_HighlightEffect: {fileID: 3112011596488648805}
|
m_HighlightEffect: {fileID: 3112011596488648805}
|
||||||
references:
|
references:
|
||||||
version: 2
|
version: 2
|
||||||
RefIds:
|
RefIds:
|
||||||
- rid: 6725240519461962327
|
- rid: 6725240539245969494
|
||||||
type: {class: EggChargeAction, ns: RebootReality.jelycho.Items, asm: RebootReality.jelycho}
|
type: {class: SpawnBeaconChargeAction, ns: RebootReality.jelycho.Items, asm: RebootReality.jelycho}
|
||||||
data:
|
data:
|
||||||
--- !u!54 &6762445103522978435
|
--- !u!54 &6762445103522978435
|
||||||
Rigidbody:
|
Rigidbody:
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -214,6 +214,267 @@ ModelImporter:
|
|||||||
maskType: 3
|
maskType: 3
|
||||||
maskSource: {instanceID: 0}
|
maskSource: {instanceID: 0}
|
||||||
additiveReferencePoseFrame: 0
|
additiveReferencePoseFrame: 0
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: RH_Dagger_Idle
|
||||||
|
takeName: RH_Dagger_Idle
|
||||||
|
internalID: 9033222686761612494
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 299
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 0
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events: []
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: RH_Dagger_Heavy_Charged
|
||||||
|
takeName: RH_Dagger_Heavy_Charged
|
||||||
|
internalID: -3010194254664171275
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 29
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 0
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events: []
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: RH_Dagger_Heavy_Attack
|
||||||
|
takeName: RH_Dagger_Heavy_Attack
|
||||||
|
internalID: 835003676946283593
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 14
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 0
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events: []
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: RH_Dagger_Block
|
||||||
|
takeName: RH_Dagger_Block
|
||||||
|
internalID: -8851864934835179381
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 14
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 0
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events: []
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: RH_Dagger_Light_Attack_1
|
||||||
|
takeName: RH_Dagger_Light_Attack_1
|
||||||
|
internalID: -5161291926998246653
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 25
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 0
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events: []
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: RH_Dagger_Light_Attack_2
|
||||||
|
takeName: RH_Dagger_Light_Attack_2
|
||||||
|
internalID: 5159132439250656024
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 55
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 0
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events: []
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: RH_Dagger_Light_Attack_3
|
||||||
|
takeName: RH_Dagger_Light_Attack_3
|
||||||
|
internalID: 8907191941583307612
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 40
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 0
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events: []
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: RH_Dagger_Light_Attack_4
|
||||||
|
takeName: RH_Dagger_Light_Attack_4
|
||||||
|
internalID: -383922986684221464
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 15
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 0
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events: []
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: RH_Dagger_Light_Attack_Sequence
|
||||||
|
takeName: RH_Dagger_Light_Attack_Sequence
|
||||||
|
internalID: -6897214267392144199
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 185
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 0
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events: []
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
isReadable: 0
|
isReadable: 0
|
||||||
meshes:
|
meshes:
|
||||||
lODScreenPercentages: []
|
lODScreenPercentages: []
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 6661496247832138833}
|
- component: {fileID: 6661496247832138833}
|
||||||
m_Layer: 7
|
m_Layer: 7
|
||||||
m_Name: hand_right_slot
|
m_Name: hand_right_slot_egg
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -110,13 +110,13 @@ Transform:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1348422555280504833}
|
m_GameObject: {fileID: 1348422555280504833}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: 0.76654154, y: 0.6380169, z: -0.055969324, w: 0.04707348}
|
m_LocalRotation: {x: 0.57864237, y: 0.40390524, z: 0.56028163, w: 0.43372583}
|
||||||
m_LocalPosition: {x: 0.0011812435, y: 0.10607701, z: 0.027564127}
|
m_LocalPosition: {x: 0.001, y: 0.09, z: 0.0785}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 5261224098978168883}
|
m_Father: {fileID: 5261224098978168883}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 177.172, y: -90.233, z: -72.672}
|
||||||
--- !u!1 &1493580190798519521
|
--- !u!1 &1493580190798519521
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -741,10 +741,14 @@ MonoBehaviour:
|
|||||||
syncRotation: 0
|
syncRotation: 0
|
||||||
syncScale: 0
|
syncScale: 0
|
||||||
m_AttachmentSockets:
|
m_AttachmentSockets:
|
||||||
- socketName: hand_right
|
- socketName: egg
|
||||||
root: {fileID: 6661496247832138833}
|
root: {fileID: 6661496247832138833}
|
||||||
localPosition: {x: 0, y: 0, z: 0}
|
localPosition: {x: 0, y: 0, z: 0}
|
||||||
localRotation: {x: 0, y: 0, z: 0, w: 0}
|
localRotation: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
- socketName: dagger
|
||||||
|
root: {fileID: 3163379227286582809}
|
||||||
|
localPosition: {x: 0, y: 0, z: 0}
|
||||||
|
localRotation: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Animator: {fileID: 134164689146528362}
|
m_Animator: {fileID: 134164689146528362}
|
||||||
m_Locomotion: {fileID: 3055557605397218987}
|
m_Locomotion: {fileID: 3055557605397218987}
|
||||||
m_Camera: {fileID: 7282522638044830840}
|
m_Camera: {fileID: 7282522638044830840}
|
||||||
@@ -763,12 +767,6 @@ MonoBehaviour:
|
|||||||
m_CharacterRotateSpeed: 180
|
m_CharacterRotateSpeed: 180
|
||||||
m_CharacterRotateFastSpeed: 720
|
m_CharacterRotateFastSpeed: 720
|
||||||
m_HandsLayerIndex: 2
|
m_HandsLayerIndex: 2
|
||||||
m_ItemTypeHandsAnimations: []
|
|
||||||
m_DefaultItemHandsAnimations:
|
|
||||||
itemType: 0
|
|
||||||
idle: Right_Hand_Hold_Idle
|
|
||||||
charging: Right_Hand_Hold_Charged
|
|
||||||
chargedUse: Right_Hand_Hold_Throw
|
|
||||||
m_HandsIdleStateName: Hands Locomotion
|
m_HandsIdleStateName: Hands Locomotion
|
||||||
m_DragGutStartPosition: {fileID: 0}
|
m_DragGutStartPosition: {fileID: 0}
|
||||||
m_PhysicsDragger: {fileID: 2402344678768307677}
|
m_PhysicsDragger: {fileID: 2402344678768307677}
|
||||||
@@ -805,8 +803,12 @@ MonoBehaviour:
|
|||||||
m_PitchMin: -80
|
m_PitchMin: -80
|
||||||
m_PitchMax: 80
|
m_PitchMax: 80
|
||||||
<Camera>k__BackingField: {fileID: 8557190970217331903}
|
<Camera>k__BackingField: {fileID: 8557190970217331903}
|
||||||
|
m_BobbingNoiseSettings: {fileID: 11400000, guid: 8c717fcbc095df94da5c56dc723a9e04, type: 2}
|
||||||
m_BobbingFrequency: 1
|
m_BobbingFrequency: 1
|
||||||
m_BobbingAmplitude: 1
|
m_BobbingAmplitude: 1
|
||||||
|
m_ShakeNoiseSettings: {fileID: 11400000, guid: b4bbf15612416ff40bd579e50fa8693c, type: 2}
|
||||||
|
m_ShakeFrequency: 1
|
||||||
|
m_ShakeAmplitude: 1
|
||||||
m_PickDistance: 5
|
m_PickDistance: 5
|
||||||
m_PickLayer:
|
m_PickLayer:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
@@ -1092,7 +1094,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 68bb026fafb42b14791938953eaace77, type: 3}
|
m_Script: {fileID: 11500000, guid: 68bb026fafb42b14791938953eaace77, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
NoiseProfile: {fileID: 11400000, guid: 8c717fcbc095df94da5c56dc723a9e04, type: 2}
|
NoiseProfile: {fileID: 11400000, guid: b4bbf15612416ff40bd579e50fa8693c, type: 2}
|
||||||
PivotOffset: {x: 0, y: 0, z: 0}
|
PivotOffset: {x: 0, y: 0, z: 0}
|
||||||
AmplitudeGain: 1
|
AmplitudeGain: 1
|
||||||
FrequencyGain: 1
|
FrequencyGain: 1
|
||||||
@@ -1214,6 +1216,37 @@ Transform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 8014384043901115190}
|
m_Father: {fileID: 8014384043901115190}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &9111957051878017424
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3163379227286582809}
|
||||||
|
m_Layer: 7
|
||||||
|
m_Name: hand_right_slot_dagger
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &3163379227286582809
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 9111957051878017424}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: -0.63801676, y: 0.76654166, z: -0.047073357, w: -0.055969384}
|
||||||
|
m_LocalPosition: {x: -0.001, y: 0.099, z: 0.038}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 5261224098978168883}
|
||||||
|
m_LocalEulerAnglesHint: {x: 171.745, y: 1.4900055, z: -259.436}
|
||||||
--- !u!1001 &5815892847420407803
|
--- !u!1001 &5815892847420407803
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -1750,6 +1783,9 @@ PrefabInstance:
|
|||||||
- targetCorrespondingSourceObject: {fileID: 1852576806548013000, guid: e74130c49b009364f90d176af44766be, type: 3}
|
- targetCorrespondingSourceObject: {fileID: 1852576806548013000, guid: e74130c49b009364f90d176af44766be, type: 3}
|
||||||
insertIndex: -1
|
insertIndex: -1
|
||||||
addedObject: {fileID: 6661496247832138833}
|
addedObject: {fileID: 6661496247832138833}
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 1852576806548013000, guid: e74130c49b009364f90d176af44766be, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 3163379227286582809}
|
||||||
m_AddedComponents:
|
m_AddedComponents:
|
||||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: e74130c49b009364f90d176af44766be, type: 3}
|
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: e74130c49b009364f90d176af44766be, type: 3}
|
||||||
insertIndex: -1
|
insertIndex: -1
|
||||||
|
|||||||
@@ -37,9 +37,6 @@ AnimatorStateMachine:
|
|||||||
- serializedVersion: 1
|
- serializedVersion: 1
|
||||||
m_State: {fileID: 5935865335456089982}
|
m_State: {fileID: 5935865335456089982}
|
||||||
m_Position: {x: 308, y: 177, z: 0}
|
m_Position: {x: 308, y: 177, z: 0}
|
||||||
- serializedVersion: 1
|
|
||||||
m_State: {fileID: -6052182729967427237}
|
|
||||||
m_Position: {x: 343, y: 242, z: 0}
|
|
||||||
m_ChildStateMachines: []
|
m_ChildStateMachines: []
|
||||||
m_AnyStateTransitions: []
|
m_AnyStateTransitions: []
|
||||||
m_EntryTransitions: []
|
m_EntryTransitions: []
|
||||||
@@ -50,32 +47,6 @@ AnimatorStateMachine:
|
|||||||
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: 5935865335456089982}
|
m_DefaultState: {fileID: 5935865335456089982}
|
||||||
--- !u!1102 &-8396421346802500550
|
|
||||||
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: []
|
|
||||||
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: -4474010965065293577, guid: e74130c49b009364f90d176af44766be, type: 3}
|
|
||||||
m_Tag:
|
|
||||||
m_SpeedParameter:
|
|
||||||
m_MirrorParameter:
|
|
||||||
m_CycleOffsetParameter:
|
|
||||||
m_TimeParameter:
|
|
||||||
--- !u!1101 &-7843561725900691380
|
--- !u!1101 &-7843561725900691380
|
||||||
AnimatorStateTransition:
|
AnimatorStateTransition:
|
||||||
m_ObjectHideFlags: 1
|
m_ObjectHideFlags: 1
|
||||||
@@ -154,32 +125,6 @@ AnimatorState:
|
|||||||
m_MirrorParameter:
|
m_MirrorParameter:
|
||||||
m_CycleOffsetParameter:
|
m_CycleOffsetParameter:
|
||||||
m_TimeParameter:
|
m_TimeParameter:
|
||||||
--- !u!1102 &-6052182729967427237
|
|
||||||
AnimatorState:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: fpp_hands_idle
|
|
||||||
m_Speed: 1
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_Transitions: []
|
|
||||||
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: 7400000, guid: b9ca82b98b372704f815b3b333398dd8, type: 2}
|
|
||||||
m_Tag:
|
|
||||||
m_SpeedParameter:
|
|
||||||
m_MirrorParameter:
|
|
||||||
m_CycleOffsetParameter:
|
|
||||||
m_TimeParameter:
|
|
||||||
--- !u!1101 &-5688063754476688894
|
--- !u!1101 &-5688063754476688894
|
||||||
AnimatorStateTransition:
|
AnimatorStateTransition:
|
||||||
m_ObjectHideFlags: 1
|
m_ObjectHideFlags: 1
|
||||||
@@ -261,6 +206,60 @@ AnimatorStateTransition:
|
|||||||
m_InterruptionSource: 0
|
m_InterruptionSource: 0
|
||||||
m_OrderedInterruption: 1
|
m_OrderedInterruption: 1
|
||||||
m_CanTransitionToSelf: 1
|
m_CanTransitionToSelf: 1
|
||||||
|
--- !u!1102 &-4258676090202558382
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: RH_Dagger_Light_Attack_3
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions:
|
||||||
|
- {fileID: 3024880565010572443}
|
||||||
|
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: 8907191941583307612, guid: e74130c49b009364f90d176af44766be, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1102 &-4142910959953399782
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: RH_Dagger_Heavy_Attack
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions:
|
||||||
|
- {fileID: 2701126247434177904}
|
||||||
|
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: 835003676946283593, guid: e74130c49b009364f90d176af44766be, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
--- !u!1101 &-3304044052770011223
|
--- !u!1101 &-3304044052770011223
|
||||||
AnimatorStateTransition:
|
AnimatorStateTransition:
|
||||||
m_ObjectHideFlags: 1
|
m_ObjectHideFlags: 1
|
||||||
@@ -283,6 +282,33 @@ AnimatorStateTransition:
|
|||||||
m_InterruptionSource: 0
|
m_InterruptionSource: 0
|
||||||
m_OrderedInterruption: 1
|
m_OrderedInterruption: 1
|
||||||
m_CanTransitionToSelf: 1
|
m_CanTransitionToSelf: 1
|
||||||
|
--- !u!1102 &-3045739848204926007
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: RH_Dagger_Light_Attack_1
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions:
|
||||||
|
- {fileID: 2558807921884057070}
|
||||||
|
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: -5161291926998246653, guid: e74130c49b009364f90d176af44766be, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
--- !u!206 &-2366610759373995002
|
--- !u!206 &-2366610759373995002
|
||||||
BlendTree:
|
BlendTree:
|
||||||
m_ObjectHideFlags: 1
|
m_ObjectHideFlags: 1
|
||||||
@@ -334,9 +360,6 @@ AnimatorStateMachine:
|
|||||||
- serializedVersion: 1
|
- serializedVersion: 1
|
||||||
m_State: {fileID: 400375029870675044}
|
m_State: {fileID: 400375029870675044}
|
||||||
m_Position: {x: 350, y: 50, z: 0}
|
m_Position: {x: 350, y: 50, z: 0}
|
||||||
- serializedVersion: 1
|
|
||||||
m_State: {fileID: -8396421346802500550}
|
|
||||||
m_Position: {x: 630, y: 120, z: 0}
|
|
||||||
- serializedVersion: 1
|
- serializedVersion: 1
|
||||||
m_State: {fileID: -7519564327104386826}
|
m_State: {fileID: -7519564327104386826}
|
||||||
m_Position: {x: 350, y: 120, z: 0}
|
m_Position: {x: 350, y: 120, z: 0}
|
||||||
@@ -346,6 +369,30 @@ AnimatorStateMachine:
|
|||||||
- serializedVersion: 1
|
- serializedVersion: 1
|
||||||
m_State: {fileID: 7168728000125186730}
|
m_State: {fileID: 7168728000125186730}
|
||||||
m_Position: {x: 350, y: 180, z: 0}
|
m_Position: {x: 350, y: 180, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: -806760950593395369}
|
||||||
|
m_Position: {x: 1070, y: 300, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: -4142910959953399782}
|
||||||
|
m_Position: {x: 600, y: 180, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: 2214809029557551973}
|
||||||
|
m_Position: {x: 600, y: 120, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: 986773882182361933}
|
||||||
|
m_Position: {x: 600, y: 240, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: -3045739848204926007}
|
||||||
|
m_Position: {x: 600, y: 320, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: 3161653163725658165}
|
||||||
|
m_Position: {x: 600, y: 380, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: -4258676090202558382}
|
||||||
|
m_Position: {x: 810, y: 390, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: 7669447703752123152}
|
||||||
|
m_Position: {x: 830, y: 290, z: 0}
|
||||||
m_ChildStateMachines: []
|
m_ChildStateMachines: []
|
||||||
m_AnyStateTransitions: []
|
m_AnyStateTransitions: []
|
||||||
m_EntryTransitions:
|
m_EntryTransitions:
|
||||||
@@ -354,7 +401,7 @@ AnimatorStateMachine:
|
|||||||
m_StateMachineBehaviours: []
|
m_StateMachineBehaviours: []
|
||||||
m_AnyStatePosition: {x: 60, y: 100, z: 0}
|
m_AnyStatePosition: {x: 60, y: 100, z: 0}
|
||||||
m_EntryPosition: {x: 60, y: 60, z: 0}
|
m_EntryPosition: {x: 60, y: 60, z: 0}
|
||||||
m_ExitPosition: {x: 370, y: 450, z: 0}
|
m_ExitPosition: {x: 370, y: 570, z: 0}
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
m_DefaultState: {fileID: 400375029870675044}
|
m_DefaultState: {fileID: 400375029870675044}
|
||||||
--- !u!1102 &-1370786679102677242
|
--- !u!1102 &-1370786679102677242
|
||||||
@@ -436,6 +483,32 @@ AnimatorStateTransition:
|
|||||||
m_InterruptionSource: 0
|
m_InterruptionSource: 0
|
||||||
m_OrderedInterruption: 1
|
m_OrderedInterruption: 1
|
||||||
m_CanTransitionToSelf: 1
|
m_CanTransitionToSelf: 1
|
||||||
|
--- !u!1102 &-806760950593395369
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: RH_Dagger_Block
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
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: -8851864934835179381, guid: e74130c49b009364f90d176af44766be, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
--- !u!91 &9100000
|
--- !u!91 &9100000
|
||||||
AnimatorController:
|
AnimatorController:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -469,30 +542,6 @@ AnimatorController:
|
|||||||
m_DefaultInt: 0
|
m_DefaultInt: 0
|
||||||
m_DefaultBool: 0
|
m_DefaultBool: 0
|
||||||
m_Controller: {fileID: 9100000}
|
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: Block
|
|
||||||
m_Type: 9
|
|
||||||
m_DefaultFloat: 0
|
|
||||||
m_DefaultInt: 0
|
|
||||||
m_DefaultBool: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
||||||
- m_Name: Throw
|
|
||||||
m_Type: 9
|
|
||||||
m_DefaultFloat: 0
|
|
||||||
m_DefaultInt: 0
|
|
||||||
m_DefaultBool: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
||||||
- m_Name: Holding
|
|
||||||
m_Type: 3
|
|
||||||
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
|
||||||
@@ -556,6 +605,102 @@ AnimatorState:
|
|||||||
m_MirrorParameter:
|
m_MirrorParameter:
|
||||||
m_CycleOffsetParameter:
|
m_CycleOffsetParameter:
|
||||||
m_TimeParameter:
|
m_TimeParameter:
|
||||||
|
--- !u!1102 &986773882182361933
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: RH_Dagger_Idle
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
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: 9033222686761612494, guid: e74130c49b009364f90d176af44766be, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1102 &2214809029557551973
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: RH_Dagger_Heavy_Charged
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
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: -3010194254664171275, guid: e74130c49b009364f90d176af44766be, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1101 &2558807921884057070
|
||||||
|
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: 986773882182361933}
|
||||||
|
m_Solo: 0
|
||||||
|
m_Mute: 0
|
||||||
|
m_IsExit: 0
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TransitionDuration: 0.25
|
||||||
|
m_TransitionOffset: 0
|
||||||
|
m_ExitTime: 0.40000004
|
||||||
|
m_HasExitTime: 1
|
||||||
|
m_HasFixedDuration: 1
|
||||||
|
m_InterruptionSource: 0
|
||||||
|
m_OrderedInterruption: 1
|
||||||
|
m_CanTransitionToSelf: 1
|
||||||
|
--- !u!1101 &2701126247434177904
|
||||||
|
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: 986773882182361933}
|
||||||
|
m_Solo: 0
|
||||||
|
m_Mute: 0
|
||||||
|
m_IsExit: 0
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TransitionDuration: 0.25
|
||||||
|
m_TransitionOffset: 0
|
||||||
|
m_ExitTime: 0
|
||||||
|
m_HasExitTime: 1
|
||||||
|
m_HasFixedDuration: 1
|
||||||
|
m_InterruptionSource: 0
|
||||||
|
m_OrderedInterruption: 1
|
||||||
|
m_CanTransitionToSelf: 1
|
||||||
--- !u!1102 &2851786315226548937
|
--- !u!1102 &2851786315226548937
|
||||||
AnimatorState:
|
AnimatorState:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
@@ -582,6 +727,77 @@ AnimatorState:
|
|||||||
m_MirrorParameter:
|
m_MirrorParameter:
|
||||||
m_CycleOffsetParameter:
|
m_CycleOffsetParameter:
|
||||||
m_TimeParameter:
|
m_TimeParameter:
|
||||||
|
--- !u!1101 &3024880565010572443
|
||||||
|
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: 986773882182361933}
|
||||||
|
m_Solo: 0
|
||||||
|
m_Mute: 0
|
||||||
|
m_IsExit: 0
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TransitionDuration: 0.25
|
||||||
|
m_TransitionOffset: 0
|
||||||
|
m_ExitTime: 0.625
|
||||||
|
m_HasExitTime: 1
|
||||||
|
m_HasFixedDuration: 1
|
||||||
|
m_InterruptionSource: 0
|
||||||
|
m_OrderedInterruption: 1
|
||||||
|
m_CanTransitionToSelf: 1
|
||||||
|
--- !u!1102 &3161653163725658165
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: RH_Dagger_Light_Attack_2
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions:
|
||||||
|
- {fileID: 7613635050635616941}
|
||||||
|
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: 5159132439250656024, guid: e74130c49b009364f90d176af44766be, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1101 &4173817473848995228
|
||||||
|
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: 986773882182361933}
|
||||||
|
m_Solo: 0
|
||||||
|
m_Mute: 0
|
||||||
|
m_IsExit: 0
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TransitionDuration: 0.25
|
||||||
|
m_TransitionOffset: 0
|
||||||
|
m_ExitTime: 0
|
||||||
|
m_HasExitTime: 1
|
||||||
|
m_HasFixedDuration: 1
|
||||||
|
m_InterruptionSource: 0
|
||||||
|
m_OrderedInterruption: 1
|
||||||
|
m_CanTransitionToSelf: 1
|
||||||
--- !u!1102 &5935865335456089982
|
--- !u!1102 &5935865335456089982
|
||||||
AnimatorState:
|
AnimatorState:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
@@ -704,6 +920,55 @@ BlendTree:
|
|||||||
m_UseAutomaticThresholds: 0
|
m_UseAutomaticThresholds: 0
|
||||||
m_NormalizedBlendValues: 0
|
m_NormalizedBlendValues: 0
|
||||||
m_BlendType: 3
|
m_BlendType: 3
|
||||||
|
--- !u!1101 &7613635050635616941
|
||||||
|
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: 986773882182361933}
|
||||||
|
m_Solo: 0
|
||||||
|
m_Mute: 0
|
||||||
|
m_IsExit: 0
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TransitionDuration: 0.25
|
||||||
|
m_TransitionOffset: 0
|
||||||
|
m_ExitTime: 0.72727275
|
||||||
|
m_HasExitTime: 1
|
||||||
|
m_HasFixedDuration: 1
|
||||||
|
m_InterruptionSource: 0
|
||||||
|
m_OrderedInterruption: 1
|
||||||
|
m_CanTransitionToSelf: 1
|
||||||
|
--- !u!1102 &7669447703752123152
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: RH_Dagger_Light_Attack_4
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions:
|
||||||
|
- {fileID: 4173817473848995228}
|
||||||
|
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: -383922986684221464, guid: e74130c49b009364f90d176af44766be, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
--- !u!1101 &8282254675316049755
|
--- !u!1101 &8282254675316049755
|
||||||
AnimatorStateTransition:
|
AnimatorStateTransition:
|
||||||
m_ObjectHideFlags: 1
|
m_ObjectHideFlags: 1
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ MonoBehaviour:
|
|||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: b7f59e54f2bfd184b9dd451a678d089b, type: 3}
|
m_Script: {fileID: 11500000, guid: b7f59e54f2bfd184b9dd451a678d089b, type: 3}
|
||||||
m_Name: cc_fpp Noise Profile
|
m_Name: cc_noise_fpp_bobbing
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
PositionNoise:
|
PositionNoise:
|
||||||
- X:
|
- X:
|
||||||
28
Assets/jelycho/core/player/cc_noise_fpp_shake.asset
Normal file
28
Assets/jelycho/core/player/cc_noise_fpp_shake.asset
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
%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: b7f59e54f2bfd184b9dd451a678d089b, type: 3}
|
||||||
|
m_Name: cc_noise_fpp_shake
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
PositionNoise:
|
||||||
|
- X:
|
||||||
|
Frequency: 10
|
||||||
|
Amplitude: 0.5
|
||||||
|
Constant: 0
|
||||||
|
Y:
|
||||||
|
Frequency: 10
|
||||||
|
Amplitude: 0.5
|
||||||
|
Constant: 0
|
||||||
|
Z:
|
||||||
|
Frequency: 20
|
||||||
|
Amplitude: 0
|
||||||
|
Constant: 0
|
||||||
|
OrientationNoise: []
|
||||||
8
Assets/jelycho/core/player/cc_noise_fpp_shake.asset.meta
Normal file
8
Assets/jelycho/core/player/cc_noise_fpp_shake.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b4bbf15612416ff40bd579e50fa8693c
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Reference in New Issue
Block a user