1
這一直使我瘋狂,我一直在這個沒有幾個小時的運氣。Unity3D在另一個腳本中運行腳本
我想要做的就是從另一個腳本運行我的一個腳本。
這兩個腳本都附加到相同的遊戲對象。 這是我想用來運行其他腳本的腳本。
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」不能用作方法或委託
我的主要目標是能夠使從我TeamRed腳本禁用腳本漂移。
一個類是一個對象,方法就是它所做的事情。就像你不說'我會去做房子!'一樣,你不能只是引用流浪的概念。你可能需要做一些C#教程。 – Magus
你是什麼意思,你想「叫整個事情」?你想添加一個新的'Wander'腳本/組件的實例/副本到同一個'GameObject'嗎?編輯:Unity的工作方式,它會執行附加的'Wander'腳本的'Update'方法_automatically_;你不(可以說)不應該手動調用它。 –
當漫遊激活(並啓用)時,它會做_whole thing_。喚醒,更新,開始他們都自動調用 – Kay