using System;
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityStandardAssets.Characters.ThirdPerson;
public class Multiple_objects : MonoBehaviour {
public GameObject prefab;
public GameObject[] gos;
public int NumberOfObjects;
private ThirdPersonCharacter[] thirdPersonCharacter;
private Animator[] _animator;
private int count = 0;
private List<float> floats = new List<float>();
public float smooth = 1f;
private Vector3 targetAngles;
void Awake()
{
Vector3 v3 = prefab.transform.position;
_animator = new Animator[NumberOfObjects];
gos = new GameObject[NumberOfObjects];
for(int i = 0; i < gos.Length; i++)
{
count = count + 2;
GameObject clone = (GameObject)Instantiate(prefab, Vector3.zero, Quaternion.identity);
gos [i] = clone;
gos [i].transform.position = new Vector3 (v3.x - count, v3.y, v3.z);
_animator [i] = gos[i].GetComponent<Animator>();
float randomspeed = 0f;
// Keep repeating this until we find an unique randomspeed.
while(randomspeed == 0f || floats.Contains(randomspeed))
{
randomspeed = UnityEngine.Random.Range(1.0f, 15.0f);
}
floats.Add (randomspeed);
//float vertInput = 1.0f;
_animator [i].SetFloat ("Speed", randomspeed);
if (randomspeed != 0.0f)
_animator[i].speed = randomspeed;
else
_animator [i].speed = 1.0f;
}
}
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
if(Input.GetKeyDown(KeyCode.S)) // some condition to rotate 180
targetAngles = gos[5].transform.eulerAngles + 180f * Vector3.up; // what the new angles should be
transform.eulerAngles = Vector3.Lerp(gos[5].transform.eulerAngles, targetAngles, smooth * Time.deltaTime); // lerp to new angles
}
}
:ThirdPersonControllerとThirdPersonControllerは、(1)歩いているときにキャラクターを180度回転させるにはどうすればいいですか?私は2つのThirdPersoncontroller持つ階層内
を私はThirdPersonControllerにスクリプトを入れて、プレハブはThirdPersonControllerである(1)、それはより多くの15 ThirdPersonControllersをクローニングしています。
次に、クローン作成された15人のプレーヤーのそれぞれが別の速度で歩いています。 更新機能でSキーを押すとThirdPersonControllerが180度回転し、クローンされた15人のプレイヤーもすべて180度回転してこの方向に歩き続けます。
私がしたいのは、Zポジションになっているプレイヤーの1人がこのプレイヤーだけを180度回転させ、180度回転させて2回転目を180度回転させた後、向きを変えて歩くことです。
私は現在、Sキーを条件として使用していますが、それはThirdPersonControllerを回しており、すべてのクローンが彼に従って回転し、方向を変えて歩いています。
私はgos [0] .transformもgos [5] .transformを使用しようとしましたが、5番目のクローンだけを回転させるのではなく、すべて180度にします。
私は(gos [0] .transform.position.z == 108.9377f)またはif(gos [0] .transform.position.z == 100)の条件を試しましたが、次の行はブレークポイントを使いました。
をこのような何かをしたいと思いますあなたの次の質問に編集:http://stackoverflow.com/questions/38681737/how-can-i-make-my-waypoints-to-workあなたは私の答えを使用しているようです。この質問に回答してください。 – spatbord