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

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

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

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

Ответ
 
Опции темы
Старый 30.01.2013, 22:48   #121
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Ответ: Вотпросы от mepihin!

Слушайте, я вот в ступоре, что-то раньше делал, а сейчас не могу. Вот у меня есть CM, в котором есть функция Update() и есть мой скрипт Endurance, в котром есть это:
var endurance:float 6.0;
var 
shealendurance:boolean false;
var 
activespeed:boolean false;

function 
Update()
{
    if(
activespeed == trueendurance -= 1.0*Time.deltaTime;
    if(
endurance 0){ shealendurance trueactivespeed false; }
    if(
shealendurance == trueendurance += 1.0*Time.deltaTime;
    if(
endurance 6){ endurance 6shealendurance false; }

Мне надо сделать событие по нажатию на LShift ускорение игрока до 10, то есть я пишу:
if(Input.GetKey(KeyCode.LeftShift) && transform.GetComponent("Endurance").endurance && transform.GetComponent("Endurance").activespeed == false)
    {
        
transform.GetComponent("Endurance").activespeed true;
        
movement.maxForwardSpeed 10;
    } 
Но когда ставлю else условие или другое if в CM, то ничего не хочет правильно работать, не могли бы вы написать скриптик, чтобы в нем было примерно так:
нажал на шифт начала отниматься выносливость, отрустиль, воссстанавливаться, если < 0 то автоматически воостанавливается без возможности бега... Помогите пожалуйста
(Offline)
 
Ответить с цитированием
Старый 30.01.2013, 23:18   #122
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Вотпросы от mepihin!

var SpeedOgran = 100; // в начало скрипта
// условие в Update()
if(Input.GetKey(KeyCode.W) && Input.GetKey(KeyCode.LeftShift)) // Проверяем персонажа на нажатие кнопок W и lshift
{
    if(controller.isGrounded) // Проверяем персонажа на земле он или нет
    {
        if(SpeedOgran > 0) // проверяем персонажа на количество выносливости
        {
            SpeedOgran -= 0.1;
        }
    }
}
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mepihin (31.01.2013)
Старый 30.01.2013, 23:30   #123
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Ответ: Вотпросы от mepihin!

Вот переделал скрипт, все работает почти как надо, вот только одна проблема, когда я отпускаю Shift, то у игрока остается скорость 10... Как исправить?
#pragma strict

var SpeedOgran 6.0;
var 
controller CharacterController
var 
motor CharacterMotor
var 
activeres false;

function 
Start()
{
    
controller GetComponent(CharacterController);
    
motor GetComponent(CharacterMotor);
}
function 
Update()
{
    if(
Input.GetKey(KeyCode.LeftShift) && activeres == false// Проверяем персонажа на нажатие кнопок W и lshift
    
{
        if(
controller.isGrounded && controller.velocity.magnitude 0.3// Проверяем персонажа на земле он или нет
        
{
            if(
SpeedOgran 0// проверяем персонажа на количество выносливости
            
{
                
SpeedOgran -= 1.0*Time.deltaTime;
                
motor.movement.maxForwardSpeed 10;
            }
            if(
SpeedOgran <= && activeres == false)
                {
                    
activeres true;
                    
motor.movement.maxForwardSpeed 6;
                }
        }

    }
    if(
activeres == trueSpeedOgran += 1.0*Time.deltaTime;
    if(
SpeedOgran 6){ SpeedOgran 6activeres false; }

(Offline)
 
Ответить с цитированием
Старый 30.01.2013, 23:51   #124
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вотпросы от mepihin!

if(Input.GetKeyUp(KeyCode.LeftShift)) motor.movement.maxForwardSpeed =
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mepihin (31.01.2013)
Старый 30.01.2013, 23:55   #125
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Вотпросы от mepihin!

Дык нужно было сначала сохранить старое значение в приватку, а потом если !shift,то присваивать её.Не?
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 31.01.2013, 17:30   #126
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Ответ: Вотпросы от mepihin!

Всем спасибо.
(Offline)
 
Ответить с цитированием
Старый 31.01.2013, 23:15   #127
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Ответ: Вотпросы от mepihin!

А как сделать деактивацию всех объектов, хранящие компонент AudioSource??? Можно скриптик... У меня коло 100 таких объектов
(Offline)
 
Ответить с цитированием
Старый 01.02.2013, 00:00   #128
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вотпросы от mepihin!

Object.FindObjectsOfType(typeof(AudioSource))
(Offline)
 
Ответить с цитированием
Старый 01.02.2013, 18:34   #129
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Ответ: Вотпросы от mepihin!

public GameObject[] AOAS FindObjectsOfType(typeof(AudioSource)) as AOAS[];

AOAS.audio.Pause(); 
ошибка
`Pause.AOAS' is a `field' but a `type' was expected
(Offline)
 
Ответить с цитированием
Старый 01.02.2013, 18:48   #130
Lestar
Бывалый
 
Аватар для Lestar
 
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений
(для 880 пользователей)
Ответ: Вотпросы от mepihin!

AudioSource[] AOAS = FindObjectsOfType(typeof(AudioSource)) as AudioSource[];
      for (int i = 0; i < AOAS.Length; i++)
	    {
	        AOAS[i].Pause();
	    }
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
(Offline)
 
Ответить с цитированием
Старый 01.02.2013, 19:13   #131
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Ответ: Вотпросы от mepihin!

Сообщение от Lestar Посмотреть сообщение
AudioSource[] AOAS = FindObjectsOfType(typeof(AudioSource)) as AudioSource[];
      for (int i = 0; i < AOAS.Length; i++)
	    {
	        AOAS[i].Pause();
	    }
Спасибо, но вот как теперь продолжать то звук???
using UnityEngine;
using System.Collections;

public class 
Pause MonoBehaviour {
    
    public 
bool IsPause false;
    private 
CharacterController controller;
    
void Start()
    {
        
controller transform.GetComponent<CharacterController>();    
    }
    
    
void Update()
    {
        
AudioSource[] AOAS FindObjectsOfType(typeof(AudioSource)) as AudioSource[];
        if(
Input.GetKeyDown(KeyCode.Escape) && IsPause == false && controller.isGrounded)
        {
            
Time.timeScale 0;
            
transform.GetComponent<MouseLook>().enabled false;
            
transform.FindChild("Main Camera").GetComponent<MouseLook>().enabled false;
                  for (
int i 0AOAS.Lengthi++)
                    {
                        
AOAS[i].Pause();
                    }
            
IsPause true;
        }
        else
        {
            if(
Input.GetKeyDown(KeyCode.Escape) && IsPause == true)
            {
                
Time.timeScale 1;
                
transform.GetComponent<MouseLook>().enabled true;
                
transform.FindChild("Main Camera").GetComponent<MouseLook>().enabled true;
                  for (
int i 0AOAS.Lengthi--)
                    {
                        
AOAS[i].Play();
                    }                
                
IsPause false;
            }                
        }
    }
    

(Offline)
 
Ответить с цитированием
Старый 01.02.2013, 22:25   #132
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Ответ: Вотпросы от mepihin!

Подскажет кто нет? как реализовать в скрипте выше воспроизведение всех звуков обратно
(Offline)
 
Ответить с цитированием
Старый 01.02.2013, 22:32   #133
Lestar
Бывалый
 
Аватар для Lestar
 
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений
(для 880 пользователей)
Ответ: Вотпросы от mepihin!

Ты пишешь
for (int i = 0; i > AOAS.Length; i--)
                    {
                        AOAS[i].Play();
                    }
То есть ты пытаешься так же и за границей коллекции оперировать ее элементами. Причем через декремент i. Корректно же
for (int i = 0; i < AOAS.Length; i++)
                    {
                        AOAS[i].Play();
                    }
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mepihin (01.02.2013)
Старый 01.02.2013, 22:50   #134
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Ответ: Вотпросы от mepihin!

Сообщение от Lestar Посмотреть сообщение
Ты пишешь
for (int i = 0; i > AOAS.Length; i--)
                    {
                        AOAS[i].Play();
                    }
То есть ты пытаешься так же и за границей коллекции оперировать ее элементами. Причем через декремент i. Корректно же
for (int i = 0; i < AOAS.Length; i++)
                    {
                        AOAS[i].Play();
                    }
Спасибо, я просто думал, что надо делать обратное действие...
(Offline)
 
Ответить с цитированием
Старый 02.02.2013, 22:27   #135
mepihin
ПроЭктировщик
 
Регистрация: 31.12.2012
Сообщений: 165
Написано 5 полезных сообщений
(для 7 пользователей)
Ответ: Вотпросы от mepihin!

#pragma strict

var IsWalking:boolean false;

function 
Update () {
    if(
Input.GetKeyDown(KeyCode.C) && IsWalking == false)
    
// авто движение включено
    
else
    {
        if(
Input.GetKeyDown(KeyCode.C) && IsWalking == true)
        
//авто движение отключено
    
}

Как сделать автодвижение вперед???
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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