2015-09-17 4 views
1

Я работаю над переводом проекта Unity из UnityScript на C#. Я уже перевели большую часть проекта, но я столкнулся с некоторыми проблемами:Перевод UnityScript на C#: GetComponent

characterController = GetComponent(CharacterController); 

Выдает ошибку:

'UnityEngine.CharacterController' is a type but is used as a variable. 
The overloaded method that best suits 'UnityEngine.Component.GetComponent (string)' 
has invalid arguments 

И вторая ошибка:

GetComponent.<Animation>().Stop(); 

Выдает ошибку:

Only a subpoena, call, increment, and decrement, and an expectation of new object expressions 
can be used as instruction. 

Итак, это только ошибки, связанные с GetComponent, но в UnityScript он работает нормально. Как бороться с этим в C#?

ответ

2
characterController = GetComponent(CharacterController); 

Должна вызываться с дженерика, в C#:

characterController = GetComponent<CharacterController>(); 

Что касается другой линии, у вас есть дополнительные точки в середине. Должно быть:

GetComponent<Animation>().Stop(); 

(не уверен, что вам нужно указать также название конкретной анимации для остановки).

+0

Спасибо за помощь! Это работает :) У меня есть другие вопросы, чтобы спросить вас, возможно? – PokeRwOw

+0

@PokeRwOw: Счастлив, что работает на вас! Если у вас есть другие вопросы, я предлагаю вам открыть здесь новые сообщения, чтобы многие люди могли вам помочь. Приветствия. –