Как вернуть прежний материал?

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Как вернуть прежний материал?

Сообщение Gomg 23 окт 2012, 11:15

Я сделал так что при наведении на объект материал менятеся на другой, но при убирании с объкта курсора мне нужно чтобы прежний материал вернулся. Как сделать?
вот код:


Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class MainMenuScript : MonoBehaviour {
        float force;
        Camera main;
       
        void Start () {
       
        }
       

        void Update () {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        if(Physics.Raycast(ray, out hit, Mathf.Infinity)){
                        hit.collider.renderer.material.color= Color.red;
                }
        }
}
 
Gomg
UNIт
 
Сообщения: 78
Зарегистрирован: 03 авг 2012, 03:00

Re: Как вернуть прежний материал?

Сообщение CoreRaySpark 23 окт 2012, 12:55

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class MainMenuScript : MonoBehaviour {
         float force;
         Camera main;
         Color oldMaterial;
         
         void Start () {
         
         }
         

         void Update () {
         Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
         RaycastHit hit;
         if(Physics.Raycast(ray, out hit, Mathf.Infinity)){
                         oldMaterial = hit.collider.renderer.material.color;
                         hit.collider.renderer.material.color= Color.red;
                 }
         else hit.collider.renderer.material.color = oldMaterial;
         }
}


как то так, простите, если ошибки есть, я на яве кодствую
Аватара пользователя
CoreRaySpark
UNец
 
Сообщения: 23
Зарегистрирован: 17 окт 2012, 21:54

Re: Как вернуть прежний материал?

Сообщение KBEP 23 окт 2012, 14:14

повесь на объект этот скрипт:
Синтаксис:
Используется javascript
#pragma strict

var oldMaterial : Material;//старый материал
var newMaterial : Material;//новый материал

function OnMouseEnter ()
{
    renderer.material = newMaterial;
};

function OnMouseExit ()
{
    renderer.material = oldMaterial;
};
Аватара пользователя
KBEP
Старожил
 
Сообщения: 598
Зарегистрирован: 24 сен 2012, 23:23
Откуда: Калининград, СПб, Северодвинск

Re: Как вернуть прежний материал?

Сообщение Gomg 23 окт 2012, 15:25

CoreRaySpark писал(а):как то так, простите, если ошибки есть, я на яве кодствую

тут не получится потому что если луч не пересекает мой куб, то он пересечет террейн 100%, а хит уже будет террейн, а так как он не ригидбоди, поэтому идет ошибка и материал красный остается.

А вот последнее помогло спасибо всем!
Gomg
UNIт
 
Сообщения: 78
Зарегистрирован: 03 авг 2012, 03:00

Re: Как вернуть прежний материал?

Сообщение CoreRaySpark 23 окт 2012, 17:05

Да, я позже проверил свой скрипт и удивился результату :D
Аватара пользователя
CoreRaySpark
UNец
 
Сообщения: 23
Зарегистрирован: 17 окт 2012, 21:54


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: GoGo.Ru [Bot] и гости: 19