顺手加了个element改名同步hierarchy 3D遮挡!!! 然后发现当track或者folder旋转时pathnode的法线(旋转)不会跟着 以上测试放在IceFlowerMaster项目中 还有 现在没中文字体
97 lines
3.6 KiB
C#
97 lines
3.6 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using Ichni.Editor;
|
|
using Ichni.RhythmGame.Beatmap;
|
|
using Ichni.RhythmGame.ThemeBundles.Basic.Beatmap;
|
|
using UnityEngine;
|
|
|
|
namespace Ichni.RhythmGame.ThemeBundles.Basic
|
|
{
|
|
public partial class DirectionalLight : EnvironmentObject
|
|
{
|
|
[SerializeField]
|
|
private Light directionalLight;
|
|
|
|
public float intensity;
|
|
public bool castShadows;
|
|
|
|
public static DirectionalLight GenerateElement(string elementName, Guid id, List<string> tags,
|
|
bool isFirstGenerated, GameElement parentElement, string themeBundleName, string objectName,
|
|
bool isStatic, float intensity, bool castShadows)
|
|
{
|
|
DirectionalLight dirLight = EnvironmentObject.GenerateElement(elementName, id, tags,
|
|
isFirstGenerated, themeBundleName, objectName, parentElement, isStatic).GetComponent<DirectionalLight>();
|
|
|
|
dirLight.intensity = intensity;
|
|
dirLight.castShadows = castShadows;
|
|
return dirLight;
|
|
}
|
|
|
|
public override void Refresh()
|
|
{
|
|
base.Refresh();
|
|
directionalLight.color = colorSubmodule.currentBaseColor;
|
|
directionalLight.intensity = intensity;
|
|
directionalLight.shadows = castShadows ? LightShadows.Soft : LightShadows.None;
|
|
}
|
|
}
|
|
|
|
public partial class DirectionalLight
|
|
{
|
|
public override void SaveBM()
|
|
{
|
|
matchedBM = new DirectionalLight_BM(elementName, elementGuid, tags, parentElement.matchedBM as GameElement_BM,
|
|
themeBundleName, objectName, isStatic, intensity, castShadows);
|
|
}
|
|
|
|
public override void SetUpInspector()
|
|
{
|
|
base.SetUpInspector();
|
|
|
|
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
|
var container = inspector.GenerateContainer("Directional Light");
|
|
|
|
var intensityField = inspector.GenerateInputField(this, container, "Intensity", nameof(intensity));
|
|
intensityField.AddListenerFunction(_ => Refresh());
|
|
|
|
var castShadowsToggle = inspector.GenerateToggle(this, container, "Cast Shadows", nameof(castShadows));
|
|
castShadowsToggle.AddListenerFunction(_ => Refresh());
|
|
}
|
|
}
|
|
|
|
namespace Beatmap
|
|
{
|
|
public class DirectionalLight_BM : EnvironmentObject_BM
|
|
{
|
|
public float intensity;
|
|
public bool castShadows;
|
|
|
|
public DirectionalLight_BM()
|
|
{
|
|
|
|
}
|
|
|
|
public DirectionalLight_BM(string elementName, Guid id, List<string> tags,
|
|
GameElement_BM parent, string themeBundleName, string objectName, bool isStatic,
|
|
float intensity, bool castShadows) :
|
|
base(elementName, id, tags, parent, themeBundleName, objectName, isStatic)
|
|
{
|
|
this.intensity = intensity;
|
|
this.castShadows = castShadows;
|
|
}
|
|
|
|
public override void ExecuteBM()
|
|
{
|
|
matchedElement = DirectionalLight.GenerateElement(elementName, elementGuid, tags, false,
|
|
GetElement(attachedElementGuid), themeBundleName, objectName, isStatic, intensity, castShadows);
|
|
}
|
|
|
|
public override GameElement DuplicateBM(GameElement parent)
|
|
{
|
|
return DirectionalLight.GenerateElement(elementName, Guid.NewGuid(), tags, false,
|
|
parent, themeBundleName, objectName, isStatic, intensity, castShadows);
|
|
}
|
|
}
|
|
}
|
|
} |