Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

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

дак она и так самая низшая. Пустышки не имеют роли - на них нет ничего.

Камера и так дочерний по отношению к капсуле. А на капсуле кхэректер контроллер.
(Offline)
 
Ответить с цитированием
Старый 12.08.2012, 23:32   #62
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: следование объекта за мышью

так сделай объект дочерний к камере, сделай из этого объекта камеру
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 17.08.2012, 23:02   #63
Huruffus
Оператор ЭВМ
 
Регистрация: 22.07.2012
Сообщений: 37
Написано одно полезное сообщение
Ответ: следование объекта за мышью

Спасибо pax!



Дописываю скрипт перемещения главного героя так, чтобы он мог перемещаться в воздухе (с меньшей скоростью).

С моим скриптом происходят такие проблемы: замедляется скорость падения на землю, при перемещении вне земли, гравитация перестаёт действовать на объект, прыжок становится слишком сильным.

Скажите пожалуйста, как это исправить?

using UnityEngine;
using System.Collections;

public class 
char2 MonoBehaviour {
    
//значения скоростей
    
public float speed 6.0F;
    public 
float jumpSpeed 8.0F;
    public 
float gravity;
    
    
//Значение вектора
    
private Vector3 moveDirection Vector3.zero;
    
    
void Start () {
        
renderer.enabled false;
        
        
collider.enabled true;
    }
        
    
void Update () {        
        
CharacterController controller GetComponent<CharacterController>(); //GetComponent - присваивает компонент
        
if (controller.isGrounded) {  //Поведение на земле
            
moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0Input.GetAxis("Vertical"));
            
moveDirection transform.TransformDirection(moveDirection); //TransformDirection - Преобразуем Локальные координаты в Глобальные
            
moveDirection *= speed;
            if (
Input.GetKey(KeyCode.Space))
                
moveDirection.jumpSpeed;
            
//Ускорение по нажатию кнопки LShift и замедление по отпусканию
            
if (Input.GetKey (KeyCode.LeftShift)&&(Input.GetKey(KeyCode.W)||
                                                    
Input.GetKey(KeyCode.A)||
                                                    
Input.GetKey(KeyCode.S)||
                                                    
Input.GetKey(KeyCode.D)))                
                
speed 12.0F;
            if (
Input.GetKeyUp(KeyCode.LeftShift)){
                
speed 6.0F;        
                if (
controller.isGrounded)
                    
speed 6.0F; else speed 6.0F;
            }
        }
        if (
controller.isGrounded)
                    
speed speed; else speed 6.0F;
//------------------------------------------------------
        
moveDirection.-= gravity Time.deltaTime;
        if (!
controller.isGrounded) {  //Поведение вне земли. ПРОБЛЕМЫ В ДАННОМ МЕСТЕ!!!
            
moveDirection = new Vector3(Input.GetAxis("Horizontal"), moveDirection.yInput.GetAxis("Vertical"));
            
moveDirection transform.TransformDirection(moveDirection); //TransformDirection - Преобразуем Локальные координаты в Глобальные
            
moveDirection *= speed/2;
        }
        
controller.Move (moveDirection Time.deltaTime); //controller.Move - более сложное движение. Объект скользит по мешу
        
        
controller.detectCollisions true;
    }

(Offline)
 
Ответить с цитированием
Старый 22.08.2012, 07:52   #64
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: следование объекта за мышью

Я бы вынес инпуты GetKey* наружу ифа.
if (controller.isGrounded
    
speed 6.0F; else speed 6.0F
Это условие меня повергло в шок

Это:
if (controller.isGrounded
                    
speed speed; else speed 6.0F
можно записать как
if (!controller.isGroundedspeed 6.0F
ну и
//moveDirection.y -= gravity * Time.deltaTime;        
        
if (!controller.isGrounded) {  //Поведение вне земли. ПРОБЛЕМЫ В ДАННОМ МЕСТЕ!!! 
            
moveDirection = new Vector3(Input.GetAxis("Horizontal"), moveDirection.yInput.GetAxis("Vertical")); 
            
moveDirection transform.TransformDirection(moveDirection); //TransformDirection - Преобразуем Локальные координаты в Глобальные 
            
moveDirection *= speed/2
        }
        
moveDirection.-= gravity Time.deltaTime
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
HolyDel (23.08.2012)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 14:20.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com