using UnityEngine;
using System.Collections;
public class OverMouseEventBroadcast : MonoBehaviour {
Material[] overMouseMaterial; //сохраняем overmousematerial'ы в массив для нормального селекта
Material[] myMaterial; // сохраняем дефолтный материал в массив
Material[] lerpOneM; // сохраняем lerpMaterialOne в массив, такого же размера сколько и материалов по дефолту
bool lerpOn = false;
public Material singleMaterialOverMouse;
public Material lerpMaterialOne;
public Material lerpMaterialTwo;
// Use this for initialization
void Start () {
lerpOneM = new Material[this.renderer.materials.Length];
for ( int i=0;i<this.renderer.materials.Length;i++){
lerpOneM[i] = lerpMaterialOne;
}
myMaterial = new Material[this.renderer.materials.Length];
for (int i=0;i<this.renderer.materials.Length;i++){
myMaterial[i] = this.renderer.materials[i];
}
overMouseMaterial = new Material[this.renderer.materials.Length];
for (int i=0;i<overMouseMaterial.Length;i++){
overMouseMaterial[i] = singleMaterialOverMouse;
}
}
// Update is called once per frame
void Update () {
if (lerpOn){
for (int i=0;i<renderer.materials.Length;i++){
float lerpTime = Mathf.PingPong(Time.time, 1.0f);
renderer.materials[i].Lerp(lerpMaterialOne,lerpMaterialTwo,lerpTime);
}
}
}
public void StartLerp(string ves){
if ( name.Substring(0,2) == ves ){
renderer.materials = lerpOneM;
lerpOn = true;
Update();
}
}
public void StopLerp(string ves){
if ( name.Substring(0,2) == ves ){
renderer.materials = myMaterial;
lerpOn = false;
Update();
}
}
public void SelectOn(string ves ){
if ( name.Substring(0,2) == ves && !lerpOn){
renderer.materials = overMouseMaterial;
}
}
public void SelectOff(string ves){
if ( name.Substring(0,2) == ves && !lerpOn){
renderer.materials = myMaterial;
}
}
void OnMouseEnter() {
if ( name.Substring(name.Length-4,4) == "main"){
BroadcastMessage("SelectOn",name.Substring(0,2));
} else {
foreach ( GameObject tagObj in GameObject.FindGameObjectsWithTag("CanSelect") ){
if (tagObj.name.Substring(0,2) == name.Substring(0,2) && tagObj.name.Substring(tagObj.name.Length-4,4) == "main"){
tagObj.BroadcastMessage("SelectOn",name.Substring(0,2));
renderer.materials = overMouseMaterial;
}
}
}
}
void OnMouseExit() {
if ( name.Substring(name.Length-4,4) == "main"){
BroadcastMessage("SelectOff",name.Substring(0,2));
} else {
foreach ( GameObject tagObj in GameObject.FindGameObjectsWithTag("CanSelect") ){
if (tagObj.name.Substring(0,2) == name.Substring(0,2) && tagObj.name.Substring(tagObj.name.Length-4,4) == "main"){
tagObj.BroadcastMessage("SelectOff",name.Substring(0,2));
renderer.materials = myMaterial;
}
}
}
}
}