rewrite CharacterBehaviour Flow

master
uc-hoba 8 years ago
parent 81ddc7a479
commit 3c8dd8b144
  1. 301
      Unity_2018_Frozen/Assets/Frozen/Frozen.unity
  2. 374
      Unity_2018_Frozen/Assets/Frozen/Script/CharacterBehaviour.cs

@ -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

@ -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<Area> AppearArea = new List<Area>();
@ -24,9 +21,6 @@ public class CharacterBehaviour : MonoBehaviour
[SerializeField]
private RectTransform fakeButton;
private const float checktriggerColliderTime = 0.5f;
private float triggerColliderTimer;
[SerializeField]
List<CharacterDummy> specificPositions = new List<CharacterDummy>();
@ -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<MeshRenderer> renderers;
[SerializeField]
string debugString;
private void Awake()
{
renderers = new List<MeshRenderer>();
renderers.AddRange(GetComponentsInChildren<MeshRenderer>());
if (renderers.Count != 2)
Debug.LogWarningFormat("{0} renderer count is {1}", gameObject.name, renderers.Count);
renderers = GetComponentsInChildren<MeshRenderer>();
if (renderers.Length != 2)
Debug.LogWarningFormat("{0} renderer count is {1}", gameObject.name, renderers.Length);
//m_meshRender = GetComponent<MeshRenderer>();
//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;
}
}

Loading…
Cancel
Save