Показать сообщение отдельно
Старый 21.02.2013, 22:29   #33
EvilOkta
Знающий
 
Аватар для EvilOkta
 
Регистрация: 31.07.2008
Сообщений: 321
Написано 108 полезных сообщений
(для 229 пользователей)
Ответ: Передача переменной в метод

Хм, пробую передать в метод переменную через интерфейс, компилятор ругается что я пытаюсь передать field как property, понимаю что несоответствие типов, тогда мне либо поле нужно объявить как свойство, либо научиться их передавать. Ниже скрипт (понимаю что много огорода). Задача передать интерфейсом поле UnitAngleNS и увеличить на 1. Для теста само собой.

using UnityEngine;
using System.Collections;

public interface 
IMoveDirection {
    
int Direction {getset;}
}

public class 
MoveGamer MonoBehaviourIMoveDirection {
    
    public 
bool UnitIsMove false// Движется ли юнит?
    
public float UnitCurrentAngle 100f// Скорость вращения юнита
    
public Vector3 UnitRotatingVectorUnitRotationPoint// Вектор вращения и точка вращения юнита
     
public    bool UnitSetMove true// Переменная отвечающая за инициализацию вектора
    
public int UnitAngleNSUnitAngleEW 0// Текущие углы поворота север-юг/запад-восток. Исходные углы = 0, Север+, Юг-, Восток-, Запад+
    
public string UnitDirection// Направление движения
    
public int UnitXPosUnitYPos;
    
    public 
int Direction
    
{
        
get{ return Direction;}
        
setDirection value;}
    }
    
    
// Use this for initialization
    
void Start () 
    {
    
    }
    
    
// Update is called once per frame
      
    
void Update () 
    {
         
UnitWaitMove (); // Юнит ожидает движение
    
}
    
    public 
void UnitWaitMove () 
    {    
    
        
// Блок выбора направления движения
        
if ((Input.GetKeyDown(KeyCode.W)) & !(UnitIsMove)) UnitDirection "North"// север
        
if ((Input.GetKeyDown(KeyCode.S)) & !(UnitIsMove)) UnitDirection "South"// юг
        
if ((Input.GetKeyDown(KeyCode.D)) & !(UnitIsMove)) UnitDirection "East"// восток
        
if ((Input.GetKeyDown(KeyCode.A)) & !(UnitIsMove)) UnitDirection "West"// запад
        
        
if (UnitDirection != ""UnitSetMove true// Если команда задана, то инициировать вектор поворота
        
if (UnitSetMoveRotatePlayerUnit(MoveGamer.UnitAngleNS);    
    }
    
        
    public 
void RotatePlayerUnit(Direction MoveGamer
    {
        
MoveGamer.Direction++;
        }
    }

__________________
Области Хаоса - мой новый Youtube проект
(Offline)
 
Ответить с цитированием