Это сводило меня с ума, и я безуспешно занимался этим часами.
Все, что я хочу сделать, это запустить один из моих сценариев из другого сценария.
Оба скрипта привязаны к одному и тому же игровому объекту. Вот сценарий, который я хочу использовать для запуска другого сценария.
using UnityEngine;
using System.Collections;
public class RedTeam : MonoBehaviour {
public Wander wanderScript;
void Awake(){
wanderScript = GetComponent<Wander>();
}
void Update(){
wanderScript();
}
}
Вот мой скрипт блуждания...
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(CharacterController))]
public class Wander : MonoBehaviour
{
public float speed = 5;
public float changeDirectionTime = 1;
public float maxDegreesToChange = 30;
CharacterController controller;
float heading;
Vector3 targetRotation;
void Awake ()
{
controller = GetComponent<CharacterController>();
// Set random rotation
heading = Random.Range(0, 360);
transform.eulerAngles = new Vector3(0, heading, 0);
StartCoroutine(NewHeading());
}
void Update ()
{
transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, targetRotation, Time.deltaTime * changeDirectionTime);
var forward = transform.TransformDirection(Vector3.forward);
controller.SimpleMove(forward * speed);
}
IEnumerator NewHeading ()
{
while (true) {
NewHeadingRoutine();
yield return new WaitForSeconds(changeDirectionTime);
}
}
void NewHeadingRoutine ()
{
var floor = Mathf.Clamp(heading - maxDegreesToChange, 0, 360);
var ceil = Mathf.Clamp(heading + maxDegreesToChange, 0, 360);
heading = Random.Range(floor, ceil);
targetRotation = new Vector3(0, heading, 0);
}
}
Это ошибка, которую я получаю.
ошибка CS1955: член RedTeam.wanderScript не может использоваться как метод или делегат
Моя главная цель — иметь возможность включать и отключать скрипт Wander из моего скрипта TeamRed.
Wander
скрипта/компонента в тот жеGameObject
? РЕДАКТИРОВАТЬ: как работает Unity, он будет выполнять методUpdate
в прикрепленном скриптеWander
автоматически; вы не (и, возможно) не должны вызывать его вручную. - person Chris Sinclair   schedule 02.04.2014