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

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

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

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

Ответ
 
Опции темы
Старый 22.10.2012, 15:05   #676
Lestar
Бывалый
 
Аватар для Lestar
 
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений
(для 880 пользователей)
Ответ: Вопросы от новичка

Можно было и из ресурсов ГО загрузить.
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
(Offline)
 
Ответить с цитированием
Старый 24.10.2012, 20:22   #677
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Вопросы от новичка

Имею два класса(файла скрипта):
main.cs :
using UnityEngine;
using System.Collections;

public class main : MonoBehaviour {

	// Use this for initialization
    public player[] pl = new player[2];

    public void Position(GameObject go, float x, float y, float z){go.transform.position = new Vector3(x, y, z);}
    public void Move(GameObject go, float x, float y, float z){go.transform.Translate(x, y, z);}

	void Start () {
        Camera cam = new GameObject("cam").AddComponent<Camera>();
        cam.transform.position = new Vector3(0, 0, -5);

        pl[0] = new GameObject("player1").AddComponent<player>();
        pl[0].CreatePlayer(0, 0, "asd");
	}
	
	// Update is called once per frame
	void Update () {

	}
}


player.cs :
using UnityEngine;
using System.Collections;

public class player : MonoBehaviour 
{
    public main m;
    void Awake() { m = GetComponent<main>(); }

    public GameObject body, turret;
    public string name;

	void Start () 
    {
	}

    public void CreatePlayer(int x, int z, string type)
    {
        body = GameObject.CreatePrimitive(PrimitiveType.Cube);
        body.name = "body";
        body.transform.parent = gameObject.transform;
        m.Position(body, 0, -1.0f, 0);
        body.transform.position = new Vector3(x, 0, z);
        body.transform.localScale = new Vector3(1, 0.5f, 1);
     
        turret = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        turret.name = "turret";
        turret.transform.position = new Vector3(x, 0.5f, z);
        turret.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f);
        turret.transform.parent = body.transform;
     
        name = type;
     }
	
    void Update()
    {
        if (m)
        {
            if (Input.GetKey(KeyCode.LeftArrow))
                m.Move(body, -0.1f, 0, 0);
            else if (Input.GetKey(KeyCode.RightArrow))
                m.Move(body, 0.1f, 0, 0);
        }
	}
}


ну соответственно в сцене имею main (GameObject на котором висит main.cs). В результате при запуске имею следующую ошибку:
NullReferenceException: Object reference not set to an instance of an object
player.CreatePlayer (Int32 x, Int32 z, System.String type) (at Assets/player.cs:21)
main.Start () (at Assets/main.cs:17)
Двойной клик по ошибке отправляет в файо player.cs на строку:
        m.Position(body, 0, -1.0f, 0);
вопрос1 - почему?
вопрос2 - как исправить?

Можно конечно просто писать body.transform.position... и т.д., тогда всё как надо работает. Но хочется как то упростить себе жизнь, подготовив основные функции для работы с движением/позицией/ротацией и т.д. (отходить от блица конечно надо скорее, но пока хочется печатать поменьше, точнее написать один раз много и потом писать по малу). Или надо эти мои общие функции писать не в классе main, а где то в другом месте?



UPD
решено:
добавил отдельный скрипт functions.cs
using UnityEngine;
using System.Collections;

public class functions : MonoBehaviour 
{
    public void Position(GameObject go, float x, float y, float z) { go.transform.position = new Vector3(x, y, z); }
    public void Move(GameObject go, float x, float y, float z) { go.transform.Translate(x, y, z); }
}


и в нужных скриптах прописал
private functions m;
    
void Awake() {gameObject.AddComponent<functions>(); } 
ну и далее m.Move...

наверное тоже очень некорректно, но работает.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Старый 25.10.2012, 11:04   #678
pie
ПроЭктировщик
 
Аватар для pie
 
Регистрация: 04.11.2011
Сообщений: 176
Написано 19 полезных сообщений
(для 64 пользователей)
Ответ: Вопросы от новичка

Кто работал с VK.Api помогите. Размещаю на стене пользователя запись. Для того чтобы сообщение было видно делаю размер игрового окна 1x1. Как мне вернуть первоначальное значение после размещения записи на стене?
VK.callMethod("resizeWindow", 1, 1);
VK.api('wall.post', {message: "текс"});
(Offline)
 
Ответить с цитированием
Старый 25.10.2012, 14:28   #679
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Думаю так у тебя заработает:
void Awake() { main = (main)FindObjectOfType(typeof(main)); } 
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (25.10.2012)
Старый 25.10.2012, 14:30   #680
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Вопросы от новичка

Сообщение от pax Посмотреть сообщение
Думаю так у тебя заработает:
void Awake() { main = (main)FindObjectOfType(typeof(main)); } 
Пост свой уже удалил, т.к. дошёл до этого на минуту раньше чем получил ответ. Но всё равно спасибо! Тем более, что этот же ответ подойдёт и в предыдущий мой пост. Только там я проблему решил очень корявым способом, сейчас заодно и исправлю.
Вообще заметил за собой такую вещь в большинстве случаев - думаю над чем то, думаю, никак не додумаюсь. Только спрошу на форуме как сделать то, над чем думал - сразу сам до решения дохожу. Волшебство Булочки, не иначе!
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Старый 25.10.2012, 14:55   #681
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Сообщение от St_AnGer Посмотреть сообщение
Вообще заметил за собой такую вещь в большинстве случаев - думаю над чем то, думаю, никак не додумаюсь. Только спрошу на форуме как сделать то, над чем думал - сразу сам до решения дохожу. Волшебство Булочки, не иначе!
Нет это закономерно, потому что правильно задав вопрос ты уже на половину знаешь ответ
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (25.10.2012)
Старый 27.10.2012, 15:34   #682
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Вопросы от новичка

Как убрать слайдинг в стандартном Input Platform Controller?
визуально не получается. Слайдинг все равно есть. Что не есть хорошо
(Offline)
 
Ответить с цитированием
Старый 27.10.2012, 18:58   #683
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Кто-нибудь знает, если в Surface шейдере задать параметр noambient, т.е. выключить окружающий свет, то как сделать финальный цвет не черный?
(Offline)
 
Ответить с цитированием
Старый 27.10.2012, 19:14   #684
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Сообщение от WISHMASTER35 Посмотреть сообщение
Кто-нибудь знает, если в Surface шейдере задать параметр noambient, т.е. выключить окружающий свет, то как сделать финальный цвет не черный?
Пример хоть шейдера покажи
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 27.10.2012, 19:39   #685
ARA
ТЫ ЧООО?
 
Аватар для ARA
 
Регистрация: 26.02.2007
Сообщений: 3,369
Написано 2,020 полезных сообщений
(для 7,192 пользователей)
Ответ: Вопросы от новичка

Кто-нибудь знает, если в Surface шейдере задать параметр noambient, т.е. выключить окружающий свет, то как сделать финальный цвет не черный?
По логике если финальный цвет получается чёрный без амбиента, то можно его чорным сделать и с включённым амбиентом, тупо придав амбиенту чёрный цвет в Edit -> Render Settings. Тамже можно его и белым сделать и каким угодно.
__________________
Вертекс в глаз или в пиксель раз?
(Offline)
 
Ответить с цитированием
Старый 27.10.2012, 21:52   #686
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Дошло)
void MyFinalColor(Input IN, SurfaceOutput o, inout fixed4 color) {
color.rgb = o.Albedo.rgb * UNITY_LIGHTMODEL_AMBIENT * 2;
color.a = o.Alpha;
}
Вот только не пойму зачем на 2 умножать? Почему UNITY_LIGHTMODEL_AMBIENT сразу не содержит финальное значение?
(Offline)
 
Ответить с цитированием
Старый 28.10.2012, 00:38   #687
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

я как-то опытным путем домножал на 2.6...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 28.10.2012, 00:40   #688
jimon
 
Сообщений: n/a
Ответ: Вопросы от новичка

может оно в sRGB, а видеокарте надо RGB, тогда гамма-коррекцию надо делать
 
Ответить с цитированием
Старый 28.10.2012, 00:42   #689
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Вопросы от новичка

Как убрать слайдинг в стандартном Input Platform Controller?
визуально не получается. Слайдинг все равно есть. Что не есть хорошо
Очень нужно
(Offline)
 
Ответить с цитированием
Старый 28.10.2012, 00:44   #690
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Сообщение от Okay Посмотреть сообщение
Очень нужно
Код бы сюда запостил посмотреть, лень проект создавать для этого...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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