Я изучаю C# и Unity3D с «Изучением C# путем разработки игр с Unity #D Beginner's Guide» Терри Нортона, и я заблокирован ошибкой.Доступ к методу transform.Rotate в пользовательском классе?
У меня возникли проблемы с доступом к методу transform.Rotate через пользовательскую переменную класса.
Ниже приведена ошибка.
активов/Код/государство/SetupState.cs (26,76): ошибка CS1061: Тип
PlayerControl' does not contain a definition for
transfrom 'и не расширения методаtransfrom' of type
PlayerControl' можно найти (вы недостающие с помощью директивы или ссылка на сборку?)
SetupState.cs, государство, которое пытается получить доступ к transform.Rotate по типу variab PlayerControl le контроллер.
using UnityEngine;
using Assets.Code.Interfaces;
using System.Collections;
namespace Assets.Code.States
{
public class SetupState : IStateBase
{
private StateManager manager;
private GameObject player;
private PlayerControl controller;
public SetupState (StateManager managerRef)
{
manager = managerRef;
if(Application.loadedLevelName != "Scene0")
Application.LoadLevel("Scene0");
player = GameObject.Find ("Player");
controller = player.GetComponent<PlayerControl>();
}
public void StateUpdate()
{
if (!Input.GetButton ("Jump"))
controller.transfrom.Rotate (0, controller.setupSpinSpeed * Time.deltaTime);
//above tries to access transform.Rotate via controller
}
public void ShowIt()
{
GUI.Box (new Rect (10, 10, 100, 180), "Player Color");
if (GUI.Button (new Rect (20, 40, 80, 200), "Red"))
controller.PickedColor (controller.red);
if (GUI.Button (new Rect (20, 70, 80, 200), "Blue"))
controller.PickedColor (controller.blue);
if (GUI.Button (new Rect (20, 100, 80, 200), "Green"))
controller.PickedColor (controller.green);
if (GUI.Button (new Rect (20, 130, 80, 200), "Yellow"))
controller.PickedColor (controller.yellow);
if (GUI.Button (new Rect (20, 160, 80, 200), "White"))
controller.PickedColor (controller.white);
GUI.Label (new Rect (Screen.width/2 - 95, Screen.height - 100, 190, 30),
"Hold Spacebar to pause rotation");
if (GUI.Button (new Rect (Screen.width/2 - 100, Screen.height - 50, 200, 40),
"Click Here or Press 'P' to Play") || Input.GetKeyUp (KeyCode.P))
manager.SwitchState (new PlayStateScene1_1 (manager));
}
}
}
PlayerControl.cs, определение класса класса PlayerControl очевидно.
using UnityEngine;
using System.Collections;
public class PlayerControl : MonoBehaviour {
public float setupSpinSpeed = 50.0f;
public Color red = Color.red;
public Color blue = Color.blue;
public Color green = Color.green;
public Color yellow = Color.yellow;
public Color white = Color.white;
void Start() {
}
void Update() {
}
public void PickedColor(Color playerColor){
renderer.material.color = playerColor;
}
}
В книге говорится, что связывающая сценария PlayerControl.cs с 3D игры объекта это единственное, что мне нужно сделать, чтобы получить доступ к метод transform.Rotate и я сделал ссылку PlayerControl.cs и игровой объект «Игрок» вместе. http://i.imgur.com/0oH9hYs.png // Кажется, что я еще не могу загрузить изображения.
Я не носитель языка на английском языке, а книга переведена на корейский, поэтому некоторые термины, вероятно, используются неадекватными способами, поэтому извините меня за это. И вопрос - немой нуб, но, пожалуйста, будь хорошим помощником парня, спасибо.
Все еще не работает. Можете ли вы проверить http://i.imgur.com/0oH9hYs.png для меня, посмотрите, правильно ли она связана? Thx –
Я пробовал преобразовать ... Тупой меня. –