void Awake() { List <PathSample> patrol = new List <PathSample> (); List <PathSample> hero = new List <PathSample> (); List <PathSample> spawn = new List <PathSample> (); foreach (Transform child in patrolPathPoints) { patrol.Add(new PathSample(child.position, child.rotation, 0)); } foreach (Transform child in heroPathPoints) { hero.Add(new PathSample(child.position, child.rotation, 0)); } foreach (Transform child in spawnPoints) { spawn.Add(new PathSample(child.position, child.rotation, 0)); } PatrolPathManager.SetPath(patrol); HeroPathManager.SetPath(hero); SpawnPointManager.SetPath(spawn); }
void Awake() { instance = this; pathRenderer = Instantiate(pathPrefab, transform); pathRenderer.numPositions = 0; // pathRenderer.SetPositions ( new Vector3[0] ); path = new List <PathSample> (); nodeObjects = new List <Transform> (); }
void SpawnPerson(bool isTarget = true, int activeIndex = -1) { Transform target = isTarget ? (spawnTargets [heroPreset.female ? 1 : 0]) : spawnTargets [Random.Range(2, spawnTargets.Length)]; if (isTarget) { PathSample[] path = HeroPathManager.GetPath(); if (targetInstance != null) { Destroy(targetInstance.gameObject); } targetInstance = Instantiate(target); targetInstance.position = path[0].position; targetInstance.eulerAngles = new Vector3(0, Random.Range(0f, 360f), 0); targetInstance.GetComponent <CharacterCustomization> ().SetAppearance(heroPreset); targetInstance.gameObject.SetActive(true); followCam.target = targetInstance; targetInstance.name = "Hero"; targetInstance.GetComponent <PersonBehavior> ().UsePath(path, OnPersonEndedPath); } else { PathSample spawn = GetRandomPoint(); Transform person = Instantiate(target); person.position = spawn.position; person.eulerAngles = new Vector3(0, Random.Range(0f, 360f), 0); person.gameObject.SetActive(true); PersonBehavior behavior = person.GetComponent <PersonBehavior> (); int timerIndex = timerLength * 2; if (activeIndex != -1) { Destroy(activePeople [activeIndex].gameObject); activePeople [activeIndex] = behavior; spawnTimers [activeIndex] = Time.time + Random.Range(timerValues [timerIndex], timerValues [timerIndex + 1]); } else { activePeople.Add(behavior); spawnTimers.Add(Time.time + Random.Range(timerValues [timerIndex], timerValues [timerIndex + 1])); } SetLayerRecursively(person, peopleLayer); person.GetComponent <PersonBehavior> ().Wander(); person.parent = peopleParent; } }
void SaveFile(string location) { Debug.Log("location " + location); PathSample[] patrol = PatrolPathManager.GetPath(); PathSample[] hero = HeroPathManager.GetPath(); PathSample[] spawns = SpawnPointManager.GetPath(); Debug.Log("patrol" + patrol); // string patrol_json = JsonUtility.ToJson(patrol); string hero_json = JsonUtility.ToJson(hero); string spawns_json = JsonUtility.ToJson(spawns); Debug.Log("location " + spawns_json); File.WriteAllText(System.IO.Path.Combine(location, "tmp.txt"), spawns_json); }
// public override void OnUpdate () // { // // } public override void OnLateUpdate() { if (showError && Time.unscaledTime - errorTime >= 3f) { showError = false; } // Debug.Log ( "local" ); if (Input.GetButtonDown("Reset Quad")) // if ( Input.GetKeyDown ( KeyCode.G ) ) { motor.ResetOrientation(); control.followCam.ChangePoseType(CameraPoseType.Iso); } if (Input.GetButtonDown("Patrol Waypoint")) // if ( Input.GetKeyDown ( KeyCode.P ) ) { PatrolPathManager.AddNode(motor.Position, motor.Rotation); } if (Input.GetButtonDown("Hero Waypoint")) // if ( Input.GetKeyDown ( KeyCode.O ) ) { HeroPathManager.AddNode(motor.Position, motor.Rotation); } if (Input.GetButtonDown("Crowd Spawnpoint")) // if ( Input.GetKeyDown ( KeyCode.I ) ) { SpawnPointManager.AddNode(motor.Position, motor.Rotation); } if (Input.GetButtonDown("Deactivate Spawner")) // if ( Input.GetKeyDown ( KeyCode.N ) ) { spawner.SetActive(false); } if (Input.GetButtonDown("Activate Spawner")) // if ( Input.GetKeyDown ( KeyCode.M ) ) { if (PatrolPathManager.Count < 2) { showError = true; errorTime = Time.unscaledTime; error = "Patrol path needs at least 2 waypoints"; return; } if (HeroPathManager.Count < 2) { showError = true; errorTime = Time.unscaledTime; error = "Hero path needs at least 2 waypoints"; return; } if (SpawnPointManager.Count < 1) { showError = true; errorTime = Time.unscaledTime; error = "Need at least 1 crowd spawn point"; return; } showError = false; spawner.SetActive(true); } if (Input.GetButtonDown("Clear Patrol")) // if ( Input.GetKeyDown ( KeyCode.L ) ) { PatrolPathManager.Clear(); } if (Input.GetButtonDown("Clear Hero")) // if ( Input.GetKeyDown ( KeyCode.K ) ) { HeroPathManager.Clear(); } if (Input.GetButtonDown("Clear Crowd")) // if ( Input.GetKeyDown ( KeyCode.J ) ) { SpawnPointManager.Clear(); } Vector3 input = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Thrust"), Input.GetAxis("Vertical")); Vector3 inputVelo = new Vector3(input.x * moveSpeed, input.y * thrustForce, input.z * moveSpeed); Vector3 forward = tr.forward; forward.y = 0; Quaternion rot = Quaternion.LookRotation(forward.normalized, Vector3.up); rb.velocity = rot * inputVelo; Vector3 euler = tr.localEulerAngles; euler.x = maxTilt * input.z; euler.z = maxTilt * -input.x; tr.localEulerAngles = euler; float yaw = Input.GetAxis("Yaw"); if (yaw != 0) { tr.Rotate(Vector3.up * yaw * turnSpeed * Time.deltaTime, Space.World); camTransform.Rotate(Vector3.up * yaw * turnSpeed * Time.deltaTime, Space.World); } }