diff --git a/Unity_2018_Frozen/Assets/Frozen/Frozen.unity b/Unity_2018_Frozen/Assets/Frozen/Frozen.unity index 8554182..ffc961b 100644 --- a/Unity_2018_Frozen/Assets/Frozen/Frozen.unity +++ b/Unity_2018_Frozen/Assets/Frozen/Frozen.unity @@ -951,7 +951,6 @@ GameObject: m_Component: - component: {fileID: 368474577} - component: {fileID: 368474580} - - component: {fileID: 368474579} - component: {fileID: 368474578} - component: {fileID: 368474581} - component: {fileID: 368474583} @@ -1010,20 +1009,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!64 &368474579 -MeshCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 368474576} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - serializedVersion: 3 - m_Convex: 0 - m_CookingOptions: 14 - m_SkinWidth: 0.01 - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!33 &368474580 MeshFilter: m_ObjectHideFlags: 0 @@ -1570,9 +1555,8 @@ MonoBehaviour: triggerClips: - {fileID: 11400000, guid: 708f87d2cbae42445846a25f0ca06829, type: 2} players: [] - color: {r: 1, g: 1, b: 1, a: 1} videoStopTime: 1.5 - isTriggerCollider: 0 + debugString: --- !u!1 &520040865 GameObject: m_ObjectHideFlags: 0 @@ -3142,9 +3126,8 @@ MonoBehaviour: triggerClips: - {fileID: 11400000, guid: 6ccf813116f07944faf4af6bc3b2c1f7, type: 2} players: [] - color: {r: 1, g: 1, b: 1, a: 1} videoStopTime: 10 - isTriggerCollider: 0 + debugString: --- !u!114 &1216863878 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3225,9 +3208,8 @@ MonoBehaviour: triggerClips: - {fileID: 11400000, guid: d3a9925b2d77cce4a8fc3215dbaf41e1, type: 2} players: [] - color: {r: 1, g: 1, b: 1, a: 1} videoStopTime: 1 - isTriggerCollider: 0 + debugString: --- !u!1 &1227078084 GameObject: m_ObjectHideFlags: 0 @@ -3700,7 +3682,7 @@ MeshFilter: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1379541361} - m_Mesh: {fileID: 1792131387} + m_Mesh: {fileID: 2039303666} --- !u!1 &1390635887 GameObject: m_ObjectHideFlags: 0 @@ -4008,9 +3990,8 @@ MonoBehaviour: triggerClips: - {fileID: 11400000, guid: a6af2089baf7ed8489a4e941dae4e928, type: 2} players: [] - color: {r: 1, g: 1, b: 1, a: 1} videoStopTime: 10 - isTriggerCollider: 0 + debugString: --- !u!114 &1690794391 MonoBehaviour: m_ObjectHideFlags: 0 @@ -4337,136 +4318,6 @@ CanvasRenderer: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1774693141} ---- !u!43 &1792131387 -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 &1817143146 GameObject: m_ObjectHideFlags: 0 @@ -4946,9 +4797,8 @@ MonoBehaviour: - {fileID: 11400000, guid: 86cfefcea0dbaf349b192625aa06ef6a, type: 2} - {fileID: 11400000, guid: 727d0f386e383414ca58642076340e45, type: 2} players: [] - color: {r: 1, g: 1, b: 1, a: 1} videoStopTime: 1 - isTriggerCollider: 0 + debugString: --- !u!1 &1908931425 GameObject: m_ObjectHideFlags: 0 @@ -5071,9 +4921,8 @@ MonoBehaviour: triggerClips: - {fileID: 11400000, guid: 2845fcd21d061464f8f97219a167ba7a, type: 2} players: [] - color: {r: 1, g: 1, b: 1, a: 1} videoStopTime: 10 - isTriggerCollider: 0 + debugString: --- !u!114 &1933714487 MonoBehaviour: m_ObjectHideFlags: 0 @@ -5142,9 +4991,8 @@ MonoBehaviour: triggerClips: - {fileID: 11400000, guid: 2ea2925de6b8a934fa0ea7a7020103b1, type: 2} players: [] - color: {r: 1, g: 1, b: 1, a: 1} videoStopTime: 10 - isTriggerCollider: 0 + debugString: --- !u!114 &1973785478 MonoBehaviour: m_ObjectHideFlags: 0 @@ -5225,9 +5073,8 @@ MonoBehaviour: triggerClips: - {fileID: 11400000, guid: 23773c4900ad46e4f9ba5cb3d1c28912, type: 2} players: [] - color: {r: 1, g: 1, b: 1, a: 1} videoStopTime: 1 - isTriggerCollider: 0 + debugString: --- !u!1 &2008324328 GameObject: m_ObjectHideFlags: 0 @@ -5327,6 +5174,136 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 22 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!43 &2039303666 +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 &2084135709 GameObject: m_ObjectHideFlags: 0 diff --git a/Unity_2018_Frozen/Assets/Frozen/Script/CharacterBehaviour.cs b/Unity_2018_Frozen/Assets/Frozen/Script/CharacterBehaviour.cs index 8309c8e..c834680 100644 --- a/Unity_2018_Frozen/Assets/Frozen/Script/CharacterBehaviour.cs +++ b/Unity_2018_Frozen/Assets/Frozen/Script/CharacterBehaviour.cs @@ -10,12 +10,9 @@ public class CharacterBehaviour : MonoBehaviour [SerializeField] private bool standby = true; - [Range(0, 15)] public float disappearTime = 5; - //public Material mat; - public Area area; public List AppearArea = new List(); @@ -24,9 +21,6 @@ public class CharacterBehaviour : MonoBehaviour [SerializeField] private RectTransform fakeButton; - private const float checktriggerColliderTime = 0.5f; - private float triggerColliderTimer; - [SerializeField] List specificPositions = new List(); @@ -42,28 +36,34 @@ public class CharacterBehaviour : MonoBehaviour int trigger_clip_index = 0; [SerializeField] private DShowMoviePlayer[] players; - //private MeshRenderer m_meshRender; - public Color color; - private bool isSleep; public float videoStopTime = 1.5f; - const int TRIGGER = 0; - const int STANDBY = 1; + enum State + { + TRIGGER = 0, + STANDBY = 1, + SLEEP = 2 + } + + State state = State.SLEEP; + DShowMoviePlayer StatePlayer { get { return players[(int)state]; } } + MeshRenderer StateRenderer { get { return renderers[(int)state]; } } + + MeshRenderer[] renderers; - int Status { get { return System.Convert.ToInt32(standby); } } + bool isTriggered = false; + Coroutine flow = null; - List renderers; - - + [SerializeField] + string debugString; private void Awake() { - renderers = new List(); - renderers.AddRange(GetComponentsInChildren()); - if (renderers.Count != 2) - Debug.LogWarningFormat("{0} renderer count is {1}", gameObject.name, renderers.Count); + renderers = GetComponentsInChildren(); + if (renderers.Length != 2) + Debug.LogWarningFormat("{0} renderer count is {1}", gameObject.name, renderers.Length); //m_meshRender = GetComponent(); //mat = new Material(Shader.Find("Unlit/ColorTransparent")); //m_meshRender.material = mat; @@ -100,7 +100,7 @@ public class CharacterBehaviour : MonoBehaviour fakeButton.anchorMin = new Vector2(0, 0); fakeButton.anchorMax = new Vector2(0, 0); fakeButton.pivot = new Vector2(0.5f, 0.5f); - var standby_scale = renderers[STANDBY].transform.localScale; + var standby_scale = renderers[(int)State.STANDBY].transform.localScale; fakeButton.sizeDelta = new Vector2(standby_scale.x, standby_scale.y) * FrozenScreenToWorldSpace.Instance.finalPixelsByMeter; fakeButton.anchoredPosition3D = new Vector3(0, 0, 0); fakeButton.localScale = Vector3.one; @@ -115,7 +115,6 @@ public class CharacterBehaviour : MonoBehaviour { foreach (var rdr in renderers) { - //rdr.sharedMaterial = new Material(rdr.sharedMaterial); rdr.material.mainTextureScale = new Vector2(1, -1); rdr.material.mainTextureOffset = new Vector2(0, -1); } @@ -123,13 +122,15 @@ public class CharacterBehaviour : MonoBehaviour private void OnEnable() { - standby = true; - isSleep = false; - StartCoroutine(PlayStandbyOnStart()); InitialTouchButton(); - StartCoroutine(RandomPosNoTriggerOther()); - color = new Color(1, 1, 1, 0); - StartCoroutine(Sleep()); + ResetFlow(); + //standby = true; + //isSleep = false; + //StartCoroutine(PlayStandbyOnStart()); + + //StartCoroutine(RandomPosNoTriggerOther()); + //color = new Color(1, 1, 1, 0); + //StartCoroutine(Sleep()); if (fakeButton != null) fakeButton.gameObject.SetActive(true); } @@ -140,6 +141,108 @@ public class CharacterBehaviour : MonoBehaviour fakeButton.gameObject.SetActive(false); } + private void ResetFlow() + { + if (flow != null) + { + StopCoroutine(flow); + flow = null; + } + + isTriggered = false; + foreach (var rdr in renderers) + { + rdr.material.color = new Color(1, 1, 1, 0); + } + foreach (var ply in players) + { + ply.Pause(); + ply.Frame = 0; + } + + flow = StartCoroutine(Flow()); + } + + IEnumerator Flow() + { + debugString = "setup"; + // setup + { + if (specificPositions.Count > 0) + { + SetSpecificPos(); + } + else + { + RandomAppearWall(); + } + + roaming_seed = Random.Range(0.0f, 1.0f); + + trigger_clip_index = ++trigger_clip_index % triggerClips.Count; + players[(int)State.TRIGGER].VideoAsset = triggerClips[trigger_clip_index]; + + yield return null; + } + + debugString = "STANDBY"; + // standby + { + state = State.STANDBY; + var player = StatePlayer; + player.Loop = isStandbyLoop; + player.Play(); + + while (isTriggered == false) + { + debugString = "STANDBY is not triggered"; + + if (player.Loop == false) + { + if (player.IsPlaying == false) + { + player.Pause(); + player.Frame = player.TotalNumFrames; + } + } + + yield return null; + } + + + } + + debugString = "TRIGGER"; + // trigger + { + state = State.TRIGGER; + var player = StatePlayer; + player.Play(); + + while (player.IsPlaying) + { + debugString = "TRIGGER is playing"; + yield return null; + } + + player.Pause(); + player.Frame = player.TotalNumFrames; + + debugString = "TRIGGER is stopped"; + yield return new WaitForSeconds(videoStopTime); + } + + debugString = "SLEEP"; + // sleep + { + state = State.SLEEP; + yield return new WaitForSeconds(disappearTime); + } + + flow = null; + yield return null; + } + /* IEnumerator PlayStandbyOnStart() { DShowMoviePlayer player = CurrentPlayer; @@ -151,46 +254,68 @@ public class CharacterBehaviour : MonoBehaviour yield return null; } } - + */ void Update() { - /* - if (Input.GetKeyDown(KeyCode.R)) + for (int i = 0; i < players.Length; i++) { - if (!isTriggerCollider) - StartCoroutine(RandomPosNoTriggerOther()); - } - */ - UpdateMaterial(); + if (players[i].IsPlaying) + renderers[i].material.mainTexture = players[i].Texture; + } - if (isSleep == false) + // standby material { - if (standby == false) - { - CheckPlayFinished(); + float smooth = Time.deltaTime * 2.0f; + if (state != State.STANDBY && isStandbyLoop == false) + smooth = 1.0f; + float alpha = System.Convert.ToInt32(state == State.STANDBY); + var mat = renderers[(int)State.STANDBY].material; + mat.color = new Color(1, 1, 1, Mathf.Lerp(mat.color.a, alpha, smooth)); + } - var mat = renderers[STANDBY].material; - float a = Mathf.Lerp(mat.color.a, 0.0f, Time.deltaTime); - mat.color = new Color(1, 1, 1, a); - } - else if (standby && roaming > 0.0f) - { - UpdateRoamingPosition(); - UpdateWallRoiFromPosition(); - UpdateButtonPos(); - } - + // trigger material + { + float smooth = Time.deltaTime * 2.0f; + if (state == State.TRIGGER) + smooth = 1.0f; + float alpha = System.Convert.ToInt32(state == State.TRIGGER); + var mat = renderers[(int)State.TRIGGER].material; + mat.color = new Color(1, 1, 1, Mathf.Lerp(mat.color.a, alpha, smooth)); } + - if (isTriggerCollider) - CheckTriggerCollider(); - } + switch (state) + { + case State.STANDBY: + { + if (roaming > 0.0f) + { + UpdateRoamingPosition(); + UpdateWallRoiFromPosition(); + UpdateButtonPos(); + } + } + break; + case State.TRIGGER: + { - void CheckTriggerCollider() - { - triggerColliderTimer -= Time.deltaTime; - if (triggerColliderTimer <= 0) - isTriggerCollider = false; + } + break; + case State.SLEEP: + { + + } + break; + } + + + if (Input.GetKeyDown(KeyCode.R)) + { + ResetFlow(); + } + + if (flow == null) + ResetFlow(); } void UpdateRoamingPosition() @@ -198,7 +323,7 @@ public class CharacterBehaviour : MonoBehaviour float noise = Mathf.PerlinNoise(Time.time * 0.4f, roaming_seed) > 0.5f ? 1.0f : -1.0f; noise *= roaming * Time.deltaTime; //float padding = transform.localScale.x * 0.5f; - float padding = renderers[TRIGGER].transform.localScale.x * 0.5f; + float padding = renderers[(int)State.TRIGGER].transform.localScale.x * 0.5f; Vector3 pos = transform.position; switch (area) { @@ -220,21 +345,6 @@ public class CharacterBehaviour : MonoBehaviour } } - void UpdateMaterial() - { - var mat = CurrentRenderer.material; - mat.mainTexture = CurrentPlayer.Texture; - mat.SetColor("_Color", color); - } - - void CheckPlayFinished() - { - if (CurrentPlayer.IsFinished) - { - StartCoroutine(Sleep()); - } - } - void RandomAppearWall() { Vector3 newPos = Vector3.zero; @@ -262,7 +372,7 @@ public class CharacterBehaviour : MonoBehaviour void RandomPos() { - float minX = renderers[TRIGGER].transform.localScale.x / 2; + float minX = renderers[(int)State.TRIGGER].transform.localScale.x / 2; #if true switch (area) { @@ -318,7 +428,7 @@ public class CharacterBehaviour : MonoBehaviour void UpdateButtonPos() { //Vector2 newScreenPos = FrozenScreenToWorldSpace.Instance.GetFinalScreenPos(area, wallRoi); - var roi = FrozenScreenToWorldSpace.Instance.GetWallRoiFromPosition(area, renderers[STANDBY].transform.position); + var roi = FrozenScreenToWorldSpace.Instance.GetWallRoiFromPosition(area, renderers[(int)State.STANDBY].transform.position); Vector2 newScreenPos = FrozenScreenToWorldSpace.Instance.GetFinalScreenPos(area, roi); fakeButton.anchoredPosition = newScreenPos; } @@ -341,117 +451,9 @@ public class CharacterBehaviour : MonoBehaviour private void Trigger(PointerEventData data) { - if (!standby || isSleep) + if (state != State.STANDBY) return; - standby = false; - CurrentPlayer.Play(); - CurrentRenderer.material.mainTexture = CurrentPlayer.Texture; - } - - void Idle() - { - standby = true; - CurrentPlayer.Play(); - } - DShowMoviePlayer CurrentPlayer { get { return players[Status]; } } - MeshRenderer CurrentRenderer { get { return renderers[Status]; } } - - IEnumerator Sleep() - { - standby = false; - isSleep = true; - yield return StartCoroutine(WaitVideoStopTimeFadeOut()); - yield return new WaitForSeconds(GetDisappear()); - yield return StartCoroutine(RandomPosNoTriggerOther()); - yield return StartCoroutine(WaitVideoStandbyFadeIn()); - isSleep = false; - Idle(); - } - - IEnumerator Fade(float targetA) - { - float value = 0; - float origin = color.a; - while (value < 1) - { - value = Mathf.Clamp(value + Time.deltaTime, 0, 1); - color.a = Mathf.Lerp(origin, targetA, value); - yield return null; - } - color.a = targetA; - } - - IEnumerator WaitVideoStandbyFadeIn() - { - standby = true; - CurrentPlayer.Play(); - CurrentRenderer.material.mainTexture = CurrentPlayer.Texture; - yield return StartCoroutine(Fade(1)); - } - - IEnumerator WaitVideoStopTimeFadeOut() - { - yield return new WaitForSeconds(videoStopTime); - yield return StartCoroutine(Fade(0)); - CurrentPlayer.Pause(); - CurrentPlayer.Frame = 0; - } - - - public bool isTriggerCollider; - - private void OnTriggerExit(Collider other) - { - isTriggerCollider = false; - } - - void OnTriggerStay(Collider other) - { - isTriggerCollider = true; - triggerColliderTimer = checktriggerColliderTime; - } - - private void OnTriggerEnter(Collider other) - { - isTriggerCollider = true; - triggerColliderTimer = checktriggerColliderTime; - } - - - public float GetDisappear() - { - return disappearTime; - /* - float distime = disappearTime - Random.Range(0, disappearTime / 2); - distime = disappearTime * distime - distime * distime + 0.5f * distime; - return distime; - */ - } - - IEnumerator RandomPosNoTriggerOther() - { - if (specificPositions.Count > 0) - { - SetSpecificPos(); - yield return null; - } - else - { - RandomAppearWall(); - yield return new WaitForSeconds(0.1f); - while (isTriggerCollider) - { - RandomAppearWall(); - yield return null; - } - } - - roaming_seed = Random.Range(0.0f, 1.0f); - - trigger_clip_index = ++trigger_clip_index % triggerClips.Count; - players[0].VideoAsset = triggerClips[trigger_clip_index]; - - yield return null; + isTriggered = true; } }