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

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

Вернуться   www.boolean.name > Программирование игр для компьютеров > Unity > Уроки

Ответ
 
Опции темы
Старый 13.02.2013, 22:25   #1
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Назначит материал через скрипт

Допустим, есть некий материал. С помощью скрипта создается куб.
Как через скрипт применить на куб материал? По аналогии "EntityTexture (cube,tex)"
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Старый 14.02.2013, 05:26   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,502
Написано 2,957 полезных сообщений
(для 5,222 пользователей)
Ответ: Назначит материал через скрипт

public Material myMaterial;

...
renderer.material myMaterial
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
PassCall (14.02.2013)
Старый 14.02.2013, 08:47   #3
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Назначит материал через скрипт

Сообщение от pax Посмотреть сообщение
public Material myMaterial;

...
renderer.material myMaterial
то есть для каждого материала нужно создавать паблик?
И renderer - это сам объект или имя объекта?
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Старый 14.02.2013, 09:11   #4
cahekp
Разработчик
 
Аватар для cahekp
 
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений
(для 883 пользователей)
Ответ: Назначит материал через скрипт

renderer - это аналог gameObject.GetComponent<Renderer>().
То есть, допустим, создал ты куб через:
GameObject cube = Instantiate(cubePrefab, position, rotation) as GameObject;
Поменять материал на нем можно через:
cube.renderer.material = someMaterial;, где someMaterial - ссылка на твой материал в проекте.
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
PassCall (14.02.2013)
Старый 14.02.2013, 14:10   #5
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Назначит материал через скрипт

в общем создал материал с именемен "mt" и присваиваю его кубу, однако куб просто стал фиолетовым

код:
using UnityEngine;
using System.Collections;

public class 
NewBehaviourScript MonoBehaviour {
    public 
Material mt;
    

    
void Start () {
        
GameObject cube GameObject.CreatePrimitive(PrimitiveType.Cube);
        
cube.transform.position = new Vector3(0,0,5);
        
cube.renderer.material=mt;
    }
    
    
void Update () {
    
    }

Видимо, переменной mt надо предварительно присвоить параметры материала "mt", но как это сделать?
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Старый 14.02.2013, 14:12   #6
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,502
Написано 2,957 полезных сообщений
(для 5,222 пользователей)
Ответ: Назначит материал через скрипт

Материал надо создать в Project, потом назначить его на переменную mt твоего скрипта перетаскиванием.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
PassCall (14.02.2013)
Старый 14.02.2013, 16:15   #7
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Назначит материал через скрипт

Вот еще вопрос:
в проект импортирована некая модель в формате *.3DS

но как её вывести на сцену?
нагуглил такой вариант
public Material mt
public 
GameObject me;
private 
GameObject go

    
void Start () {
        
go = (GameObject)Instantiate(me);
        
go.transform.position = new Vector3(0,0,20); 
        
go.renderer.material=mt;
    } 
объект появляется, однако на попытку присвоить материал сильно ругается
Нажмите на изображение для увеличения
Название: Без-имени-2.png
Просмотров: 394
Размер:	4.8 Кб
ID:	18781


уже разобрался как выводить объекты на сцену .
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com

Последний раз редактировалось PassCall, 14.02.2013 в 19:52.
(Offline)
 
Ответить с цитированием
Старый 17.02.2013, 14:52   #8
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 36 полезных сообщений
(для 59 пользователей)
Ответ: Назначит материал через скрипт

Не хватает только не публичного присвоения материала. Подскажите как это сделать.
К примеру есть:
public Material mt;
И материал в проекте "NewMaterial"

И сразу по теме вопрос. Нашел прикольный примерчик функции Lerp

public class FX1 : MonoBehaviour {
	public Color colorStart = Color.red;
	public Color colorEnd = Color.green;
	public float duration = 1f;
	public Renderer thisRenderer;
	public float lerp;
	void Start () 
		{
		thisRenderer = GetComponent<Renderer>();
		thisRenderer.material.shader = Shader.Find("Specular");
		}
	
	// Update is called once per frame
	void Update () {
	    lerp = Mathf.PingPong (Time.time, duration) / duration;
    	thisRenderer.material.color = Color.Lerp(colorStart,colorEnd,lerp) ;
	}
}

Хотел сделать тоже самое с альфой, но в стандартной диффузии нету альфы,там только RBG.
Подскажите пожалуйста, какой шейдер надо использовать и как в скрипте обратиться к его альфе?
__________________
(Offline)
 
Ответить с цитированием
Старый 17.02.2013, 17:17   #9
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,502
Написано 2,957 полезных сообщений
(для 5,222 пользователей)
Ответ: Назначит материал через скрипт

Transpatent/xxx или материалы частиц и менять тинт колор
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


Часовой пояс GMT +1, время: 22:13.


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