diff --git a/Assets/Code/Consts.cs b/Assets/Code/Consts.cs index fe048ab..12eafc6 100644 --- a/Assets/Code/Consts.cs +++ b/Assets/Code/Consts.cs @@ -18,6 +18,10 @@ static public class GameTriggers { static public readonly StringHash32 AtWarpPoint = "AtWarpPoint"; static public readonly StringHash32 PlayerLookAtObject = "PlayerLookAt"; - static public readonly StringHash32 TabletLookAtObject = "TabletLookAt"; + static public readonly StringHash32 TabletLookAtObject = "TabletLookAt"; + + static public readonly StringHash32 TabletPhotoTaken = "TabletPhotoTaken"; + static public readonly StringHash32 TabletNewBehaviorCaptured = "TabletBehaviorCaptured"; + static public readonly StringHash32 TabletNewBehaviorInstanceCaptured = "TabletBehaviorInstanceCaptured"; } } \ No newline at end of file diff --git a/Assets/Code/GameLayers.cs b/Assets/Code/GameLayers.cs index a281672..429140f 100644 --- a/Assets/Code/GameLayers.cs +++ b/Assets/Code/GameLayers.cs @@ -66,6 +66,12 @@ static public class LayerMasks { // Layer 20: ParticleAvoid public const int ParticleAvoid_Index = 20; public const int ParticleAvoid_Mask = 1048576; + // Layer 21: CaptureOnly + public const int CaptureOnly_Index = 21; + public const int CaptureOnly_Mask = 2097152; + // Layer 22: PenguinSensor + public const int PenguinSensor_Index = 22; + public const int PenguinSensor_Mask = 4194304; // Layer 29: VisibleOnlyThroughTablet public const int VisibleOnlyThroughTablet_Index = 29; public const int VisibleOnlyThroughTablet_Mask = 536870912; diff --git a/Assets/Code/Penguin/PenguinContacts.cs b/Assets/Code/Penguin/PenguinContacts.cs index 44717a4..5db1748 100644 --- a/Assets/Code/Penguin/PenguinContacts.cs +++ b/Assets/Code/Penguin/PenguinContacts.cs @@ -1,6 +1,7 @@ using System; using BeauUtil; using FieldDay.Components; +using FieldDay.Physics; using FieldDay.Scripting; using FieldDay.VRHands; using UnityEngine; @@ -10,6 +11,8 @@ namespace Pennycook { public class PenguinContacts : ScriptActorComponent { static public readonly StringHash32 Signal_PlayerGripped = "penguin-gripped"; static public readonly StringHash32 Signal_PlayerReleased = "penguin-released"; + static public readonly StringHash32 Signal_PlayerEnteredProximity = "penguin-player-in-proximity"; + static public readonly StringHash32 Signal_PlayerExitedProximity = "penguin-player-exited-proximity"; public TriggerListener Proximity; public CollisionListener Collisions; @@ -17,17 +20,24 @@ public class PenguinContacts : ScriptActorComponent { [NonSerialized] public PenguinBrain CachedBrain; [NonSerialized] public BitSet32 GrippedShoulders; + [NonSerialized] public SensedObject PlayerProximity; private void Awake() { this.CacheComponent(ref CachedBrain); PlayerGrip.OnGrabbed.Register(OnGrabbed); PlayerGrip.OnReleased.Register(OnReleased); + + Proximity.onTriggerEnter.Register(OnProximityEnter); + Proximity.onTriggerExit.Register(OnProximityExit); } private void OnDestroy() { PlayerGrip.OnGrabbed.Deregister(OnGrabbed); PlayerGrip.OnReleased.Deregister(OnReleased); + + Proximity.onTriggerEnter.Deregister(OnProximityEnter); + Proximity.onTriggerExit.Deregister(OnProximityExit); } private void OnGrabbed(Grabber hand, int snapIndex) { @@ -40,6 +50,7 @@ private void OnGrabbed(Grabber hand, int snapIndex) { if (GrippedShoulders.Count == 1) { CachedBrain.Signal(Signal_PlayerGripped); + CachedBrain.Animator.Animator.SetBool("PlayerGripping", true); } } @@ -51,9 +62,65 @@ private void OnReleased(Grabber hand, int snapIndex) { GrippedShoulders.Unset(1); } - if (GrippedShoulders.Count == 1) { + if (GrippedShoulders.Count == 0) { CachedBrain.Signal(Signal_PlayerReleased); + CachedBrain.Animator.Animator.SetBool("PlayerGripping", false); + } + } + + private void OnProximityEnter(Collider collider) { + if (collider.gameObject.layer == LayerMasks.PenguinBody_Index) { + // was penguin + } else { + PlayerRig player = collider.ResolveComponent(); + if (player != null) { + if (SenseUtility.Increment(ref PlayerProximity, player)) { + CachedBrain.Signal(Signal_PlayerEnteredProximity); + } + } } } + + private void OnProximityExit(Collider collider) { + if (collider.gameObject.layer == LayerMasks.PenguinBody_Index) { + // was penguin + } else { + PlayerRig player = collider.ResolveComponent(); + if (player != null) { + if (SenseUtility.Decrement(ref PlayerProximity, player)) { + CachedBrain.Signal(Signal_PlayerEnteredProximity); + } + } + } + } + } + + static public class SenseUtility { + static public bool Increment(ref SensedObject sense, T obj) where T : class { + if (sense.Object != obj) { + sense.Object = obj; + sense.Colliders = 0; + } + return (sense.Colliders++ == 0); + } + + static public bool Decrement(ref SensedObject sense, T obj) where T : class { + if (sense.Object == obj) { + if (sense.Colliders-- == 1) { + sense.Object = null; + return true; + } + } + return false; + } + } + + public struct SensedObject where T : class { + public T Object; + public int Colliders; + + static public implicit operator T(SensedObject sensed) { + return sensed.Object; + } } } \ No newline at end of file diff --git a/Assets/Code/Penguin/PenguinRelationshipTracker.cs b/Assets/Code/Penguin/PenguinRelationshipTracker.cs index 81dbe84..6169359 100644 --- a/Assets/Code/Penguin/PenguinRelationshipTracker.cs +++ b/Assets/Code/Penguin/PenguinRelationshipTracker.cs @@ -13,6 +13,8 @@ namespace Pennycook { public sealed class PenguinRelationshipTracker : ScriptActorComponent { // family public PenguinBrain Mate; + public PenguinBrain Child; + [NonSerialized] public RingBuffer Children = new RingBuffer(4, RingBufferMode.Expand); [NonSerialized] public AnalogSignal FamilyAnxiety; diff --git a/Assets/Code/Tablet/Highlight/TabletHighlightState.cs b/Assets/Code/Tablet/Highlight/TabletHighlightState.cs index 43ecbb7..525a99f 100644 --- a/Assets/Code/Tablet/Highlight/TabletHighlightState.cs +++ b/Assets/Code/Tablet/Highlight/TabletHighlightState.cs @@ -65,6 +65,7 @@ static public partial class TabletUtility { // uncomment the default and solid masks to allow for other objects to occlude the target type public const int DefaultSearchMask = /* LayerMasks.Default_Mask | LayerMasks.Solid_Mask | */ LayerMasks.Grabbable_Mask | LayerMasks.Highlightable_Mask; + public const int CaptureSearchMask = LayerMasks.Solid_Mask | LayerMasks.Grabbable_Mask | LayerMasks.Highlightable_Mask | LayerMasks.CaptureOnly_Mask; public const int TravelSearchMask = /* LayerMasks.Default_Mask | LayerMasks.Solid_Mask | */ LayerMasks.Warpable_Mask; public const int CountSearchMask = /* LayerMasks.Default_Mask | LayerMasks.Solid_Mask | */ LayerMasks.Highlightable_Mask | LayerMasks.Countable_Mask; diff --git a/Assets/Code/Tablet/Highlight/TabletHighlightSystem.cs b/Assets/Code/Tablet/Highlight/TabletHighlightSystem.cs index 6e13344..96b313b 100644 --- a/Assets/Code/Tablet/Highlight/TabletHighlightSystem.cs +++ b/Assets/Code/Tablet/Highlight/TabletHighlightSystem.cs @@ -25,7 +25,7 @@ public override void ProcessWork(float deltaTime) { if (Frame.Interval(3) && isGripping && m_StateB.CurrentTool != TabletTool.None && !m_StateA.RaycastJob.IsValid()) { if (searchMask != 0) { TabletZoomState zoomState = Find.State(); - float coneDistance = 25 * zoomState.ZoomMultiplier; + float coneDistance = m_StateB.CurrentToolDef.RaycastBaseDistance * zoomState.ZoomMultiplier; float coneRadius = coneDistance * m_StateB.CurrentToolDef.RaycastUnitConeRadius * CameraHelper.UnitHeightForFOV(m_StateA.LookCamera.fieldOfView) / 2; Log.Trace("cone radius = {0}", coneRadius); diff --git a/Assets/Code/Tablet/Photo/TabletCapturable.cs b/Assets/Code/Tablet/Photo/TabletCapturable.cs index ac6f1d0..b20b4de 100644 --- a/Assets/Code/Tablet/Photo/TabletCapturable.cs +++ b/Assets/Code/Tablet/Photo/TabletCapturable.cs @@ -11,5 +11,27 @@ namespace Pennycook.Tablet { public sealed class TabletCapturable : BatchedComponent { public bool CanCapture = true; public SerializedHash32 CaptureId; + + [Range(0, 1)] public float ViewAlignmentThreshold = 0.5f; + } + + public readonly struct CaptureRecord : IEquatable { + public readonly TabletCapturable Source; + public readonly StringHash32 Captured; + + public CaptureRecord(TabletCapturable capturable, StringHash32 captureId) { + Source = capturable; + Captured = captureId; + } + + public bool Equals(CaptureRecord other) { + return object.ReferenceEquals(Source, other.Source) + && Captured == other.Captured; + } + + public override int GetHashCode() { + return CompareUtils.GetHashCode(Source) << 5 + ^ CompareUtils.GetHashCode(Captured); + } } } \ No newline at end of file diff --git a/Assets/Code/Tablet/Photo/TabletPhotoAnimation.cs b/Assets/Code/Tablet/Photo/TabletPhotoAnimation.cs index 5fa1a07..016f0ba 100644 --- a/Assets/Code/Tablet/Photo/TabletPhotoAnimation.cs +++ b/Assets/Code/Tablet/Photo/TabletPhotoAnimation.cs @@ -48,9 +48,13 @@ private IEnumerator AnimationSequence(TabletPhotoResult result) { yield return null; yield return Offset.Offset0To(default, 0.3f).Ease(Curve.BackOut); - SuccessParticles.Play(); - - yield return 0.8f; + if (result == TabletPhotoResult.NewBehavior) { + SuccessParticles.Play(); + yield return 0.8f; + } else if (result == TabletPhotoResult.BadPhoto) { + yield return Offset.Offset1To(new Vector2(8, 0), 0.3f).Wave(Wave.Function.Cos, 4); + yield return 0.1f; + } yield return Offset.Offset0To(new Vector2(0, -400), 0.3f).Ease(Curve.QuadIn); diff --git a/Assets/Code/Tablet/Photo/TabletPhotoState.cs b/Assets/Code/Tablet/Photo/TabletPhotoState.cs index eea0fb0..4e77381 100644 --- a/Assets/Code/Tablet/Photo/TabletPhotoState.cs +++ b/Assets/Code/Tablet/Photo/TabletPhotoState.cs @@ -5,6 +5,7 @@ using FieldDay; using FieldDay.Scripting; using FieldDay.SharedState; +using Leaf.Runtime; using UnityEngine; using UnityEngine.Rendering; @@ -83,6 +84,7 @@ static public void TakePhoto(TabletHighlightable highlighted, double ts) { photoState.NextAllowedPhotoTS = ts + 2; photoState.QueuedPhoto = photoState.PhotoPool.Alloc(); photoState.QueuedPhoto.Tag = GetPhotoTag(highlighted); + HandleBehaviorCapture(highlighted); TabletUtility.PlaySfx("Tablet.Photo.Snap"); } @@ -132,5 +134,90 @@ static public string GetPhotoTag(TabletHighlightable highlightable) { return highlightable.gameObject.name; } + + static private Rect CalculatePhotoSubjectRect(TabletHighlightState highlightState, TabletHighlightable highlightable) { + return TabletUtility.CalculateViewportAlignedBoundingBox(highlightable.HighlightCollider.bounds, highlightState.LookCamera, Vector2.one); + } + + static private bool DetermineGoodFraming(Rect rect, TabletHighlightState highlightState, TabletCapturable capturable) { + if (rect.width < 0.2f || rect.height < 0.2f) { + Log.Msg("Subject width/height too small"); + return false; + } + + if ((rect.width * rect.height) < (0.25f * 0.25f)) { + Log.Msg("Subject area too small"); + return false; + } + + if (capturable && capturable.CanCapture) { + float threshold = capturable.ViewAlignmentThreshold * 2 - 1; + float dot = Vector3.Dot(highlightState.CachedLookCameraTransform.forward, capturable.transform.forward); + if (dot < threshold) { + Log.Msg("Subject not facing camera"); + return false; + } + } + + Log.Msg("Subject is framed well"); + return true; + } + + static private TabletPhotoResult HandleBehaviorCapture(TabletHighlightable highlightable) { + if (!highlightable) { + return TabletPhotoResult.Nothing; + } + + TabletCapturable cap = highlightable.CachedCapture; + TabletHighlightState highlightState = Find.State(); + Rect framing = CalculatePhotoSubjectRect(highlightState, highlightable); + + bool isBadFraming = !DetermineGoodFraming(framing, highlightState, cap); + + bool newGlobalBehavior, newUniqueBehavior, wasPerformingBehavior; + + if (!isBadFraming && cap && cap.CanCapture && !cap.CaptureId.IsEmpty) { + TabletInventory inv = Find.State(); + CaptureRecord rec = new CaptureRecord(cap, cap.CaptureId); + newGlobalBehavior = inv.GlobalCapturedBehaviors.Add(cap.CaptureId); + newUniqueBehavior = inv.CaptureRecords.Add(rec); + wasPerformingBehavior = true; + } else { + newGlobalBehavior = newUniqueBehavior = wasPerformingBehavior = false; + } + + LeafThreadHandle thread = default; + + using (var t = TempVarTable.Alloc()) { + t.ActorInfo(ScriptUtility.Actor(highlightable)); + t.Set("behaviorId", cap ? cap.CaptureId : StringHash32.Null); + t.Set("isBadFraming", isBadFraming); + t.Set("wasPerformingBehavior", wasPerformingBehavior); + + if (newGlobalBehavior) { + thread = ScriptUtility.Trigger(GameTriggers.TabletNewBehaviorCaptured, t); + } + + if (newUniqueBehavior && !thread.IsRunning()) { + thread = ScriptUtility.Trigger(GameTriggers.TabletNewBehaviorInstanceCaptured, t); + } else { + ScriptUtility.Invoke(GameTriggers.TabletNewBehaviorInstanceCaptured, t); + } + + if (!thread.IsRunning()) { + thread = ScriptUtility.Trigger(GameTriggers.TabletPhotoTaken, t); + } else { + ScriptUtility.Invoke(GameTriggers.TabletPhotoTaken, t); + } + } + + if (newGlobalBehavior) { + return TabletPhotoResult.NewBehavior; + } else if (isBadFraming && wasPerformingBehavior) { + return TabletPhotoResult.BadPhoto; + } else { + return TabletPhotoResult.GoodPhoto; + } + } } } \ No newline at end of file diff --git a/Assets/Code/Tablet/TabletInventory.cs b/Assets/Code/Tablet/TabletInventory.cs index 3ac9bc0..ea07a83 100644 --- a/Assets/Code/Tablet/TabletInventory.cs +++ b/Assets/Code/Tablet/TabletInventory.cs @@ -5,6 +5,7 @@ namespace Pennycook.Tablet { public class TabletInventory : SharedStateComponent { - public HashSet ObservedBehaviors = SetUtils.Create(32); + public HashSet GlobalCapturedBehaviors = SetUtils.Create(32); + public HashSet CaptureRecords = SetUtils.Create(32); } } \ No newline at end of file diff --git a/Assets/Code/Tablet/TabletToolData.cs b/Assets/Code/Tablet/TabletToolData.cs index 974c3b4..db40ffd 100644 --- a/Assets/Code/Tablet/TabletToolData.cs +++ b/Assets/Code/Tablet/TabletToolData.cs @@ -9,6 +9,7 @@ namespace Pennycook.Tablet { public class TabletToolDefinition { public LayerMask RaycastMask; + public float RaycastBaseDistance = 25; public float RaycastUnitConeRadius; public bool ShowReticle = true; @@ -115,7 +116,7 @@ static public class TabletToolDefinitions { }; static public readonly TabletToolDefinition Capture = new TabletToolDefinition() { - RaycastMask = TabletUtility.DefaultSearchMask, + RaycastMask = TabletUtility.CaptureSearchMask, RaycastUnitConeRadius = 0.4f, Flags = TabletToolFlags.DoNotUseHighlightBox | TabletToolFlags.InteractionDoesNotRequireHighlight diff --git a/Assets/FieldDay/Audio/AudioMgr.Cmd.cs b/Assets/FieldDay/Audio/AudioMgr.Cmd.cs index 850e8e3..864c4fa 100644 --- a/Assets/FieldDay/Audio/AudioMgr.Cmd.cs +++ b/Assets/FieldDay/Audio/AudioMgr.Cmd.cs @@ -54,12 +54,12 @@ private void FlushCommandPipe() { } case AudioCommandType.PlayClipFromName: { - Cmd_PlayFromName(cmd.Play); + Cmd_PlayFromName(m_PlayCommandPipe.Read()); break; } case AudioCommandType.PlayClipFromAssetRef: { - Cmd_PlayFromAsset(cmd.Play); + Cmd_PlayFromAsset(m_PlayCommandPipe.Read()); break; } diff --git a/Assets/FieldDay/Audio/AudioMgr.cs b/Assets/FieldDay/Audio/AudioMgr.cs index e4c6872..9468b2f 100644 --- a/Assets/FieldDay/Audio/AudioMgr.cs +++ b/Assets/FieldDay/Audio/AudioMgr.cs @@ -34,6 +34,7 @@ public struct Config { private float m_PreloadWorkerTimeSlice; private Pipe m_CommandPipe = new Pipe(128, true); + private Pipe m_PlayCommandPipe = new Pipe(64, true); private UniqueIdAllocator16 m_VoiceIdAllocator = new UniqueIdAllocator16(MaxVoices + MaxBuses); private Unsafe.ArenaHandle m_Arena; @@ -253,10 +254,13 @@ internal void QueueAudioCommand(in AudioCommand cmd) { m_CommandPipe.Write(cmd); } - internal AudioHandle QueuePlayAudioCommand(AudioCommand cmd) { + internal AudioHandle QueuePlayAudioCommand(AudioCommandType cmdType, PlayCommandData cmdData) { UniqueId16 id = m_VoiceIdAllocator.Alloc(); - cmd.Play.Handle = id; - m_CommandPipe.Write(cmd); + cmdData.Handle = id; + m_CommandPipe.Write(new AudioCommand() { + Type = cmdType + }); + m_PlayCommandPipe.Write(cmdData); return new AudioHandle(id); } diff --git a/Assets/FieldDay/Audio/Playback/AudioCommand.cs b/Assets/FieldDay/Audio/Playback/AudioCommand.cs index d5bfb75..733abc7 100644 --- a/Assets/FieldDay/Audio/Playback/AudioCommand.cs +++ b/Assets/FieldDay/Audio/Playback/AudioCommand.cs @@ -139,9 +139,9 @@ internal struct StopCommandData { internal struct FloatParamChangeCommandData { public AudioIdOrBusRef Handle; public AudioFloatPropertyType Property; + public Curve Easing; public float Target; public float Duration; - public Curve Easing; } /// @@ -166,7 +166,7 @@ internal struct ConfigVolumeChangeCommandData { [StructLayout(LayoutKind.Explicit)] internal struct AudioCommand { [FieldOffset(0)] public AudioCommandType Type; - [FieldOffset(4)] public PlayCommandData Play; + //[FieldOffset(4)] public PlayCommandData Play; [FieldOffset(4)] public PlayExistingCommandData Resume; [FieldOffset(4)] public StopCommandData Stop; [FieldOffset(4)] public FloatParamChangeCommandData FloatParam; diff --git a/Assets/FieldDay/Audio/Sfx.cs b/Assets/FieldDay/Audio/Sfx.cs index 2072b8f..22cd8be 100644 --- a/Assets/FieldDay/Audio/Sfx.cs +++ b/Assets/FieldDay/Audio/Sfx.cs @@ -8,76 +8,65 @@ static public class Sfx { #region Play static public AudioHandle Play(StringHash32 eventId) { - return Game.Audio.QueuePlayAudioCommand(new AudioCommand() { - Type = AudioCommandType.PlayClipFromName, - Play = new PlayCommandData() { + return Game.Audio.QueuePlayAudioCommand(AudioCommandType.PlayClipFromName, + new PlayCommandData() { Asset = eventId, Volume = 1, Pitch = 1, RotationOffset = Quaternion.identity, - } - }); + }); } static public AudioHandle Play(StringHash32 eventId, Transform position) { - return Game.Audio.QueuePlayAudioCommand(new AudioCommand() { - Type = AudioCommandType.PlayClipFromName, - Play = new PlayCommandData() { + return Game.Audio.QueuePlayAudioCommand(AudioCommandType.PlayClipFromName, + new PlayCommandData() { Asset = eventId, TransformOrAudioSourceId = UnityHelper.Id(position), Volume = 1, Pitch = 1, RotationOffset = Quaternion.identity, - } - }); + }); } static public AudioHandle PlayDetached(StringHash32 eventId, Transform position) { - return Game.Audio.QueuePlayAudioCommand(new AudioCommand() { - Type = AudioCommandType.PlayClipFromName, - Play = new PlayCommandData() { + return Game.Audio.QueuePlayAudioCommand(AudioCommandType.PlayClipFromName, + new PlayCommandData() { Asset = eventId, Volume = 1, Pitch = 1, TransformOffset = position.position, TransformOffsetSpace = Space.World, RotationOffset = position.rotation, - } - }); + }); } static public AudioHandle PlayDetached(StringHash32 eventId, Vector3 position, Quaternion rotation) { - return Game.Audio.QueuePlayAudioCommand(new AudioCommand() { - Type = AudioCommandType.PlayClipFromName, - Play = new PlayCommandData() { + return Game.Audio.QueuePlayAudioCommand(AudioCommandType.PlayClipFromName, + new PlayCommandData() { Asset = eventId, Volume = 1, Pitch = 1, TransformOffset = position, TransformOffsetSpace = Space.World, RotationOffset = rotation, - } - }); + }); } static public AudioHandle PlayFrom(StringHash32 eventId, AudioSource source) { - return Game.Audio.QueuePlayAudioCommand(new AudioCommand() { - Type = AudioCommandType.PlayClipFromName, - Play = new PlayCommandData() { + return Game.Audio.QueuePlayAudioCommand(AudioCommandType.PlayClipFromName, + new PlayCommandData() { Asset = eventId, TransformOrAudioSourceId = UnityHelper.Id(source), Volume = 1, Pitch = 1, RotationOffset = Quaternion.identity, Flags = AudioPlaybackFlags.UseProvidedSource - } - }); + }); } static public AudioHandle PlayFrom(StringHash32 eventId, AudioClip clipOverride, AudioSource source) { - return Game.Audio.QueuePlayAudioCommand(new AudioCommand() { - Type = AudioCommandType.PlayClipFromName, - Play = new PlayCommandData() { + return Game.Audio.QueuePlayAudioCommand(AudioCommandType.PlayClipFromName, + new PlayCommandData() { Asset = eventId, SecondaryAsset = clipOverride, TransformOrAudioSourceId = UnityHelper.Id(source), @@ -85,8 +74,7 @@ static public AudioHandle PlayFrom(StringHash32 eventId, AudioClip clipOverride, Pitch = 1, RotationOffset = Quaternion.identity, Flags = AudioPlaybackFlags.UseProvidedSource | AudioPlaybackFlags.SecondaryClipOverride - } - }); + }); } #endregion // Play diff --git a/Assets/FieldDayModules/FieldDayScripting/ScriptRuntimeState.cs b/Assets/FieldDayModules/FieldDayScripting/ScriptRuntimeState.cs index 6d201a3..5b91619 100644 --- a/Assets/FieldDayModules/FieldDayScripting/ScriptRuntimeState.cs +++ b/Assets/FieldDayModules/FieldDayScripting/ScriptRuntimeState.cs @@ -5,6 +5,7 @@ using BeauPools; using BeauRoutine; using BeauUtil; +using BeauUtil.Debugger; using BeauUtil.Tags; using BeauUtil.Variants; using FieldDay.SharedState; @@ -385,6 +386,7 @@ static public void Invoke(StringHash32 functionId, StringHash32 targetId, ILeafA foreach (var node in funcNodes) { Runtime.Plugin.Run(node, targetId, actor, vars, "Function Invokation", true); } + Log.Msg("[ScriptUtility] Invoked '{0}', {1} response(s)", functionId.ToDebugString(), funcNodes.Count.ToStringLookup()); } } @@ -414,9 +416,11 @@ static public LeafThreadHandle Trigger(StringHash32 triggerId, StringHash32 targ ScriptNode node = ScriptDBUtility.FindRandomTrigger(DB, triggerId, lookup); if (node != null) { + Log.Msg("[ScriptUtility] Triggered '{0}', found response '{1}'", triggerId.ToDebugString(), node.FullName); return Runtime.Plugin.Run(node, targetId, actor, vars, "Trigger Invokation", true); } + Log.Msg("[ScriptUtility] Triggered '{0}', no response", triggerId.ToDebugString()); return default; } diff --git a/Assets/_Assets/Animations/Adelie_Ambient.controller b/Assets/_Assets/Animations/Adelie_Ambient.controller index 8927526..7d9381d 100644 --- a/Assets/_Assets/Animations/Adelie_Ambient.controller +++ b/Assets/_Assets/Animations/Adelie_Ambient.controller @@ -163,7 +163,7 @@ AnimatorStateMachine: m_ChildStates: - serializedVersion: 1 m_State: {fileID: 103156567084986166} - m_Position: {x: 270, y: 290, z: 0} + m_Position: {x: 270, y: 270, z: 0} - serializedVersion: 1 m_State: {fileID: -5998569297969520544} m_Position: {x: 270, y: 410, z: 0} @@ -200,16 +200,16 @@ AnimatorStateMachine: - {fileID: -3608233297873307340} m_EntryTransitions: [] m_StateMachineTransitions: - - first: {fileID: -4785076514993114654} + - first: {fileID: -2569485507452647956} second: - - {fileID: -3759616206171470863} + - {fileID: 5723902573197631079} - first: {fileID: -4770127903495976945} second: - {fileID: 2496977701842914616} - {fileID: 1287500817410170758} - - first: {fileID: -2569485507452647956} + - first: {fileID: -4785076514993114654} second: - - {fileID: 5723902573197631079} + - {fileID: -3759616206171470863} m_StateMachineBehaviours: [] m_AnyStatePosition: {x: -170, y: 140, z: 0} m_EntryPosition: {x: 30, y: 300, z: 0} @@ -1269,7 +1269,8 @@ AnimatorState: m_Name: Idle - While Held m_Speed: 1 m_CycleOffset: 0 - m_Transitions: [] + m_Transitions: + - {fileID: 159655323804253807} m_StateMachineBehaviours: - {fileID: -4084910293185837195} m_Position: {x: 50, y: 50, z: 0} @@ -1463,6 +1464,12 @@ AnimatorController: m_DefaultInt: 0 m_DefaultBool: 0 m_Controller: {fileID: 9100000} + - m_Name: PlayerGripping + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} m_AnimatorLayers: - serializedVersion: 5 m_Name: NPC Penguin Actions @@ -1505,6 +1512,7 @@ AnimatorState: - {fileID: -6712240410165613688} - {fileID: 1977338022311135528} - {fileID: -4654688154826439192} + - {fileID: 2400161713850316721} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -1520,6 +1528,31 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1101 &159655323804253807 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: PlayerGripping + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 103156567084986166} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.85 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1102 &834659875200104704 AnimatorState: serializedVersion: 6 @@ -1863,6 +1896,31 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 +--- !u!1101 &2400161713850316721 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: PlayerGripping + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -2386073874084891516} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.99142855 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1109 &2496977701842914616 AnimatorTransition: m_ObjectHideFlags: 1 diff --git a/Assets/_Assets/Materials/Adelie_FarLOD.mat b/Assets/_Assets/Materials/Adelie_FarLOD.mat index 6840f33..4ad5108 100644 --- a/Assets/_Assets/Materials/Adelie_FarLOD.mat +++ b/Assets/_Assets/Materials/Adelie_FarLOD.mat @@ -8,18 +8,17 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Adelie_FarLOD - m_Shader: {fileID: 4800000, guid: e88aeddd2ef1f934d805981244872e27, type: 3} + m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: + m_ValidKeywords: [] + m_InvalidKeywords: - _HALFTONESHAPE_DOT - m_InvalidKeywords: [] m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 - m_CustomRenderQueue: 2051 - stringTagMap: - RenderType: Opaque + m_CustomRenderQueue: -1 + stringTagMap: {} disabledShaderPasses: [] m_LockedProperties: m_SavedProperties: diff --git a/Assets/_Assets/Prefabs/Penguins/Adelie.prefab b/Assets/_Assets/Prefabs/Penguins/Adelie.prefab index c2227a1..324d8e6 100644 --- a/Assets/_Assets/Prefabs/Penguins/Adelie.prefab +++ b/Assets/_Assets/Prefabs/Penguins/Adelie.prefab @@ -1936,6 +1936,81 @@ MonoBehaviour: Label: m_Source: LShoulder m_HashValue: 2946264223 +--- !u!1 &6960951379262100677 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4264499061263938045} + - component: {fileID: 8724727691476569735} + - component: {fileID: 4727661312287980372} + m_Layer: 22 + m_Name: CloseProximity + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4264499061263938045 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6960951379262100677} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.5, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6641921480938123477} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!135 &8724727691476569735 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6960951379262100677} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 1 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 3 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &4727661312287980372 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6960951379262100677} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb387d5604852e24d9c47006aeb957ae, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Id: 0 + m_Collider: {fileID: 8724727691476569735} + m_TrackOccupants: 1 + m_FilterEventMask: 3 + m_LayerMaskFilter: + serializedVersion: 2 + m_Bits: 196608 + m_CompareTagFilters: [] + m_NameFilter: --- !u!1 &7011459836879988754 GameObject: m_ObjectHideFlags: 0 @@ -2402,15 +2477,15 @@ PrefabInstance: m_Modifications: - target: {fileID: -8911989940841062787, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: -55.556015 + value: -70.4911 objectReference: {fileID: 0} - target: {fileID: -8911989940841062787, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: -172.48595 + value: -125.312965 objectReference: {fileID: 0} - target: {fileID: -8911989940841062787, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: 42.34835 + value: -27.150002 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalScale.x @@ -2470,15 +2545,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -8676472403432649417, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: 16.974564 + value: 37.87371 objectReference: {fileID: 0} - target: {fileID: -8676472403432649417, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: 2.0934632 + value: 1.4815754 objectReference: {fileID: 0} - target: {fileID: -8676472403432649417, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: 1.3577582 + value: 2.5828204 objectReference: {fileID: 0} - target: {fileID: -8086490209721683965, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -2494,27 +2569,27 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -7859402954907697552, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: 13.695691 + value: 14.438594 objectReference: {fileID: 0} - target: {fileID: -7859402954907697552, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: -4.236882 + value: 8.072604 objectReference: {fileID: 0} - target: {fileID: -7859402954907697552, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: 42.495064 + value: 50.03437 objectReference: {fileID: 0} - target: {fileID: -7439101370836416131, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: -0.1818305 + value: 70.79716 objectReference: {fileID: 0} - target: {fileID: -7439101370836416131, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: 179.95473 + value: -178.75896 objectReference: {fileID: 0} - target: {fileID: -7439101370836416131, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: -179.39699 + value: -178.7197 objectReference: {fileID: 0} - target: {fileID: -6737793027575513618, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -2538,27 +2613,27 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -4214318982528925293, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: -23.99212 + value: -72.775536 objectReference: {fileID: 0} - target: {fileID: -4214318982528925293, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: 11.937445 + value: -12.928348 objectReference: {fileID: 0} - target: {fileID: -4214318982528925293, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: -128.27316 + value: -153.87074 objectReference: {fileID: 0} - target: {fileID: -3025171350324769992, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: 17.258413 + value: 17.260645 objectReference: {fileID: 0} - target: {fileID: -3025171350324769992, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: -46.097923 + value: -45.980976 objectReference: {fileID: 0} - target: {fileID: -3025171350324769992, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: -21.716112 + value: -21.701035 objectReference: {fileID: 0} - target: {fileID: -2934531218488667772, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -2610,27 +2685,27 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -1813862063976585128, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: -62.40953 + value: -56.86594 objectReference: {fileID: 0} - target: {fileID: -1813862063976585128, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: 158.81232 + value: -125.82197 objectReference: {fileID: 0} - target: {fileID: -1813862063976585128, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: -148.55516 + value: 141.01706 objectReference: {fileID: 0} - target: {fileID: -1458724241994069049, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: -31.61663 + value: 21.851978 objectReference: {fileID: 0} - target: {fileID: -1458724241994069049, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: -23.361328 + value: -11.233619 objectReference: {fileID: 0} - target: {fileID: -1458724241994069049, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: 11.907362 + value: -1.9353337 objectReference: {fileID: 0} - target: {fileID: -892177315674091447, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_IsActive @@ -2642,15 +2717,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -539801776716444629, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: -19.963774 + value: -72.22804 objectReference: {fileID: 0} - target: {fileID: -539801776716444629, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: -34.222782 + value: 15.73161 objectReference: {fileID: 0} - target: {fileID: -539801776716444629, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: 127.5575 + value: 156.51103 objectReference: {fileID: 0} - target: {fileID: 735273539004495407, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -2666,15 +2741,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 761827277008664290, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: 26.947792 + value: 25.34005 objectReference: {fileID: 0} - target: {fileID: 761827277008664290, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: -0.5466727 + value: -15.227222 objectReference: {fileID: 0} - target: {fileID: 761827277008664290, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: -35.108704 + value: -49.17557 objectReference: {fileID: 0} - target: {fileID: 919132149155446097, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_Name @@ -2738,27 +2813,27 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1981652047905141802, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: -61.309353 + value: -66.27682 objectReference: {fileID: 0} - target: {fileID: 1981652047905141802, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: 162.18842 + value: 110.70684 objectReference: {fileID: 0} - target: {fileID: 1981652047905141802, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: -26.572138 + value: 41.019154 objectReference: {fileID: 0} - target: {fileID: 3097792417043474057, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: 8.151597 + value: 11.12381 objectReference: {fileID: 0} - target: {fileID: 3097792417043474057, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: 7.8443146 + value: 2.7551181 objectReference: {fileID: 0} - target: {fileID: 3097792417043474057, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: -2.4690278 + value: -0.4437318 objectReference: {fileID: 0} - target: {fileID: 3098587491907189107, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -2830,15 +2905,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6304111739704764178, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: -63.582684 + value: -62.857666 objectReference: {fileID: 0} - target: {fileID: 6304111739704764178, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: 141.00821 + value: 141.8696 objectReference: {fileID: 0} - target: {fileID: 6304111739704764178, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: -150.10571 + value: -151.1035 objectReference: {fileID: 0} - target: {fileID: 6570607931764579523, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -2902,15 +2977,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 9144880352699136564, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: -16.133314 + value: 17.6093 objectReference: {fileID: 0} - target: {fileID: 9144880352699136564, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: -1.5247544 + value: -1.781785 objectReference: {fileID: 0} - target: {fileID: 9144880352699136564, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: 2.0798154 + value: -0.18243296 objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] @@ -2924,6 +2999,9 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: -8679921383154817045, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} insertIndex: -1 addedObject: {fileID: 3724036477942380258} + - targetCorrespondingSourceObject: {fileID: -8679921383154817045, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} + insertIndex: -1 + addedObject: {fileID: 4264499061263938045} - targetCorrespondingSourceObject: {fileID: -539801776716444629, guid: 66c90614ba79edd47b082c9d000b85b6, type: 3} insertIndex: -1 addedObject: {fileID: 5780785808713267076} diff --git a/Assets/_Assets/Textures/Skybox/Skybox pngs/Sky_deep.png.meta b/Assets/_Assets/Textures/Skybox/Skybox pngs/Sky_deep.png.meta index 7807332..cde4b4a 100644 --- a/Assets/_Assets/Textures/Skybox/Skybox pngs/Sky_deep.png.meta +++ b/Assets/_Assets/Textures/Skybox/Skybox pngs/Sky_deep.png.meta @@ -72,8 +72,8 @@ TextureImporter: maxTextureSize: 512 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 + textureCompression: 2 + compressionQuality: 100 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 diff --git a/Assets/_Assets/Textures/Skybox/Skybox pngs/Sky_neutral.png.meta b/Assets/_Assets/Textures/Skybox/Skybox pngs/Sky_neutral.png.meta index d773e44..a61258e 100644 --- a/Assets/_Assets/Textures/Skybox/Skybox pngs/Sky_neutral.png.meta +++ b/Assets/_Assets/Textures/Skybox/Skybox pngs/Sky_neutral.png.meta @@ -72,8 +72,8 @@ TextureImporter: maxTextureSize: 512 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 + textureCompression: 2 + compressionQuality: 100 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 diff --git a/ProjectSettings/DynamicsManager.asset b/ProjectSettings/DynamicsManager.asset index b7b4dbe..6a1fd7d 100644 --- a/ProjectSettings/DynamicsManager.asset +++ b/ProjectSettings/DynamicsManager.asset @@ -18,7 +18,7 @@ PhysicsManager: m_ClothInterCollisionDistance: 0 m_ClothInterCollisionStiffness: 0 m_ContactsGeneration: 1 - m_LayerCollisionMatrix: d91ce73f0000e33f081ce33fdd1fe73fd91ce33f0000e03fd91ce53fd91cef3f081ce73f081ce73fdd1fe73fdd1fe73fdd1fe73f0040e03f0020e03f0000e03fdf1fe37f9f1ff77fc91fe63f8000e03f0000e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000f33f0000e03f + m_LayerCollisionMatrix: d91c871f0000831f081c831fdd1f871fd91c831f0000801fd91cc51fd91c8f1f081c871f081c871fdd1f871fdd1f871fdd1f871f0040c01f0020801f0000801fdf1fc35f9f1fd75fc91f861f8000801f0000825f0000801f4020831fffffffffffffffffffffffffffffffffffffffffffffffff0000801f0000931f0000801f m_SimulationMode: 0 m_AutoSyncTransforms: 0 m_ReuseCollisionCallbacks: 1 diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 0110784..f8df7a8 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -26,8 +26,8 @@ TagManager: - Countable - SocketVolume - ParticleAvoid - - - - + - CaptureOnly + - PenguinSensor - - -