Показать сообщение отдельно
Старый 09.08.2012, 18:53   #46
Huruffus
Оператор ЭВМ
 
Регистрация: 22.07.2012
Сообщений: 37
Написано одно полезное сообщение
Ответ: следование объекта за мышью

получаю переменную "speed" из другого класса. нажимаю debug в monoDevelop, он не ругается. Запускаю игру нажимаю "Е" и в консоли появляется такое сообщение:
NullReferenceException: Object reference not set to an instance of an object
takeObject.Update () (at Assets/scripts/takeObject.cs:16)

весь скрипт не работает. Подскажите пожалуйста как исправить?

собственно скрипт:
using UnityEngine;
using System.Collections;

public class takeObject : MonoBehaviour {
	public GameObject takingHands;
	public Ray _ray;
	public RaycastHit _hit;
	public float speed;
	
	void Start () {
		
	}
	
	void Update () {
		speed = GetComponent<char2>().speed;  //////ОШИБОЧНАЯ СТРОЧКА
		
		if (Input.GetKeyUp(KeyCode.E)){
			_ray = Camera.main.ScreenPointToRay(Input.mousePosition);
			if (collider.Raycast(_ray, out _hit, 10)){						
				//originTransformTakingHands.transform.position = transform.position;
				rigidbody.isKinematic = true;
				_hit.collider.transform.parent = Camera.main.transform;
				transform.position = takingHands.transform.position;
			}
		}
		if (gameObject.transform.parent != null){
			if (Input.GetKey(KeyCode.F)){
					print ("F - entered");//
					transform.parent = null;
					rigidbody.isKinematic = false;
					gameObject.rigidbody.AddForce(Camera.main.transform.forward * speed, ForceMode.Impulse);
				}	
		}
	}
}
(Offline)
 
Ответить с цитированием