이것은 나를 미치게 만들었고 나는 몇 시간 동안 운이 없었습니다.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 스크립트에서 방황 스크립트를 비활성화 할 수 있습니다 방법으로 사용하거나 위임 할 수 없습니다. GetComponent 만하기 때문에 작동합니다 : 사용하려는 경우
클래스는 객체이며 메서드는 해당 객체입니다. 당신이 '나는 집에 갈거야!'라고 말하지 않는 것처럼, 방황의 개념을 불러 낼 수는 없습니다. C# 튜토리얼을 수행해야 할 수도 있습니다. – Magus
"모든 것을 불러"싶다는 것은 무엇을 의미합니까? 같은'GameObject'에'Wander' 스크립트/컴포넌트의 새로운 인스턴스/복사본을 추가하고 싶습니까? 편집 : Unity가 작동하는 방식으로 첨부 된'Wander' 스크립트 _automatically_에서'Update' 메소드를 실행합니다; 당신은 수동으로 호출해서는 안됩니다 (틀림없이). –
Wander가 활성화 (활성화)되면 _whole thing_을 수행합니다. 깨우기, 업데이트, 시작 모두 자동으로 호출됩니다. – Kay