|
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
09.08.2012, 18:53
|
#46
|
Оператор ЭВМ
Регистрация: 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)
|
|
09.08.2012, 19:55
|
#47
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: следование объекта за мышью
На этом же объекте висит компонент char2?
|
(Offline)
|
|
09.08.2012, 20:01
|
#48
|
Оператор ЭВМ
Регистрация: 22.07.2012
Сообщений: 37
Написано одно полезное сообщение
|
Ответ: следование объекта за мышью
нет. Char2 - это скрипт движения персонажа. Висит на капсуле.
а takeObject - это скрипт, позволяющий подобрать предмет, на котором висит этот скрипт
|
(Offline)
|
|
09.08.2012, 20:06
|
#49
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: следование объекта за мышью
Так вот, ты пытаешься получить компонент Char2 с этого объекта, а не с капсулы.
Попробуй следующим образом:
using UnityEngine; using System.Collections;
public class takeObject : MonoBehaviour { public GameObject takingHands; public Ray _ray; public RaycastHit _hit; public float speed; private char2 _char2; void Start () { _char2 = (char2)FindObjectOfType(typeof(char2)); }
void Update () { speed = _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)
|
|
Сообщение было полезно следующим пользователям:
|
|
09.08.2012, 21:15
|
#50
|
Оператор ЭВМ
Регистрация: 22.07.2012
Сообщений: 37
Написано одно полезное сообщение
|
Ответ: следование объекта за мышью
здорово! спасибо.
т.е. вы создали собственный тип переменной... дальше не понимаю
_char2 = (char2)FindObjectOfType(typeof(char2));
Объясните пожалуйста:
1. что значат скобки вокруг char2;
2. ...(typeof(char2)); что обозначает typeof?
мне понятно, что значит эта запись, но только туманно. мы ищем объект типа char2 и присваиваем его переменной _char2. Хочется конкретики по каждой из команд.
|
(Offline)
|
|
09.08.2012, 21:19
|
#51
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: следование объекта за мышью
1. приведение типа UnityEngine.Object (который возвращает функция FindObjectOfType) к типу char2
2. получение типа char2
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
10.08.2012, 18:32
|
#52
|
Оператор ЭВМ
Регистрация: 22.07.2012
Сообщений: 37
Написано одно полезное сообщение
|
Ответ: следование объекта за мышью
скажите пожалуйста, почему такую ошибку выдаёт? (скрин)
|
(Offline)
|
|
10.08.2012, 18:34
|
#53
|
Оператор ЭВМ
Регистрация: 22.07.2012
Сообщений: 37
Написано одно полезное сообщение
|
Ответ: следование объекта за мышью
http://youtu.be/KeCFk4bJOKA?t=10m56s
в этом туториале так написано и работает
|
(Offline)
|
|
10.08.2012, 19:41
|
#54
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: следование объекта за мышью
потому что Vertical
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
10.08.2012, 20:27
|
#55
|
Оператор ЭВМ
Регистрация: 22.07.2012
Сообщений: 37
Написано одно полезное сообщение
|
Ответ: следование объекта за мышью
исправил, но ошибка так и осталась
|
(Offline)
|
|
10.08.2012, 20:29
|
#56
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: следование объекта за мышью
а, не прочитал ошибку) Вероятно был в туторе js
if((Input.GetAxis("Horizontal")!= 0f) && (Input.GetAxis("Vertical")!= 0f) )
|
(Offline)
|
|
12.08.2012, 19:36
|
#57
|
Оператор ЭВМ
Регистрация: 22.07.2012
Сообщений: 37
Написано одно полезное сообщение
|
Ответ: следование объекта за мышью
Здравствуйте!
Создаю анимацию в Blender3d для камеры в Unity3d.
создал анимацию (смотрите скриншот), экспортировал в Unity, написал скрипт для проигрывания анимации при передвижении. Работает.
НО!
Камера анимирована по оси Z. Когда нажимаешь клавишу для передвижения, начинает проигрываться анимация, но становиться не возможно наклонять камеру вперёд-назад во время проигрывания анимации.
Кто-нибудь знает в чём может быть дело?
Пример покачивания камеры видел, делу не помогло (там где ходишь зимой по снегу).
Скрипт анимации:
using UnityEngine; using System.Collections; public class animationCamera : MonoBehaviour { public AnimationClip kuch; void Start () { animation.AddClip(kuch, "kuch"); } void Update () { if (Input.GetKey(KeyCode.W)) { Animate (); } } void Animate () { animation.Play("kuch"); } }
|
(Offline)
|
|
12.08.2012, 22:04
|
#58
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: следование объекта за мышью
Так это, камеру дочерним объектом сделай и делай с ней что хочешь.
|
(Offline)
|
|
12.08.2012, 22:54
|
#59
|
Оператор ЭВМ
Регистрация: 22.07.2012
Сообщений: 37
Написано одно полезное сообщение
|
Ответ: следование объекта за мышью
сейчас покажу иерархию
|
(Offline)
|
|
12.08.2012, 22:59
|
#60
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: следование объекта за мышью
Ну и в чем проблема? Удали компоненты с камеры для этого нода, поставь камеру внутрь иерархии, на ней такие же компоненты повесь для управления.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:25.
|