4 Commits

Author SHA1 Message Date
Jan Groß
f511f2bbbf Platform movement and elimination zones
Adds scripts for moving any object up/down, left/right or  forwards/backwars and eliminating the player.
2018-09-01 20:49:43 +02:00
Jan Groß
c073f272f6 Merge pull request #4 from JanGross/light_lurch
Merge LightLurch with master
2018-09-01 18:59:10 +02:00
Jan Groß
dd04175beb Merge pull request #3 from JanGross/mating
Merge mating with master
2018-09-01 18:58:43 +02:00
Jan Groß
9da1f82f20 LightLurch ability
Makes the lurch glow.
Can increase and decrease light as well as emission if the special "LightUp" ability is used.
2018-09-01 17:30:37 +02:00
16 changed files with 3062 additions and 2 deletions

View File

@@ -9,7 +9,7 @@ Material:
m_Name: Lurch
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_LightmapFlags: 6
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1

View File

@@ -21,7 +21,7 @@ GameObject:
- component: {fileID: 4211561106277860}
m_Layer: 0
m_Name: Lurch
m_TagString: Untagged
m_TagString: Player
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
@@ -35,6 +35,9 @@ GameObject:
m_Component:
- component: {fileID: 4349673492578080}
- component: {fileID: 114123996009525022}
- component: {fileID: 114729016115082176}
- component: {fileID: 114557432824313468}
- component: {fileID: 114003328164428386}
m_Layer: 0
m_Name: CameraHolder
m_TagString: Untagged
@@ -71,6 +74,7 @@ GameObject:
- component: {fileID: 23689017160285550}
- component: {fileID: 65346116814365424}
- component: {fileID: 54155385480013682}
- component: {fileID: 108062020484346290}
m_Layer: 0
m_Name: LurchTest
m_TagString: Untagged
@@ -249,6 +253,63 @@ AudioListener:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1444907702125456}
m_Enabled: 1
--- !u!108 &108062020484346290
Light:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1462012476334488}
m_Enabled: 1
serializedVersion: 8
m_Type: 2
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 5
m_Range: 20
m_SpotAngle: 30
m_CookieSize: 10
m_Shadows:
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Lightmapping: 4
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!114 &114003328164428386
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1444832767951054}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 167337a6a977deb408440dbf31acb6c9, type: 3}
m_Name:
m_EditorClassIdentifier:
respawnPoints:
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
lowerBounds: {fileID: 0}
lurch: {fileID: 1462012476334488}
UpdateFrequenzy: 15
maxFallDist: 25
respawnKey: 114
--- !u!114 &114123996009525022
MonoBehaviour:
m_ObjectHideFlags: 1
@@ -275,3 +336,51 @@ MonoBehaviour:
cooldown: 0
canGlide: 0
glideForce: 3
--- !u!114 &114557432824313468
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1444832767951054}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b614d5a678d653549b924deec5548458, type: 3}
m_Name:
m_EditorClassIdentifier:
standardRadius: 20
standardIntensity: 5
tinyRadius: 7
tinyIntensity: 4
maxRadius: 150
maxIntensity: 6
emissionMultiplier: 1
maxEmission: 1.5
minEmission: 0.25
baseEmission: 0.5
triggerButton: 102
litDuration: 4
unLitDuration: 3
animationSpeed: 1
state: 0
t: 0
ldCounter: 0
--- !u!114 &114729016115082176
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1444832767951054}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 167337a6a977deb408440dbf31acb6c9, type: 3}
m_Name:
m_EditorClassIdentifier:
respawnPoints:
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
lowerBounds: {fileID: 0}
lurch: {fileID: 1462012476334488}
UpdateFrequenzy: 15
maxFallDist: 25
respawnKey: 114

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b5f8c6ef1eb4bb846a5380eaf975ffa7
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1335
Assets/Scenes/TrapTest.unity Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f943a26ce31cdd0429005d7a84195b1a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,131 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LightLurch : MonoBehaviour {
private enum states { standard, lit, unlit }
[Header("Distances")]
[SerializeField]
private float standardRadius, standardIntensity;
[SerializeField]
private float tinyRadius, tinyIntensity;
[SerializeField]
private float maxRadius, maxIntensity;
[Header("Emission")]
[SerializeField]
private float emissionMultiplier = 1;
private float emissionValue;
[SerializeField]
private float maxEmission, minEmission, baseEmission = 1;
private float intensitySnapshot;
private Light lightSource;
private Renderer lurchRenderer;
[SerializeField]
private KeyCode triggerButton;
[SerializeField]
private float litDuration;
[SerializeField]
private float unLitDuration;
[SerializeField]
private float animationSpeed;
[Header("Debug")]
[SerializeField]
private states state;
[SerializeField]
private float t = 0;
[SerializeField]
private float ldCounter;
private float llCounter;
// Use this for initialization
void Start () {
state = states.standard;
GameObject lurch = GetComponent<LurchMovement>().theLurch.gameObject;
lightSource = lurch.GetComponent<Light>();
lurchRenderer = lurch.GetComponent<Renderer>();
lightSource.color = lurchRenderer.material.GetColor("_Color");
intensitySnapshot = lightSource.intensity;
lurchRenderer.material.SetColor("_EmissionColor", lightSource.color * (emissionMultiplier * emissionValue));
emissionValue = baseEmission;
lurchRenderer.material.EnableKeyword("_EMISSION");
}
// Update is called once per frame
void Update () {
t += Time.deltaTime * animationSpeed;
lurchRenderer.material.SetColor("_EmissionColor", lightSource.color * (emissionMultiplier * emissionValue));
switch (state)
{
case states.standard:
StandardGlow();
break;
case states.lit:
LightUp();
break;
case states.unlit:
GlowLow();
break;
}
if (Input.GetKeyDown(triggerButton) && state == states.standard)
{
t = 0;
ldCounter = litDuration;
llCounter = animationSpeed;
state = states.lit;
}
}
private void StandardGlow()
{
lightSource.intensity = Mathf.Lerp(tinyIntensity, standardIntensity, t);
lightSource.range = Mathf.Lerp(tinyRadius, standardRadius, t);
emissionValue = Mathf.Lerp(minEmission, baseEmission, t);
}
private void LightUp()
{
lightSource.intensity = Mathf.Lerp(standardIntensity, maxIntensity, t);
lightSource.range = Mathf.Lerp(standardRadius, maxRadius, t);
emissionValue = Mathf.Lerp(baseEmission, maxEmission, t);
if (ldCounter <= 0)
{
t = 0;
state = states.unlit;
ldCounter = unLitDuration;
llCounter = animationSpeed;
return;
}
ldCounter -= Time.deltaTime;
}
private void GlowLow()
{
lightSource.intensity = Mathf.Lerp(maxIntensity, tinyIntensity, t);
lightSource.range = Mathf.Lerp(maxRadius, tinyRadius, t);
emissionValue = Mathf.Lerp(maxEmission, minEmission, t);
if (llCounter <= 0)
{
if (ldCounter <= 0)
{
t = 0;
state = states.standard;
llCounter = animationSpeed;
return;
}
ldCounter -= Time.deltaTime;
}
llCounter -= Time.deltaTime;
}
}

View File

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

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a972842cd67bc904a93eac69a3331151
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,92 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Movement : MonoBehaviour {
[System.Serializable]
class MovementDirection
{
[SerializeField]
private bool enabled = false;
[SerializeField]
private enum Direction { Left_Right, Up_Down, Fwd_Bkw }
[SerializeField]
private Direction direction;
[SerializeField]
private bool loop = false;
[SerializeField]
private bool goBack = false;
[SerializeField]
private float distance = 100;
[SerializeField]
private float speed = 0;
[SerializeField]
private float dist;
private Vector3 initialPosition;
public void SetInitialPosition(Vector3 initPos)
{
initialPosition = initPos;
}
public Vector3 Move(Vector3 dirIn)
{
int dir = (int)direction;
Vector3 dirOut = dirIn;
enabled = loop ? true : enabled;
if (enabled)
{
dist = initialPosition[dir] - dirOut[dir];
if (goBack)
{
dirOut[dir] += speed * Time.deltaTime;
}
else
{
dirOut[dir] -= speed * Time.deltaTime;
}
if (dist > distance && !goBack)
{
if (loop)
{
goBack = true;
}
else
{
enabled = false;
}
}
else if (dist <= 0)
{
goBack = false;
}
}
return dirOut;
}
}
[SerializeField]
private List<MovementDirection> directions;
// Use this for initialization
void Start () {
foreach (MovementDirection direction in directions)
{
direction.SetInitialPosition(transform.position);
}
}
// Update is called once per frame
void Update () {
foreach ( MovementDirection direction in directions)
{
transform.position = direction.Move(transform.position);
}
}
}

View File

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

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b8b7c82b907af1c45a4d5abd120ab492
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,63 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DarkAmbience : MonoBehaviour {
private float defaultEnvLightingIntensity, defaultEnfReflectionIntensity;
[SerializeField]
private float targetEnvLightingIntensity, targetEnfReflectionIntensity;
[SerializeField]
private float lerpSpeed;
[SerializeField]
private bool isDark = false;
private float t = 0;
// Use this for initialization
void Start () {
defaultEnvLightingIntensity = RenderSettings.ambientIntensity;
defaultEnfReflectionIntensity = RenderSettings.reflectionIntensity;
}
public void SwitchDarkness(bool dark)
{
isDark = dark;
t = 0;
}
private void OnValidate()
{
t = 0;
}
private void OnTriggerEnter(Collider other)
{
if(other.transform.root.tag == "Player")
{
SwitchDarkness(true);
}
}
private void OnTriggerExit(Collider other)
{
if (other.transform.root.tag == "Player")
{
SwitchDarkness(false);
}
}
// Update is called once per frame
void Update () {
if(isDark)
{
RenderSettings.ambientIntensity = Mathf.Lerp(defaultEnvLightingIntensity, targetEnvLightingIntensity, t);
RenderSettings.reflectionIntensity = Mathf.Lerp(defaultEnfReflectionIntensity, targetEnfReflectionIntensity, t);
}
else
{
RenderSettings.ambientIntensity = Mathf.Lerp(targetEnvLightingIntensity, defaultEnvLightingIntensity, t);
RenderSettings.reflectionIntensity = Mathf.Lerp(targetEnfReflectionIntensity, defaultEnfReflectionIntensity , t);
}
t += Time.deltaTime * lerpSpeed;
}
}

View File

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

View File

@@ -0,0 +1,50 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EliminatePlayer : MonoBehaviour {
[SerializeField]
private string name = "Generic trap";
[SerializeField]
private float resapwnDelay = 0;
[Tooltip("Optional particle effect. Spawned when player enters the trigger")]
[SerializeField]
private GameObject effect;
[SerializeField]
private LurchRespawn player;
[SerializeField]
private bool killQueued = false;
[SerializeField]
private float rdCounter = 0;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (rdCounter <= 0 && killQueued)
{
player.RespawnLurch(name);
killQueued = false;
} else
{
rdCounter -= Time.deltaTime;
}
}
private void OnTriggerEnter(Collider other)
{
if (other.transform.root.tag == "Player")
{
rdCounter = resapwnDelay;
killQueued = true;
if(effect != null)
{
GameObject.Instantiate(effect);
}
}
}
}

View File

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