2014-10-29 3 views
0

Я делаю игру RTS стиль и у меня есть ошибка:ошибка CS0120: Ссылка на объект требуется для доступа к нестатический член `CameraOperator.InvertMouseY (флоат)»

error CS0120: An object reference is required to access non-static member `CameraOperator.InvertMouseY(float)'

Вот скрипт с ошибка:

camPos.y = CameraOperator.InvertMouseY (camPos.y); 

Мне сказали сделать экземпляр, но не знаю, что именно делать. Мне сказали использовать, но не знаете, как его написать. Если он заменяет всю строку или просто часть.

CameraOperator co; co.InvertMouseY (camPos.y);

Вот весь сценарий

using UnityEngine; 
using System.Collections; 
using System.Collections.Generic; 

public class Unit2 : MonoBehaviour 
{ 
    public bool selected = false; 

    private void Update() 
    { 
      if (renderer.isVisible && Input.GetMouseButtonDown (0)) { 
        Vector3 camPos = Camera.main.WorldToScreenPoint (transform.position); 
        camPos.y = CameraOperator.InvertMouseY(camPos.y); 
        selected = CameraOperator.Selection.Contains (camPos); 
      } 
      if (selected) { 
        renderer.material.color = Color.red; 
      } else { 
        renderer.material.color = Color.white; 
      } 
    } 

}

+1

Что такое 'CameraOperator'? Если это класс, то вам нужен экземпляр для доступа к нестационарным членам. – Mahesh

+0

Это может быть полезно. http://www.tutorialspoint.com/cplusplus/cpp_classes_objects.htm –

ответ

0

вы пытаетесь вызвать функцию-член CameraOperator без экземпляра объявляющего класса.

Также InvertMouseY(), как представляется, объявляется как функция-член, для которого требуется получить экземпляр фактического класса.

0

CameraOperator является классом, и вы пытаетесь вызвать InvertMouseY, как если бы это была статическая функция.

Вам нужен экземпляр,

CameraOperator co; 
co.InvertMouseY(camPos.y); 
+0

заменит ли он всю строку или часть этой строки, я нооби. –

+1

Возможно, вы обнаружите, что есть экземпляр «CameraOperator» где-то уже, выполните поиск и выясните, что еще использует его. – Aesthete

+0

И если нет, тогда у вас есть недостаток дизайна или вы не знаете, что делает ваша собственная программа. Обе большие проблемы. –

Смежные вопросы

 Смежные вопросы