Remove tree associated scripts & data from content folder
This commit is contained in:
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 17fb461fd5fee6f43ab36d97484f46f7
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
%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: 84c706bc73fc93344972b30d598a0b81, type: 3}
|
|
||||||
m_Name: DefaultDitherFade
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
verticalOffset: 0.75
|
|
||||||
cameraDistanceRange: {x: 1, y: 35}
|
|
||||||
hideRadiusRange: {x: 0.92, y: 0.42}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: cddf83aa7585c1a4a8a34e8383f52f44
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 11400000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,127 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace Toria.Game
|
|
||||||
{
|
|
||||||
[RequireComponent(typeof(CapsuleCollider))]
|
|
||||||
public class DitherFade : MonoBehaviour
|
|
||||||
{
|
|
||||||
public DitherFadeSettings settings;
|
|
||||||
public List<Renderer> targetRenderers;
|
|
||||||
public bool makeShadowClones = true;
|
|
||||||
|
|
||||||
[NonSerialized]
|
|
||||||
List<Material> fadeMaterials;
|
|
||||||
|
|
||||||
static RPGController player = null;
|
|
||||||
static new Camera camera = null;
|
|
||||||
|
|
||||||
[NonSerialized]
|
|
||||||
bool shouldHide = false;
|
|
||||||
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
fadeMaterials = new List<Material>();
|
|
||||||
|
|
||||||
foreach (Renderer renderer in targetRenderers)
|
|
||||||
{
|
|
||||||
if (makeShadowClones)
|
|
||||||
MakeShadowClone(renderer);
|
|
||||||
|
|
||||||
Material[] mats = renderer.sharedMaterials.Select(m => Instantiate(m)).ToArray();
|
|
||||||
renderer.sharedMaterials = mats;
|
|
||||||
fadeMaterials.AddRange(mats);
|
|
||||||
}
|
|
||||||
|
|
||||||
//TEMPORARY before finding a better solution for raycasts to ignore tree (whether or not entities)
|
|
||||||
if (GetComponentInParent<EntityData>())
|
|
||||||
return;
|
|
||||||
|
|
||||||
foreach (Collider collider in GetComponentsInChildren<Collider>())
|
|
||||||
collider.gameObject.layer = LayerMask.NameToLayer("Ignore Raycast");
|
|
||||||
}
|
|
||||||
|
|
||||||
void MakeShadowClone(Renderer renderer)
|
|
||||||
{
|
|
||||||
if (!renderer.TryGetComponent(out MeshFilter filter))
|
|
||||||
return;
|
|
||||||
|
|
||||||
GameObject shadowClone = new GameObject("Shadow clone");
|
|
||||||
|
|
||||||
shadowClone.transform.SetParent(renderer.transform);
|
|
||||||
shadowClone.transform.SetLocalPositionAndRotation(Vector3.zero, Quaternion.identity);
|
|
||||||
shadowClone.transform.localScale = Vector3.one;
|
|
||||||
|
|
||||||
MeshRenderer shadowRenderer = shadowClone.AddComponent<MeshRenderer>();
|
|
||||||
MeshFilter shadowFilter = shadowClone.AddComponent<MeshFilter>();
|
|
||||||
|
|
||||||
shadowRenderer.sharedMaterials = renderer.sharedMaterials;
|
|
||||||
shadowRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.ShadowsOnly;
|
|
||||||
|
|
||||||
shadowFilter.sharedMesh = filter.sharedMesh;
|
|
||||||
|
|
||||||
foreach (Component comp in shadowClone.GetComponents<Component>())
|
|
||||||
{
|
|
||||||
if (comp is not MeshRenderer && comp is not MeshFilter && comp is not Transform)
|
|
||||||
Destroy(comp);
|
|
||||||
}
|
|
||||||
renderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
if (!player)
|
|
||||||
player = FindAnyObjectByType<RPGController>();
|
|
||||||
|
|
||||||
if (shouldHide)
|
|
||||||
{
|
|
||||||
Vector2 viewPortPoint = camera.WorldToViewportPoint(player.transform.position + Vector3.up * settings.verticalOffset);
|
|
||||||
float hideRadius = settings.GetHideRadius(player.transform, camera.transform);
|
|
||||||
|
|
||||||
foreach (Material mat in fadeMaterials)
|
|
||||||
{
|
|
||||||
mat.SetVector("_PlayerPosition", viewPortPoint);
|
|
||||||
mat.SetFloat("_HideRadius", hideRadius);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!camera)
|
|
||||||
camera = Camera.main;
|
|
||||||
|
|
||||||
if (!player || !camera)
|
|
||||||
return;
|
|
||||||
|
|
||||||
Vector3 playerPos = player.transform.position + Vector3.up;
|
|
||||||
Vector3 cameraPos = camera.transform.position;
|
|
||||||
|
|
||||||
Vector3 rayDir = (playerPos - cameraPos).normalized;
|
|
||||||
|
|
||||||
//move back the origin point so the raycast doesn't start from within a tree collider
|
|
||||||
RaycastHit[] hits = Physics.RaycastAll(cameraPos + rayDir * -100f, rayDir, float.PositiveInfinity, 1 << gameObject.layer, QueryTriggerInteraction.Collide);
|
|
||||||
|
|
||||||
for (int i = 0; i < hits.Length; i++)
|
|
||||||
{
|
|
||||||
if (hits[i].collider.gameObject == gameObject)
|
|
||||||
{
|
|
||||||
SetCutoutEnabled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SetCutoutEnabled(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetCutoutEnabled(bool enabled)
|
|
||||||
{
|
|
||||||
if (shouldHide == enabled)
|
|
||||||
return;
|
|
||||||
|
|
||||||
shouldHide = enabled;
|
|
||||||
|
|
||||||
foreach (Material mat in fadeMaterials)
|
|
||||||
mat.SetFloat("_ShouldHide", enabled ? 1 : 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 2dcaa5393f14a8846841c6152807c45c
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences:
|
|
||||||
- settings: {fileID: 11400000, guid: cddf83aa7585c1a4a8a34e8383f52f44, type: 2}
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace Toria.Game
|
|
||||||
{
|
|
||||||
[CreateAssetMenu(menuName = "Toria/VFX/DitherFadeSettings")]
|
|
||||||
public class DitherFadeSettings : ScriptableObject
|
|
||||||
{
|
|
||||||
public float verticalOffset;
|
|
||||||
public Vector2 cameraDistanceRange;
|
|
||||||
public Vector2 hideRadiusRange;
|
|
||||||
|
|
||||||
public float GetHideRadius(Transform player, Transform camera)
|
|
||||||
{
|
|
||||||
float normalizedDist = Mathf.InverseLerp(cameraDistanceRange.x, cameraDistanceRange.y, Vector3.Distance(player.position, camera.position));
|
|
||||||
return Mathf.Lerp(hideRadiusRange.x, hideRadiusRange.y, normalizedDist);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 84c706bc73fc93344972b30d598a0b81
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,132 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.Rendering;
|
|
||||||
|
|
||||||
[RequireComponent(typeof(CapsuleCollider))]
|
|
||||||
public class LeavesHiding : MonoBehaviour
|
|
||||||
{
|
|
||||||
public Material invisibleMaterial;
|
|
||||||
|
|
||||||
Dictionary<MeshRenderer, (Material[], Material[])> matLists = new Dictionary<MeshRenderer, (Material[], Material[])>();
|
|
||||||
HashSet<MeshRenderer> singleMatLeavesMeshes = new HashSet<MeshRenderer>();
|
|
||||||
|
|
||||||
static RPGController player = null;
|
|
||||||
static new Camera camera = null;
|
|
||||||
static int ignoreRaycastLayer = -1;
|
|
||||||
|
|
||||||
private void Awake()
|
|
||||||
{
|
|
||||||
if (ignoreRaycastLayer == -1)
|
|
||||||
ignoreRaycastLayer = LayerMask.NameToLayer("Ignore Raycast");
|
|
||||||
}
|
|
||||||
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
foreach (Collider collider in GetComponents<Collider>())
|
|
||||||
collider.isTrigger = true;
|
|
||||||
|
|
||||||
LODGroup lodGroup = GetComponentInChildren<LODGroup>();
|
|
||||||
|
|
||||||
foreach (MeshRenderer renderer in GetComponentsInChildren<MeshRenderer>(true))
|
|
||||||
{
|
|
||||||
MeshRenderer newRenderer = Instantiate(renderer.gameObject, renderer.transform.parent, true).GetComponent<MeshRenderer>();
|
|
||||||
newRenderer.shadowCastingMode = ShadowCastingMode.ShadowsOnly;
|
|
||||||
renderer.shadowCastingMode = ShadowCastingMode.Off;
|
|
||||||
|
|
||||||
if (!lodGroup)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
LOD[] lods = lodGroup.GetLODs();
|
|
||||||
|
|
||||||
for (int i = 0; i < lods.Length; i++)
|
|
||||||
{
|
|
||||||
if (lods[i].renderers.Any(r => r == renderer))
|
|
||||||
lods[i].renderers = lods[i].renderers.Append(newRenderer).ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
lodGroup.SetLODs(lods);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (MeshRenderer renderer in GetComponentsInChildren<MeshRenderer>(true))
|
|
||||||
{
|
|
||||||
Material[] rendererSharedMats = renderer.sharedMaterials;
|
|
||||||
Material[] leavelessMats = new Material[rendererSharedMats.Length];
|
|
||||||
|
|
||||||
if (renderer.shadowCastingMode == ShadowCastingMode.ShadowsOnly)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
bool didReplace = false;
|
|
||||||
|
|
||||||
for (int i = 0; i < rendererSharedMats.Length; i++)
|
|
||||||
{
|
|
||||||
if (rendererSharedMats[i].name.Contains("leaves", StringComparison.InvariantCultureIgnoreCase))
|
|
||||||
{
|
|
||||||
leavelessMats[i] = invisibleMaterial;
|
|
||||||
didReplace = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
leavelessMats[i] = rendererSharedMats[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!didReplace)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
matLists.Add(renderer, (rendererSharedMats, leavelessMats));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
if (!player)
|
|
||||||
player = FindAnyObjectByType<RPGController>();
|
|
||||||
|
|
||||||
if (!camera)
|
|
||||||
camera = Camera.main;
|
|
||||||
|
|
||||||
if (!player || !camera)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (gameObject.layer != ignoreRaycastLayer)
|
|
||||||
gameObject.layer = ignoreRaycastLayer;
|
|
||||||
|
|
||||||
Vector3 playerPos = player.transform.position + Vector3.up;
|
|
||||||
Vector3 cameraPos = camera.transform.position;
|
|
||||||
|
|
||||||
Vector3 rayDir = (playerPos - cameraPos).normalized;
|
|
||||||
|
|
||||||
RaycastHit[] hits = Physics.RaycastAll(cameraPos, rayDir, float.PositiveInfinity, 1 << gameObject.layer, QueryTriggerInteraction.Collide);
|
|
||||||
|
|
||||||
for (int i = 0; i < hits.Length; i++)
|
|
||||||
{
|
|
||||||
if (hits[i].collider.gameObject == gameObject)
|
|
||||||
{
|
|
||||||
SetLeavesVisible(false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SetLeavesVisible(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
void OnTriggerEnter(Collider other)
|
|
||||||
{
|
|
||||||
if (other.GetComponent<RPGController>() || other.GetComponentInParent<RPGController>())
|
|
||||||
SetLeavesVisible(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnTriggerExit(Collider other)
|
|
||||||
{
|
|
||||||
if (other.GetComponent<RPGController>() || other.GetComponentInParent<RPGController>())
|
|
||||||
SetLeavesVisible(true);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
void SetLeavesVisible(bool visible)
|
|
||||||
{
|
|
||||||
foreach (MeshRenderer renderer in matLists.Keys)
|
|
||||||
renderer.sharedMaterials = visible ? matLists[renderer].Item1 : matLists[renderer].Item2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 2e55b45b8852c8b40823a47ea17a097a
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
Reference in New Issue
Block a user