コード例 #1
0
    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);
    }
コード例 #2
0
    void Awake()
    {
        instance     = this;
        pathRenderer = Instantiate(pathPrefab, transform);
        pathRenderer.numPositions = 0;
//		pathRenderer.SetPositions ( new Vector3[0] );
        path        = new List <PathSample> ();
        nodeObjects = new List <Transform> ();
    }
コード例 #3
0
    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;
        }
    }
コード例 #4
0
    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);
    }
コード例 #5
0
//	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);
        }
    }