|
|
|
|
@ -57,18 +57,8 @@ public class CharacterBehaviour : MonoBehaviour |
|
|
|
|
|
|
|
|
|
void InitialiseDSPlayer() |
|
|
|
|
{ |
|
|
|
|
#if false |
|
|
|
|
GameObject triggerObj = new GameObject("Trigger"); |
|
|
|
|
triggerObj.transform.parent = this.transform; |
|
|
|
|
SetClip(triggerObj.AddComponent<DShowMoviePlayer>(), triggerClip); |
|
|
|
|
GameObject standbyObj = new GameObject("Standby"); |
|
|
|
|
standbyObj.transform.parent = this.transform; |
|
|
|
|
SetClip(standbyObj.AddComponent<DShowMoviePlayer>(), standbyClip); |
|
|
|
|
#else |
|
|
|
|
CreateDSPlayer(triggerClip); |
|
|
|
|
CreateDSPlayer(standbyClip); |
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
|
players = GetComponentsInChildren<DShowMoviePlayer>(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -76,11 +66,7 @@ public class CharacterBehaviour : MonoBehaviour |
|
|
|
|
{ |
|
|
|
|
GameObject triggerObj = new GameObject(clip.name); |
|
|
|
|
triggerObj.transform.parent = this.transform; |
|
|
|
|
SetClip(triggerObj.AddComponent<DShowMoviePlayer>(), clip); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void SetClip(DShowMoviePlayer player, DShowClip clip) |
|
|
|
|
{ |
|
|
|
|
var player = triggerObj.AddComponent<DShowMoviePlayer>(); |
|
|
|
|
player.VideoAsset = clip; |
|
|
|
|
player.Load(); |
|
|
|
|
} |
|
|
|
|
@ -189,14 +175,14 @@ 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; |
|
|
|
|
Vector3 pos = transform.localPosition; |
|
|
|
|
Vector3 pos = transform.position; |
|
|
|
|
switch (area) |
|
|
|
|
{ |
|
|
|
|
case Area.TopWall: |
|
|
|
|
{ |
|
|
|
|
float minmax = Mathf.Abs(padding - FrozenScreenToWorldSpace.Instance.width * 0.5f); |
|
|
|
|
float x = Mathf.Clamp(pos.x + noise, -minmax, minmax); |
|
|
|
|
transform.localPosition = new Vector3(x, pos.y, pos.z); |
|
|
|
|
transform.position = new Vector3(x, pos.y, pos.z); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case Area.LeftWall: |
|
|
|
|
@ -204,7 +190,7 @@ public class CharacterBehaviour : MonoBehaviour |
|
|
|
|
{ |
|
|
|
|
float minmax = Mathf.Abs(padding - FrozenScreenToWorldSpace.Instance.length * 0.5f); |
|
|
|
|
float z = Mathf.Clamp(pos.z + noise, -minmax, minmax); |
|
|
|
|
transform.localPosition = new Vector3(pos.x, pos.y, z); |
|
|
|
|
transform.position = new Vector3(pos.x, pos.y, z); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
@ -245,20 +231,31 @@ public class CharacterBehaviour : MonoBehaviour |
|
|
|
|
q.SetLookRotation(Vector3.forward); |
|
|
|
|
} |
|
|
|
|
transform.rotation = q; |
|
|
|
|
transform.localPosition = newPos; |
|
|
|
|
transform.position = newPos + FrozenScreenToWorldSpace.Instance.Position; |
|
|
|
|
RandomPos(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void RandomPos() |
|
|
|
|
{ |
|
|
|
|
Vector3 randomPos = transform.localPosition; |
|
|
|
|
float minX = transform.localScale.x / 2; |
|
|
|
|
|
|
|
|
|
#if true |
|
|
|
|
switch (area) |
|
|
|
|
{ |
|
|
|
|
case Area.TopWall: |
|
|
|
|
wallRoi.x = Random.Range(minX, FrozenScreenToWorldSpace.Instance.width - minX) / FrozenScreenToWorldSpace.Instance.width; |
|
|
|
|
break; |
|
|
|
|
case Area.LeftWall: |
|
|
|
|
case Area.RightWall: |
|
|
|
|
wallRoi.x = Random.Range(minX, FrozenScreenToWorldSpace.Instance.length - minX) / FrozenScreenToWorldSpace.Instance.length; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
#else |
|
|
|
|
Vector3 randomPos = transform.localPosition; |
|
|
|
|
if (randomPos.x == 0) |
|
|
|
|
wallRoi.x = Random.Range(minX, FrozenScreenToWorldSpace.Instance.width - minX) / FrozenScreenToWorldSpace.Instance.width; |
|
|
|
|
else |
|
|
|
|
wallRoi.x = Random.Range(minX, FrozenScreenToWorldSpace.Instance.length - minX) / FrozenScreenToWorldSpace.Instance.length; |
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
|
wallRoi.y = origin_height / FrozenScreenToWorldSpace.Instance.height; |
|
|
|
|
UpdatePos(); |
|
|
|
|
UpdateButtonPos(); |
|
|
|
|
@ -266,13 +263,30 @@ public class CharacterBehaviour : MonoBehaviour |
|
|
|
|
|
|
|
|
|
void UpdatePos() |
|
|
|
|
{ |
|
|
|
|
#if true |
|
|
|
|
Vector3 n_pos = transform.position; |
|
|
|
|
switch (area) |
|
|
|
|
{ |
|
|
|
|
case Area.TopWall: |
|
|
|
|
n_pos.x = Mathf.Lerp(-FrozenScreenToWorldSpace.Instance.width / 2, FrozenScreenToWorldSpace.Instance.width / 2, wallRoi.x); |
|
|
|
|
break; |
|
|
|
|
case Area.LeftWall: |
|
|
|
|
case Area.RightWall: |
|
|
|
|
n_pos.z = Mathf.Lerp(-FrozenScreenToWorldSpace.Instance.length / 2, FrozenScreenToWorldSpace.Instance.length / 2, wallRoi.x); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
n_pos.y = Mathf.Lerp(0.0f, FrozenScreenToWorldSpace.Instance.height, wallRoi.y); |
|
|
|
|
transform.position = n_pos + FrozenScreenToWorldSpace.Instance.Position; |
|
|
|
|
#else |
|
|
|
|
Vector3 n_pos = transform.localPosition; |
|
|
|
|
|
|
|
|
|
if (area == Area.TopWall) |
|
|
|
|
n_pos.x = Mathf.Lerp(-FrozenScreenToWorldSpace.Instance.width / 2, FrozenScreenToWorldSpace.Instance.width / 2, wallRoi.x); |
|
|
|
|
else |
|
|
|
|
n_pos.z = Mathf.Lerp(-FrozenScreenToWorldSpace.Instance.length / 2, FrozenScreenToWorldSpace.Instance.length / 2, wallRoi.x); |
|
|
|
|
n_pos.y = Mathf.Lerp(0, (float)FrozenScreenToWorldSpace.Instance.height, wallRoi.y); |
|
|
|
|
transform.localPosition = n_pos; |
|
|
|
|
#endif |
|
|
|
|
//SetButtonPos(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -295,7 +309,7 @@ public class CharacterBehaviour : MonoBehaviour |
|
|
|
|
|
|
|
|
|
void UpdateWallRoiFromPosition() |
|
|
|
|
{ |
|
|
|
|
wallRoi = FrozenScreenToWorldSpace.Instance.GetWallRoiFromPosition(area, transform.localPosition); |
|
|
|
|
wallRoi = FrozenScreenToWorldSpace.Instance.GetWallRoiFromPosition(area, transform.position); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void Trigger(PointerEventData data) |
|
|
|
|
|