added unseen event triggers

This commit is contained in:
cyndrdev 2021-05-14 20:38:03 +01:00
parent 50cb54ff02
commit a5869fc16c
4 changed files with 940 additions and 624 deletions

File diff suppressed because it is too large Load Diff

View File

@ -9977,6 +9977,49 @@ Transform:
m_Father: {fileID: 8657027507187293339}
m_RootOrder: 10
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &6194745904862817580
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4120508371854579886}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1288062ae3320c745a7e22cb010b5a18, type: 3}
m_Name:
m_EditorClassIdentifier:
_minDistance: 2
_minAngle: 90
_onUnseen:
game: {fileID: 0}
unity:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 4537531520206852677}
m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine
m_MethodName: SetActive
m_Mode: 6
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
- m_Target: {fileID: 2751226988317436797}
m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine
m_MethodName: SetActive
m_Mode: 6
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 1
m_CallState: 2
--- !u!1 &4129113587935299500
GameObject:
m_ObjectHideFlags: 0
@ -17489,6 +17532,10 @@ PrefabInstance:
propertyPath: m_Enabled
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2392897904615731006, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: m_LocalPosition.x
value: 12.901
objectReference: {fileID: 0}
- target: {fileID: 2459802978564044541, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: m_RootOrder
value: 1
@ -17565,6 +17612,34 @@ PrefabInstance:
propertyPath: m_LocalPosition.z
value: -0.22
objectReference: {fileID: 0}
- target: {fileID: 3414209630566660394, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: _onEnter.unity.m_PersistentCalls.m_Calls.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3414209630566660394, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: _onEnter.unity.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3414209630566660394, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: _onEnter.unity.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
objectReference: {fileID: 6194745904862817580}
- target: {fileID: 3414209630566660394, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: _onEnter.unity.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3414209630566660394, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: _onEnter.unity.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: Disarm
objectReference: {fileID: 0}
- target: {fileID: 3414209630566660394, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: _onEnter.unity.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
value: Ktyl.Util.UnseenEventTrigger, Assembly-CSharp
objectReference: {fileID: 0}
- target: {fileID: 3414209630566660394, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: _onEnter.unity.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3716559117116650351, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: m_LocalPosition.x
value: -23.12
@ -17641,11 +17716,39 @@ PrefabInstance:
propertyPath: m_Enabled
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9087919151360837285, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: _onEnter.unity.m_PersistentCalls.m_Calls.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 9087919151360837285, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: _onEnter.unity.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
value: 1
objectReference: {fileID: 0}
- target: {fileID: 9087919151360837285, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: _onEnter.unity.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
objectReference: {fileID: 6194745904862817580}
- target: {fileID: 9087919151360837285, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: _onEnter.unity.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 9087919151360837285, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: _onEnter.unity.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: Arm
objectReference: {fileID: 0}
- target: {fileID: 9087919151360837285, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: _onEnter.unity.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
value: Ktyl.Util.UnseenEventTrigger, Assembly-CSharp
objectReference: {fileID: 0}
- target: {fileID: 9087919151360837285, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
propertyPath: _onEnter.unity.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
--- !u!4 &4537531520206852678 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 2459802978564044541, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
--- !u!1 &4120508371854579886 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 2734962257757404181, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
m_PrefabInstance: {fileID: 2079102987037353147}
m_PrefabAsset: {fileID: 0}
--- !u!1 &4537531520206852677 stripped
@ -17658,6 +17761,11 @@ Transform:
m_CorrespondingSourceObject: {fileID: 2459802978197217342, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
m_PrefabInstance: {fileID: 2079102987037353147}
m_PrefabAsset: {fileID: 0}
--- !u!4 &4537531520206852678 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 2459802978564044541, guid: 539c60fd7808c9f479250b070d605c38, type: 3}
m_PrefabInstance: {fileID: 2079102987037353147}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &2154871241319455167
PrefabInstance:
m_ObjectHideFlags: 0
@ -18656,16 +18764,16 @@ Transform:
m_CorrespondingSourceObject: {fileID: 1461349035242361838, guid: bc071165ad2d3c14288cf13ac0ff6537, type: 3}
m_PrefabInstance: {fileID: 2586681477197472527}
m_PrefabAsset: {fileID: 0}
--- !u!4 &1170184303236858142 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 3735992582968959505, guid: bc071165ad2d3c14288cf13ac0ff6537, type: 3}
m_PrefabInstance: {fileID: 2586681477197472527}
m_PrefabAsset: {fileID: 0}
--- !u!4 &1170184304258922646 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 3735992581812067225, guid: bc071165ad2d3c14288cf13ac0ff6537, type: 3}
m_PrefabInstance: {fileID: 2586681477197472527}
m_PrefabAsset: {fileID: 0}
--- !u!4 &1170184303236858142 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 3735992582968959505, guid: bc071165ad2d3c14288cf13ac0ff6537, type: 3}
m_PrefabInstance: {fileID: 2586681477197472527}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &2586681477597724647
PrefabInstance:
m_ObjectHideFlags: 0
@ -18675,7 +18783,7 @@ PrefabInstance:
m_Modifications:
- target: {fileID: 6613058589454542448, guid: 9dc0ffd7f5e4855429cfdf90601da8ce, type: 3}
propertyPath: m_LocalPosition.x
value: 10.805763
value: 10.80577
objectReference: {fileID: 0}
- target: {fileID: 6613058589454542448, guid: 9dc0ffd7f5e4855429cfdf90601da8ce, type: 3}
propertyPath: m_LocalPosition.y
@ -18683,7 +18791,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 6613058589454542448, guid: 9dc0ffd7f5e4855429cfdf90601da8ce, type: 3}
propertyPath: m_LocalPosition.z
value: 7.484809
value: 7.4848127
objectReference: {fileID: 0}
- target: {fileID: 6613058589454542451, guid: 9dc0ffd7f5e4855429cfdf90601da8ce, type: 3}
propertyPath: editorData._bezierPath.points.Array.data[0].x
@ -20018,16 +20126,16 @@ PrefabInstance:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 2784d88b6334dc143a910f3d252aa5df, type: 3}
--- !u!4 &3882838201459745148 stripped
Transform:
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 2784d88b6334dc143a910f3d252aa5df, type: 3}
m_PrefabInstance: {fileID: 3632194575318009495}
m_PrefabAsset: {fileID: 0}
--- !u!1 &4515224116292451270 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 2784d88b6334dc143a910f3d252aa5df, type: 3}
m_PrefabInstance: {fileID: 3632194575318009495}
m_PrefabAsset: {fileID: 0}
--- !u!4 &3882838201459745148 stripped
Transform:
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 2784d88b6334dc143a910f3d252aa5df, type: 3}
m_PrefabInstance: {fileID: 3632194575318009495}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &3716639497179111755
PrefabInstance:
m_ObjectHideFlags: 0

View File

@ -0,0 +1,85 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
namespace Ktyl.Util
{
public class UnseenEventTrigger : MonoBehaviour
{
[System.Serializable]
private struct Event
{
public GameEvent game;
public UnityEvent unity;
public void Raise()
{
if (game) game.Raise();
unity.Invoke();
}
}
[SerializeField]
private float _minDistance = 2f;
[SerializeField]
[Range(0f, 180f)]
private float _minAngle = 90.0f;
[SerializeField] private Event _onUnseen;
private bool _isArmed = false;
private Camera _camera;
public void Disarm()
{
_isArmed = false;
}
public void Arm()
{
_isArmed = true;
}
private void Update()
{
if ( !_isArmed )
return;
if ( !IsUnseen() )
return;
_onUnseen.Raise();
_isArmed = false;
}
private bool IsUnseen()
{
// lazy init camera
if ( _camera == null )
{
_camera = Camera.main;
}
var camDiff = transform.position - _camera.transform.position;
// distance check
if ( camDiff.sqrMagnitude < _minDistance * _minDistance )
{
// too close!
return false;
}
// angle check
float angleDiff = Vector3.Angle( camDiff.normalized, _camera.transform.forward );
if ( angleDiff < _minAngle )
{
return false;
}
return true;
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 1288062ae3320c745a7e22cb010b5a18
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: