update CharacterBehaviour for smooth in/out scene

master
hoba 8 years ago
parent 89f7009ccf
commit 7a00300317
  1. 286
      Unity_2018_Frozen/Assets/Frozen/Frozen.unity
  2. 113
      Unity_2018_Frozen/Assets/Frozen/Script/CharacterBehaviour.cs
  3. 6
      Unity_2018_Frozen/Assets/Frozen/Script/CharacterDummy.cs
  4. 2
      Unity_2018_Frozen/Assets/Frozen/Script/GiantSnowflake.cs
  5. 16
      Unity_2018_Frozen/Assets/Frozen/Script/SceneController.cs

@ -1633,10 +1633,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3} m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
appearSataes: 01000000
videoStopTime: 1.5 videoStopTime: 1.5
disappearTime: 0.1 disappearTime: 0.1
area: 0 area: 0
AppearArea: 0000000001000000 appearAreas: 0000000001000000
specificPositions: [] specificPositions: []
roaming: 0.08 roaming: 0.08
fakeButton: {fileID: 0} fakeButton: {fileID: 0}
@ -3345,10 +3346,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3} m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
appearSataes: 02000000
videoStopTime: 10 videoStopTime: 10
disappearTime: 1 disappearTime: 1
area: 0 area: 0
AppearArea: 02000000 appearAreas:
specificPositions: specificPositions:
- {fileID: 1216863878} - {fileID: 1216863878}
roaming: 0 roaming: 0
@ -3418,10 +3420,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3} m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
appearSataes: 02000000
videoStopTime: 0.5 videoStopTime: 0.5
disappearTime: 0.5 disappearTime: 0.5
area: 0 area: 0
AppearArea: 0000000001000000 appearAreas: 0000000001000000
specificPositions: [] specificPositions: []
roaming: 0 roaming: 0
fakeButton: {fileID: 0} fakeButton: {fileID: 0}
@ -3992,7 +3995,7 @@ MeshFilter:
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1379541361} m_GameObject: {fileID: 1379541361}
m_Mesh: {fileID: 2128676547} m_Mesh: {fileID: 2019943191}
--- !u!1 &1390635887 --- !u!1 &1390635887
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -4447,10 +4450,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3} m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
appearSataes: 0100000002000000
videoStopTime: 10 videoStopTime: 10
disappearTime: 1 disappearTime: 1
area: 2 area: 2
AppearArea: 02000000 appearAreas:
specificPositions: specificPositions:
- {fileID: 1690794391} - {fileID: 1690794391}
roaming: 0 roaming: 0
@ -5212,10 +5216,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3} m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
appearSataes: 0100000002000000
videoStopTime: 1 videoStopTime: 1
disappearTime: 1 disappearTime: 1
area: 0 area: 0
AppearArea: 000000000100000002000000 appearAreas:
specificPositions: specificPositions:
- {fileID: 40068780} - {fileID: 40068780}
- {fileID: 1191975164} - {fileID: 1191975164}
@ -5426,10 +5431,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3} m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
appearSataes: 0100000002000000
videoStopTime: 10 videoStopTime: 10
disappearTime: 1 disappearTime: 1
area: 2 area: 2
AppearArea: 02000000 appearAreas:
specificPositions: specificPositions:
- {fileID: 1933714487} - {fileID: 1933714487}
roaming: 0 roaming: 0
@ -5511,10 +5517,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3} m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
appearSataes: 0100000002000000
videoStopTime: 10 videoStopTime: 10
disappearTime: 1 disappearTime: 1
area: 0 area: 0
AppearArea: 02000000 appearAreas:
specificPositions: specificPositions:
- {fileID: 1973785478} - {fileID: 1973785478}
roaming: 0 roaming: 0
@ -5595,10 +5602,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3} m_Script: {fileID: 11500000, guid: 12ea4d85cdda0aa4981a82e5e18fed52, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
appearSataes: 02000000
videoStopTime: 0.5 videoStopTime: 0.5
disappearTime: 0.5 disappearTime: 0.5
area: 0 area: 0
AppearArea: 0000000001000000 appearAreas: 0000000001000000
specificPositions: [] specificPositions: []
roaming: 0 roaming: 0
fakeButton: {fileID: 0} fakeButton: {fileID: 0}
@ -5695,6 +5703,136 @@ MeshFilter:
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2008324328} m_GameObject: {fileID: 2008324328}
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!43 &2019943191
Mesh:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: 'Space Ground Mesh: (8x5x3)'
serializedVersion: 8
m_SubMeshes:
- serializedVersion: 2
firstByte: 0
indexCount: 24
topology: 0
baseVertex: 0
firstVertex: 0
vertexCount: 16
localAABB:
m_Center: {x: 0, y: 1.5, z: 0}
m_Extent: {x: 4, y: 1.5, z: 2.5}
m_Shapes:
vertices: []
shapes: []
channels: []
fullWeights: []
m_BindPose: []
m_BoneNameHashes:
m_RootBoneNameHash: 0
m_MeshCompression: 0
m_IsReadable: 0
m_KeepVertices: 1
m_KeepIndices: 1
m_IndexFormat: 0
m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a0009000b000a000c000d000e000d000f000e00
m_Skin: []
m_VertexData:
m_CurrentChannels: 11
m_VertexCount: 16
m_Channels:
- stream: 0
offset: 0
format: 0
dimension: 3
- stream: 0
offset: 12
format: 0
dimension: 3
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 24
format: 0
dimension: 2
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
m_DataSize: 512
_typelessdata: 000080c000000000000020c0000000000000803f00000000e4388e3e00000000000080c00000000000002040000000000000803f00000000e4388e3e0000203f0000804000000000000020c0000000000000803f000000008ee3383f00000000000080400000000000002040000000000000803f000000008ee3383f0000203f000080c000000000000020400000000000000000000080bfe4388e3e0000203f000080c000004040000020400000000000000000000080bfe4388e3e0000803f0000804000000000000020400000000000000000000080bf8ee3383f0000203f0000804000004040000020400000000000000000000080bf8ee3383f0000803f000080c000000000000020c00000803f0000000000000000000000000000203f000080c000004040000020c00000803f0000000000000000000000000000803f000080c000000000000020400000803f0000000000000000e4388e3e0000203f000080c000004040000020400000803f0000000000000000e4388e3e0000803f000080400000000000002040000080bf00000000000000008ee3383f0000203f000080400000404000002040000080bf00000000000000008ee3383f0000803f0000804000000000000020c0000080bf00000000000000000000803f0000203f0000804000004040000020c0000080bf00000000000000000000803f0000803f
m_CompressedMesh:
m_Vertices:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_UV:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Normals:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Tangents:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Weights:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_NormalSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_TangentSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_FloatColors:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_BoneIndices:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_Triangles:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_UVInfo: 0
m_LocalAABB:
m_Center: {x: 0, y: 1.5, z: 0}
m_Extent: {x: 4, y: 1.5, z: 2.5}
m_MeshUsageFlags: 0
m_BakedConvexCollisionMesh:
m_BakedTriangleCollisionMesh:
m_MeshOptimized: 0
--- !u!1 &2024329733 --- !u!1 &2024329733
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -6010,133 +6148,3 @@ MeshFilter:
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2086317000} m_GameObject: {fileID: 2086317000}
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!43 &2128676547
Mesh:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: 'Space Ground Mesh: (8x5x3)'
serializedVersion: 8
m_SubMeshes:
- serializedVersion: 2
firstByte: 0
indexCount: 24
topology: 0
baseVertex: 0
firstVertex: 0
vertexCount: 16
localAABB:
m_Center: {x: 0, y: 1.5, z: 0}
m_Extent: {x: 4, y: 1.5, z: 2.5}
m_Shapes:
vertices: []
shapes: []
channels: []
fullWeights: []
m_BindPose: []
m_BoneNameHashes:
m_RootBoneNameHash: 0
m_MeshCompression: 0
m_IsReadable: 0
m_KeepVertices: 1
m_KeepIndices: 1
m_IndexFormat: 0
m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a0009000b000a000c000d000e000d000f000e00
m_Skin: []
m_VertexData:
m_CurrentChannels: 11
m_VertexCount: 16
m_Channels:
- stream: 0
offset: 0
format: 0
dimension: 3
- stream: 0
offset: 12
format: 0
dimension: 3
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 24
format: 0
dimension: 2
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
m_DataSize: 512
_typelessdata: 000080c000000000000020c0000000000000803f00000000e4388e3e00000000000080c00000000000002040000000000000803f00000000e4388e3e0000203f0000804000000000000020c0000000000000803f000000008ee3383f00000000000080400000000000002040000000000000803f000000008ee3383f0000203f000080c000000000000020400000000000000000000080bfe4388e3e0000203f000080c000004040000020400000000000000000000080bfe4388e3e0000803f0000804000000000000020400000000000000000000080bf8ee3383f0000203f0000804000004040000020400000000000000000000080bf8ee3383f0000803f000080c000000000000020c00000803f0000000000000000000000000000203f000080c000004040000020c00000803f0000000000000000000000000000803f000080c000000000000020400000803f0000000000000000e4388e3e0000203f000080c000004040000020400000803f0000000000000000e4388e3e0000803f000080400000000000002040000080bf00000000000000008ee3383f0000203f000080400000404000002040000080bf00000000000000008ee3383f0000803f0000804000000000000020c0000080bf00000000000000000000803f0000203f0000804000004040000020c0000080bf00000000000000000000803f0000803f
m_CompressedMesh:
m_Vertices:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_UV:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Normals:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Tangents:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Weights:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_NormalSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_TangentSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_FloatColors:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_BoneIndices:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_Triangles:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_UVInfo: 0
m_LocalAABB:
m_Center: {x: 0, y: 1.5, z: 0}
m_Extent: {x: 4, y: 1.5, z: 2.5}
m_MeshUsageFlags: 0
m_BakedConvexCollisionMesh:
m_BakedTriangleCollisionMesh:
m_MeshOptimized: 0

@ -5,14 +5,17 @@ using UnityEngine.Events;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
using UnityEngine.UI; using UnityEngine.UI;
public class CharacterBehaviour : MonoBehaviour namespace UltraCombos.Frozen
{ {
public class CharacterBehaviour : MonoBehaviour
{
public List<State> appearSataes = new List<State>();
public float videoStopTime = 1.5f; public float videoStopTime = 1.5f;
[Range(0, 15)] public float disappearTime = 5.0f;
public float disappearTime = 5;
public Area area; public Area area;
public List<Area> AppearArea = new List<Area>(); public List<Area> appearAreas = new List<Area>();
Vector2 wallRoi; Vector2 wallRoi;
float origin_height = 0.0f; float origin_height = 0.0f;
@ -40,16 +43,16 @@ public class CharacterBehaviour : MonoBehaviour
[SerializeField] [SerializeField]
UnityEvent onTrigger = new UnityEvent(); UnityEvent onTrigger = new UnityEvent();
enum State enum Status
{ {
TRIGGER = 0, TRIGGER = 0,
STANDBY = 1, STANDBY = 1,
SLEEP = 2 SLEEP = 2
} }
State state = State.SLEEP; Status status = Status.SLEEP;
DShowMoviePlayer StatePlayer { get { return players[(int)state]; } } DShowMoviePlayer StatePlayer { get { return players[(int)status]; } }
MeshRenderer StateRenderer { get { return renderers[(int)state]; } } MeshRenderer StateRenderer { get { return renderers[(int)status]; } }
MeshRenderer[] renderers; MeshRenderer[] renderers;
@ -57,6 +60,10 @@ public class CharacterBehaviour : MonoBehaviour
Coroutine flow = null; Coroutine flow = null;
bool is_alive = false;
const float alive_threshold = 1.0f / 255.0f;
float alive_value = 0.0f;
[SerializeField, Header("Debug")] [SerializeField, Header("Debug")]
bool mode = false; bool mode = false;
[SerializeField] [SerializeField]
@ -103,7 +110,7 @@ public class CharacterBehaviour : MonoBehaviour
fakeButton.anchorMin = new Vector2(0, 0); fakeButton.anchorMin = new Vector2(0, 0);
fakeButton.anchorMax = new Vector2(0, 0); fakeButton.anchorMax = new Vector2(0, 0);
fakeButton.pivot = new Vector2(0.5f, 0.5f); fakeButton.pivot = new Vector2(0.5f, 0.5f);
var standby_scale = renderers[(int)State.STANDBY].transform.localScale; var standby_scale = renderers[(int)Status.STANDBY].transform.localScale;
fakeButton.sizeDelta = new Vector2(standby_scale.x, standby_scale.y) * FrozenScreenToWorldSpace.Instance.finalPixelsByMeter; fakeButton.sizeDelta = new Vector2(standby_scale.x, standby_scale.y) * FrozenScreenToWorldSpace.Instance.finalPixelsByMeter;
fakeButton.anchoredPosition3D = new Vector3(0, 0, 0); fakeButton.anchoredPosition3D = new Vector3(0, 0, 0);
fakeButton.localScale = Vector3.one; fakeButton.localScale = Vector3.one;
@ -144,6 +151,31 @@ public class CharacterBehaviour : MonoBehaviour
fakeButton.gameObject.SetActive(false); fakeButton.gameObject.SetActive(false);
} }
public bool Active
{
set
{
if (value) Activate();
else Deactivate();
}
}
public void Activate()
{
if (is_alive)
return;
is_alive = true;
gameObject.SetActive(true);
}
public void Deactivate()
{
if (is_alive == false)
return;
is_alive = false;
}
private void ResetFlow() private void ResetFlow()
{ {
if (flow != null) if (flow != null)
@ -184,7 +216,7 @@ public class CharacterBehaviour : MonoBehaviour
roaming_seed = Random.Range(0.0f, 1.0f); roaming_seed = Random.Range(0.0f, 1.0f);
trigger_clip_index = ++trigger_clip_index % triggerClips.Count; trigger_clip_index = ++trigger_clip_index % triggerClips.Count;
players[(int)State.TRIGGER].VideoAsset = triggerClips[trigger_clip_index]; players[(int)Status.TRIGGER].VideoAsset = triggerClips[trigger_clip_index];
yield return null; yield return null;
} }
@ -192,7 +224,7 @@ public class CharacterBehaviour : MonoBehaviour
if (mode) info = "STANDBY"; if (mode) info = "STANDBY";
// standby // standby
{ {
state = State.STANDBY; status = Status.STANDBY;
var player = StatePlayer; var player = StatePlayer;
player.Loop = isStandbyLoop; player.Loop = isStandbyLoop;
player.Play(); player.Play();
@ -221,7 +253,7 @@ public class CharacterBehaviour : MonoBehaviour
// trigger // trigger
{ {
onTrigger.Invoke(); onTrigger.Invoke();
state = State.TRIGGER; status = Status.TRIGGER;
var player = StatePlayer; var player = StatePlayer;
player.Play(); player.Play();
@ -241,28 +273,24 @@ public class CharacterBehaviour : MonoBehaviour
if (mode) info = "SLEEP"; if (mode) info = "SLEEP";
// sleep // sleep
{ {
state = State.SLEEP; status = Status.SLEEP;
yield return new WaitForSeconds(disappearTime); yield return new WaitForSeconds(disappearTime);
} }
flow = null; flow = null;
yield return null; yield return null;
} }
/*
IEnumerator PlayStandbyOnStart() void Update()
{ {
DShowMoviePlayer player = CurrentPlayer; alive_value = Mathf.Lerp(alive_value, is_alive ? 1.0f : 0.0f, Time.deltaTime);
player.Loop = isStandbyLoop; if (is_alive == false && alive_value < alive_threshold)
while (!player.IsPlaying)
{ {
player.Play(); alive_value = 0.0f;
renderers[STANDBY].material.mainTexture = player.Texture; gameObject.SetActive(false);
yield return null;
}
} }
*/
void Update()
{
for (int i = 0; i < players.Length; i++) for (int i = 0; i < players.Length; i++)
{ {
if (players[i].IsPlaying) if (players[i].IsPlaying)
@ -275,10 +303,11 @@ public class CharacterBehaviour : MonoBehaviour
// standby material // standby material
{ {
float smooth = Time.deltaTime * 2.0f; float smooth = Time.deltaTime * 2.0f;
if (state != State.STANDBY && isStandbyLoop == false) if (status != Status.STANDBY && isStandbyLoop == false)
smooth = 1.0f; smooth = 1.0f;
float alpha = System.Convert.ToInt32(state == State.STANDBY); float alpha = System.Convert.ToInt32(status == Status.STANDBY);
var mat = renderers[(int)State.STANDBY].material; alpha = Mathf.Min(alpha, alive_value);
var mat = renderers[(int)Status.STANDBY].material;
var col = new Color(1, 1, 1, Mathf.Lerp(mat.color.a, alpha, smooth)); var col = new Color(1, 1, 1, Mathf.Lerp(mat.color.a, alpha, smooth));
mat.color = col; mat.color = col;
mat.SetColor("_TintColor", col); mat.SetColor("_TintColor", col);
@ -287,19 +316,20 @@ public class CharacterBehaviour : MonoBehaviour
// trigger material // trigger material
{ {
float smooth = Time.deltaTime * 2.0f; float smooth = Time.deltaTime * 2.0f;
if (state == State.TRIGGER) if (status == Status.TRIGGER)
smooth = 1.0f; smooth = 1.0f;
float alpha = System.Convert.ToInt32(state == State.TRIGGER); float alpha = System.Convert.ToInt32(status == Status.TRIGGER);
var mat = renderers[(int)State.TRIGGER].material; alpha = Mathf.Min(alpha, alive_value);
var mat = renderers[(int)Status.TRIGGER].material;
var col = new Color(1, 1, 1, Mathf.Lerp(mat.color.a, alpha, smooth)); var col = new Color(1, 1, 1, Mathf.Lerp(mat.color.a, alpha, smooth));
mat.color = col; mat.color = col;
mat.SetColor("_TintColor", col); mat.SetColor("_TintColor", col);
} }
switch (state) switch (status)
{ {
case State.STANDBY: case Status.STANDBY:
{ {
if (roaming > 0.0f) if (roaming > 0.0f)
{ {
@ -309,12 +339,12 @@ public class CharacterBehaviour : MonoBehaviour
} }
} }
break; break;
case State.TRIGGER: case Status.TRIGGER:
{ {
} }
break; break;
case State.SLEEP: case Status.SLEEP:
{ {
} }
@ -338,7 +368,7 @@ public class CharacterBehaviour : MonoBehaviour
float noise = Mathf.PerlinNoise(Time.time * 0.4f, roaming_seed) > 0.5f ? 1.0f : -1.0f; float noise = Mathf.PerlinNoise(Time.time * 0.4f, roaming_seed) > 0.5f ? 1.0f : -1.0f;
noise *= roaming * Time.deltaTime; noise *= roaming * Time.deltaTime;
//float padding = transform.localScale.x * 0.5f; //float padding = transform.localScale.x * 0.5f;
float padding = renderers[(int)State.TRIGGER].transform.localScale.x * 0.5f; float padding = renderers[(int)Status.TRIGGER].transform.localScale.x * 0.5f;
Vector3 pos = transform.position; Vector3 pos = transform.position;
switch (area) switch (area)
{ {
@ -365,7 +395,7 @@ public class CharacterBehaviour : MonoBehaviour
void RandomAppearWall() void RandomAppearWall()
{ {
Vector3 newPos = Vector3.zero; Vector3 newPos = Vector3.zero;
area = AppearArea[Random.Range(0, AppearArea.Count)]; area = appearAreas[Random.Range(0, appearAreas.Count)];
Quaternion q = new Quaternion(); Quaternion q = new Quaternion();
if (area == Area.LeftWall) if (area == Area.LeftWall)
{ {
@ -389,7 +419,7 @@ public class CharacterBehaviour : MonoBehaviour
void RandomPos() void RandomPos()
{ {
float minX = renderers[(int)State.TRIGGER].transform.localScale.x / 2; float minX = renderers[(int)Status.TRIGGER].transform.localScale.x / 2;
#if true #if true
switch (area) switch (area)
{ {
@ -445,7 +475,7 @@ public class CharacterBehaviour : MonoBehaviour
void UpdateButtonPos() void UpdateButtonPos()
{ {
//Vector2 newScreenPos = FrozenScreenToWorldSpace.Instance.GetFinalScreenPos(area, wallRoi); //Vector2 newScreenPos = FrozenScreenToWorldSpace.Instance.GetFinalScreenPos(area, wallRoi);
var roi = FrozenScreenToWorldSpace.Instance.GetWallRoiFromPosition(area, renderers[(int)State.STANDBY].transform.position); var roi = FrozenScreenToWorldSpace.Instance.GetWallRoiFromPosition(area, renderers[(int)Status.STANDBY].transform.position);
Vector2 newScreenPos = FrozenScreenToWorldSpace.Instance.GetFinalScreenPos(area, roi); Vector2 newScreenPos = FrozenScreenToWorldSpace.Instance.GetFinalScreenPos(area, roi);
fakeButton.anchoredPosition = newScreenPos; fakeButton.anchoredPosition = newScreenPos;
} }
@ -468,9 +498,12 @@ public class CharacterBehaviour : MonoBehaviour
private void Trigger(PointerEventData data) private void Trigger(PointerEventData data)
{ {
if (state != State.STANDBY) if (status != Status.STANDBY)
return; return;
isTriggered = true; isTriggered = true;
} }
}
} }

@ -2,8 +2,10 @@
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
public class CharacterDummy : MonoBehaviour namespace UltraCombos.Frozen
{ {
public class CharacterDummy : MonoBehaviour
{
public Area area; public Area area;
private void Start() private void Start()
@ -11,4 +13,6 @@ public class CharacterDummy : MonoBehaviour
if (GetComponent<CharacterBehaviour>() == null) if (GetComponent<CharacterBehaviour>() == null)
gameObject.SetActive(false); gameObject.SetActive(false);
} }
}
} }

@ -79,7 +79,7 @@ namespace UltraCombos.Frozen
material.mainTexture = player.Texture; material.mainTexture = player.Texture;
if (flow == null && SceneController.Instance.state == SceneController.State.Night) if (flow == null && SceneController.Instance.state == State.Night)
flow = StartCoroutine(Flow()); flow = StartCoroutine(Flow());
} }

@ -5,14 +5,15 @@ using UnityEngine.Events;
namespace UltraCombos.Frozen namespace UltraCombos.Frozen
{ {
public class SceneController : Singleton<SceneController>
{
public enum State public enum State
{ {
Standby, Standby,
Day, Day,
Night, Night,
} }
public class SceneController : Singleton<SceneController>
{
public State state = State.Standby; public State state = State.Standby;
[Range(0, 1)] [Range(0, 1)]
@ -44,6 +45,8 @@ namespace UltraCombos.Frozen
[SerializeField, Range(0, 1)] [SerializeField, Range(0, 1)]
float dayParticleRate = 1.0f; float dayParticleRate = 1.0f;
List<CharacterBehaviour> characters;
[SerializeField] [SerializeField]
List<CharacterBehaviour> dayCharacters = new List<CharacterBehaviour>(); List<CharacterBehaviour> dayCharacters = new List<CharacterBehaviour>();
@ -64,6 +67,8 @@ namespace UltraCombos.Frozen
private void Start() private void Start()
{ {
var cbs = FindObjectsOfType<CharacterBehaviour>();
characters = new List<CharacterBehaviour>(cbs);
//debug = false; //debug = false;
} }
@ -128,6 +133,7 @@ namespace UltraCombos.Frozen
kinect.kinectAmount = Mathf.Lerp(1.0f, nightKinectAmount, rate); kinect.kinectAmount = Mathf.Lerp(1.0f, nightKinectAmount, rate);
particleViewer.VertexCount = (int)(Mathf.Lerp(dayParticleRate, 1.0f, rate) * particleViewer.buffer.count); particleViewer.VertexCount = (int)(Mathf.Lerp(dayParticleRate, 1.0f, rate) * particleViewer.buffer.count);
#if false
foreach (var chr in dayCharacters) foreach (var chr in dayCharacters)
{ {
chr.gameObject.SetActive(rate < 0.5); chr.gameObject.SetActive(rate < 0.5);
@ -137,6 +143,12 @@ namespace UltraCombos.Frozen
{ {
chr.gameObject.SetActive(rate > 0.5); chr.gameObject.SetActive(rate > 0.5);
} }
#else
foreach (var chr in characters)
{
chr.Active = chr.appearSataes.Contains(state);
}
#endif
} }
} }
} }

Loading…
Cancel
Save