Skip to content

Commit db70980

Browse files
committed
Extracted typing component to its own controller, added player input
1 parent da5079e commit db70980

File tree

14 files changed

+357
-43
lines changed

14 files changed

+357
-43
lines changed

Assets/Materials/bathroomfloor.mat

4.91 KB
Binary file not shown.

Assets/Materials/bathroomfloor.mat.meta

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Materials/brick.mat

4.9 KB
Binary file not shown.

Assets/Materials/brick.mat.meta

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Models/lcp.blend

4.33 KB
Binary file not shown.

Assets/Models/lcp.blend1

-34 KB
Binary file not shown.

Assets/Scenes/Main.unity

992 Bytes
Binary file not shown.

Assets/Scripts/LcpManController.cs

Lines changed: 7 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ void StartActivity(Activities activity)
287287

288288
if (currentActivity == Activities.Typewriter)
289289
{
290-
GameObject.Find("Panel").transform.position = panelVector3;
290+
//GameObject.Find("Panel").transform.position = panelVector3;
291291
PlaySound("typewriter", true);
292292
}
293293

@@ -461,52 +461,16 @@ void DoingActivity(Activities activity)
461461
break;
462462
}
463463

464-
StartCoroutine(TypeLetter(t));
464+
GameObject.Find("GameObject").GetComponent<TypewriterController>().enabled = true;
465+
GameObject.Find("GameObject").GetComponent<TypewriterController>().characterLetter = t;
465466
}
466467

467-
hasStarted = true;
468-
}
469-
470-
private IEnumerator TypeLetter(string v)
471-
{
472-
GameObject.Find("TypewriterHead").transform.position = typewriterHeadVector3;
473-
474-
GameObject.Find("PageText (0)").GetComponent<Text>().text = "";
475-
GameObject.Find("PageText (1)").GetComponent<Text>().text = "";
476-
GameObject.Find("PageText (2)").GetComponent<Text>().text = "";
477-
GameObject.Find("PageText (3)").GetComponent<Text>().text = "";
478-
GameObject.Find("PageText (4)").GetComponent<Text>().text = "";
479-
480-
for (int x=0; x < v.Length; x++)
468+
if (currentActivity == Activities.Typewriter && GameObject.Find("GameObject").GetComponent<TypewriterController>().enabled == false && hasStarted)
481469
{
482-
string s = v.Substring(x, 1);
483-
if (s == "|")
484-
{
485-
GameObject.Find("PageText (0)").GetComponent<Text>().text = GameObject.Find("PageText (1)").GetComponent<Text>().text;
486-
GameObject.Find("PageText (1)").GetComponent<Text>().text = GameObject.Find("PageText (2)").GetComponent<Text>().text;
487-
GameObject.Find("PageText (2)").GetComponent<Text>().text = GameObject.Find("PageText (3)").GetComponent<Text>().text;
488-
GameObject.Find("PageText (3)").GetComponent<Text>().text = GameObject.Find("PageText (4)").GetComponent<Text>().text;
489-
GameObject.Find("PageText (4)").GetComponent<Text>().text = "";
490-
491-
GameObject.Find("TypewriterHead").transform.position = typewriterHeadVector3;
492-
}
493-
else
494-
{
495-
Vector3 pos = GameObject.Find("TypewriterHead").transform.position;
496-
pos.x -= 0.1f;
497-
GameObject.Find("TypewriterHead").transform.position = pos;
498-
GameObject.Find("PageText (4)").GetComponent<Text>().text += s;
499-
}
500-
501-
502-
yield return new WaitForSeconds(0.15f);
470+
state = CharacterStates.finishedactivity;
503471
}
504472

505-
yield return new WaitForSeconds(3);
506-
507-
GameObject.Find("TypewriterHead").transform.position = new Vector3(0, 0, 0);
508-
state = CharacterStates.finishedactivity;
509-
473+
hasStarted = true;
510474
}
511475

512476
void FinishedActivity(Activities activity)
@@ -589,7 +553,7 @@ void FinishedActivity(Activities activity)
589553

590554
if (currentActivity == Activities.Typewriter)
591555
{
592-
GameObject.Find("Panel").transform.position = new Vector3(0, 0, 0);
556+
GameObject.Find("GameObject").GetComponent<TypewriterController>().enabled = false;
593557
}
594558

595559
if (currentActivity == Activities.Phone)
Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
using System.Collections;
2+
using System.Collections.Generic;
3+
using UnityEngine;
4+
using UnityEngine.UI;
5+
6+
public class TypewriterController : MonoBehaviour {
7+
8+
public GameObject TypewriterHead;
9+
public GameObject PaperPanel;
10+
public List<Text> TextLines;
11+
12+
public bool enabled = false;
13+
public int hideDelay = 3;
14+
public string characterLetter;
15+
public string lastPlayerEntered;
16+
17+
private Vector3 hideVector = new Vector3(0, 0, 0);
18+
private Vector3 typewriterHeadDefaultPosition;
19+
private Vector3 paperPanelDefaultPosition;
20+
private bool isRunning = false;
21+
22+
// Use this for initialization
23+
void Start () {
24+
25+
typewriterHeadDefaultPosition = TypewriterHead.transform.position;
26+
paperPanelDefaultPosition = PaperPanel.transform.position;
27+
28+
Hide();
29+
30+
}
31+
32+
// Update is called once per frame
33+
void Update () {
34+
35+
string s = Input.inputString;
36+
37+
if (s != "" && enabled == false && isRunning == false)
38+
{
39+
StartCoroutine(PlayerInput(s));
40+
}
41+
42+
if (characterLetter != "" && enabled == true && isRunning == false)
43+
{
44+
Show();
45+
StartCoroutine(TypeLetter(characterLetter));
46+
}
47+
48+
if (enabled == false)
49+
{
50+
Hide();
51+
}
52+
53+
}
54+
55+
private void Hide()
56+
{
57+
TypewriterHead.transform.position = hideVector;
58+
PaperPanel.transform.position = hideVector;
59+
60+
characterLetter = "";
61+
enabled = false;
62+
isRunning = false;
63+
}
64+
65+
private void Show()
66+
{
67+
TypewriterHead.transform.position = typewriterHeadDefaultPosition;
68+
PaperPanel.transform.position = paperPanelDefaultPosition;
69+
70+
enabled = true;
71+
isRunning = true;
72+
}
73+
74+
private IEnumerator TypeLetter(string v)
75+
{
76+
Show();
77+
78+
foreach(Text t in TextLines)
79+
{
80+
t.text = "";
81+
}
82+
83+
for (int x = 0; x < v.Length; x++)
84+
{
85+
string s = v.Substring(x, 1);
86+
if (s == "|")
87+
{
88+
for (int line=0; line <= TextLines.Count - 1; line++)
89+
{
90+
if (line != TextLines.Count-1)
91+
TextLines[line].text = TextLines[line + 1].text;
92+
else
93+
TextLines[line].text = "";
94+
}
95+
96+
TypewriterHead.transform.position = typewriterHeadDefaultPosition;
97+
}
98+
else
99+
{
100+
Vector3 pos = TypewriterHead.transform.position;
101+
pos.x -= 0.1f;
102+
TypewriterHead.transform.position = pos;
103+
TextLines[TextLines.Count - 1].text += s;
104+
}
105+
106+
yield return new WaitForSeconds(0.15f);
107+
}
108+
109+
yield return new WaitForSeconds(3);
110+
111+
Hide();
112+
113+
114+
}
115+
116+
private IEnumerator PlayerInput(string v)
117+
{
118+
System.DateTime lastInputTime = System.DateTime.Now;
119+
bool done = false;
120+
Show();
121+
122+
foreach (Text t in TextLines)
123+
{
124+
t.text = "";
125+
}
126+
127+
while (!done)
128+
{
129+
for (int x = 0; x < v.Length; x++)
130+
{
131+
string s = v.Substring(x, 1);
132+
if (s == "\r")
133+
{
134+
for (int line = 0; line <= TextLines.Count - 1; line++)
135+
{
136+
if (line != TextLines.Count - 1)
137+
TextLines[line].text = TextLines[line + 1].text;
138+
else
139+
TextLines[line].text = "";
140+
}
141+
142+
TypewriterHead.transform.position = typewriterHeadDefaultPosition;
143+
lastPlayerEntered = TextLines[TextLines.Count - 2].text;
144+
}
145+
else if(s == "\b")
146+
{
147+
string originalText = TextLines[TextLines.Count - 1].text;
148+
if(originalText.Length > 0)
149+
{
150+
TextLines[TextLines.Count - 1].text = originalText.Substring(0, originalText.Length - 1);
151+
152+
Vector3 pos = TypewriterHead.transform.position;
153+
pos.x += 0.1f;
154+
TypewriterHead.transform.position = pos;
155+
}
156+
}
157+
else
158+
{
159+
Vector3 pos = TypewriterHead.transform.position;
160+
pos.x -= 0.1f;
161+
TypewriterHead.transform.position = pos;
162+
TextLines[TextLines.Count - 1].text += s;
163+
}
164+
}
165+
166+
yield return null;
167+
168+
v = Input.inputString;
169+
170+
if (v != "")
171+
lastInputTime = System.DateTime.Now;
172+
173+
System.TimeSpan timeDifference = System.DateTime.Now - lastInputTime;
174+
175+
if (timeDifference.Seconds > 3)
176+
done = true;
177+
178+
}
179+
180+
yield return new WaitForSeconds(3);
181+
182+
Hide();
183+
}
184+
}

Assets/Scripts/TypewriterController.cs.meta

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)