Страница 1 из 1

Получение переменной из другого скрипта

СообщениеДобавлено: 14 фев 2017, 07:17
Dragon-FAST
Знаю, что таких вопросов очень много... Но у меня просто пишет ошибку.
Текст ошибки:
Assets/scripts/shooter.cs(10,64): error CS0201: Only assignment, call, increment, decrement, and new object expressions can be used as a statement
Вот скрипт:
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class shooter : MonoBehaviour {
        public float maxSpeed = 13f;
        private float move = 0;
        public bool isFacing = true;
        public void FixedUpdate()
        {
                GetComponent<SheenaController> ().isFacingRight;
                if (isFacingRight == true) {
        move = 1;
                } else {
        move = -1;
                }
                GetComponent<Rigidbody2D>().velocity = new Vector2 (move * maxSpeed, GetComponent<Rigidbody2D>().velocity.y);
}
}

Подскажите в чём ошибка?
Заранее всем спасибо!))

Re: Получение переменной из другого скрипта

СообщениеДобавлено: 14 фев 2017, 07:30
greatPretender
void Start(){
isFacing = GetComponent<SheenaController> ().isFacingRight;

}

Re: Получение переменной из другого скрипта

СообщениеДобавлено: 14 фев 2017, 11:23
Rpabuj1
Скрипты должны висеть на объектах. То есть, сначала берем объект, потом скрипт на нем, потом переменную.

имя_объекта.getComponent<имя_скрипта>().имя_переменной;

Re: Получение переменной из другого скрипта

СообщениеДобавлено: 14 фев 2017, 11:59
Dragon-FAST
Rpabuj1 писал(а):Скрипты должны висеть на объектах. То есть, сначала берем объект, потом скрипт на нем, потом переменную.

имя_объекта.getComponent<имя_скрипта>().имя_переменной;

Спасибо получилось как раз по твоей компоновке!))
кому может понадобиться вот мой скрипт:
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class shooter : MonoBehaviour {
        public int move = -1;
        public bool lr = true;
        public GameObject sheena;
        public void Start()
        {
                lr = sheena.GetComponent<SheenaController> ().isFacingRight;
                if (lr == true) {
                        move = 1;
                } else {
                        move = -1;
                }
        }
        public void FixedUpdate()
        {
                if (move > 0) {
                        GetComponent<Rigidbody2D> ().AddForce (new Vector2 (20, 0));
                } else {
                        GetComponent<Rigidbody2D> ().AddForce (new Vector2 (-20, 0));
                }
}
        public void Update(){
                Destroy (gameObject, 1);
        }
}

Re: Получение переменной из другого скрипта

СообщениеДобавлено: 14 фев 2017, 12:25
Rpabuj1
Dragon-FAST писал(а):
Rpabuj1 писал(а):Скрипты должны висеть на объектах. То есть, сначала берем объект, потом скрипт на нем, потом переменную.

имя_объекта.getComponent<имя_скрипта>().имя_переменной;

Спасибо получилось как раз по твоей компоновке!))
кому может понадобиться вот мой скрипт:
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class shooter : MonoBehaviour {
        public int move = -1;
        public bool lr = true;
        public GameObject sheena;
        public void Start()
        {
                lr = sheena.GetComponent<SheenaController> ().isFacingRight;
                if (lr == true) {
                        move = 1;
                } else {
                        move = -1;
                }
        }
        public void FixedUpdate()
        {
                if (move > 0) {
                        GetComponent<Rigidbody2D> ().AddForce (new Vector2 (20, 0));
                } else {
                        GetComponent<Rigidbody2D> ().AddForce (new Vector2 (-20, 0));
                }
}
        public void Update(){
                Destroy (gameObject, 1);
        }
}

Рад, что смог помочь :)
Удачи вам!