I need a code to duplicate mesh without original mesh disappearing.
is it possible? how?
Update:
Full Code
#pragma strict
var Test : Transform;
var Nyil : Transform;
var NyilStorage = new Array();
var hit : RaycastHit;
var curhit : RaycastHit;
var hSliderOldValue : int[] = new int[10] ;
var hSliderValue : int[] = new int[10] ;
var Vertices : Vector3[];
private var a = new Array("Models","Morph","Vertices");
private var b = new Array("Number");
private var c = new Array("Id","Mod","DirX" ,"DirY" ,"DirZ","Target");
var LD : String[,,] = new String[0,0,0];
var MousePos : Vector2;
var ScreenPosV : Vector2;
var SelNyil : int;
function Start () {
XML.OpenXML("Modules/" + "Modul" );
LD = XML.ReadXMLAdv(a,b,c);
TestNewObj();
}
function Update () {
SelectObject();
}
function OnGUI(){
//print(hit.collider);
if (GUI.Button(Rect(0,0,50,20),"press") ){
Vertices = (hit.collider as MeshCollider).sharedMesh.vertices;
print((hit.collider as MeshCollider).sharedMesh.vertices[0]);
for(var i = 1;i<LD.GetLength(1);i++){
Vertices[ parseInt(LD[0,i,0]) ] = Vertices[ parseInt(LD[0,i,0]) ] + Vector3.up ;
print(i);
}
(hit.collider as MeshCollider).sharedMesh.vertices = Vertices;
}
MorphSlider();
if (GUI.changed){
for(i = 0;i<hSliderValue.length;i++){
if(hSliderOldValue _!= hSliderValue*){*_
hSliderOldValue = hSliderValue*;*
* NyilRePos(i);*
* //print("Changed " + i);*
* } *
* }*
* }*
}
function SelectObject(){
* if(Input.GetMouseButtonUp(0)){*
* if (Physics.Raycast (camera.ScreenPointToRay(Input.mousePosition), curhit)){*
// print(curhit.collider.name + " " + (curhit.collider as MeshCollider).sharedMesh );
* if (curhit.collider != null || (curhit.collider as MeshCollider).sharedMesh != null ){*
* if(hit.collider != curhit.collider && curhit.collider.name != “Arrow(Clone)”){*
* hit=curhit;*
* NyilDestroy();*
* NyilInit();*
* }*
* }*
* }*
* }*
* if(Input.GetMouseButton(0)){*
* if(Input.GetMouseButtonDown(0)){*
* SelNyil = -1;*
* if (Physics.Raycast (camera.ScreenPointToRay(Input.mousePosition), curhit)){*
* print(“ar”);*
* if( curhit.collider.name == “Arrow(Clone)”){*
* var screenPosA : Vector3 = camera.WorldToScreenPoint (curhit.transform.position);*
* var screenPosB : Vector3 = camera.WorldToScreenPoint (hit.transform.position);*
* ScreenPosV = (Vector2( screenPosA.x,screenPosA.y ) - Vector2( screenPosB.x, screenPosB.y )).normalized ;*
* MousePos = Vector2(Input.mousePosition.x,Input.mousePosition.y) ;*
* SelNyil = (curhit.transform.GetComponent(“Destroy”) as Destroy).Count ;*
* //print(ScreenPosV + " mp: " + MousePos);*
* //print(“a”);*
* }*
* }} *
// print(SelNyil);
* if(SelNyil != -1){*
* var MousePosCurr : Vector2 = Vector2(Input.mousePosition.x,Input.mousePosition.y) ;*
_ var NewSliderPos : int = hSliderOldValue[SelNyil] + Mathf.CeilToInt( ((MousePosCurr.x - MousePos.x) /30 * ScreenPosV.x ) + ( (MousePosCurr.y - MousePos.y) /30 * ScreenPosV.y) );
* hSliderValue[SelNyil] = (NewSliderPos < 0) ? 0 : NewSliderPos ;
NyilRePos(SelNyil);*_
* }*
* }*
* if(Input.GetMouseButtonUp(0)){*
* if(SelNyil != -1){*
* hSliderOldValue[SelNyil] = hSliderValue[SelNyil];*
* }*
* }*
}
function MorphSlider(){
* for( var i = 0;i<LD.GetLength(0) ;i++){*
hSliderValue = GUI.HorizontalSlider(Rect(0,0 + i22,80,20), hSliderValue, 0, 10 );*
_ GUI.Label(Rect(85,0 +i22,80,20),hSliderValue + " Morph"+ i.ToString() );
}*_
}
function NyilInit(){
* for(var i =0;i<LD.GetLength(0);i++){*
* var pos = Vector3( parseInt(LD[i,0,2]) , parseInt(LD[i,0,3]) , parseInt(LD[i,0,4]) );*
_ NyilStorage.Add( Instantiate(Nyil,hit.collider.transform.position + pos, Quaternion.LookRotation(pos*-1 )) );
* ((NyilStorage[NyilStorage.length-1] as Transform).GetComponent(“Destroy”) as Destroy).SetCount(i);
}*_
}
function NyilDestroy(){
* for (var value : Transform in NyilStorage) {*
* (value.GetComponent(“Destroy”) as Destroy).SelfDestroy();*
* }*
* NyilStorage.Clear();*
}
function NyilRePos(i){
_ //print("value " + i +"pos: " + Vector3( parseInt(LD[i,0,2]) , parseInt(LD[i,0,3]) , parseInt(LD[i,0,4])) * (hSliderOldValue*+1) );_
(NyilStorage _as Transform).position = hit.collider.transform.position + Vector3( parseInt(LD[i,0,2]) , parseInt(LD[i,0,3]) , parseInt(LD[i,0,4])) * (hSliderValue+1);*_
}
function TestNewObj(){
* var m = new Mesh();*
m.name = “Scripted_Plane_New_Mesh”;
// var MeshSource : Mesh = Test.GetComponent(MeshFilter).mesh;
/*
var ver : Vector3[] = Test.GetComponent(MeshFilter).mesh.vertices;
var tri : int[] = Test.GetComponent(MeshFilter).mesh.triangles;
var uv : Vector2[] = Test.GetComponent(MeshFilter).mesh.uv;
var norm : Vector3[] = Test.GetComponent(MeshFilter).mesh.normals;
m.vertices = ver;
m.triangles = tri;
m.uv = uv;
m.normals = norm;
_ */_
var obj : GameObject = new GameObject(“New_Plane_Fom_Script”, MeshRenderer, MeshFilter, MeshCollider);
obj.GetComponent(MeshFilter).mesh = Instantiate(Test.GetComponent(MeshFilter).mesh);//m;
obj.GetComponent(MeshCollider).mesh = Instantiate(Test.GetComponent(MeshFilter).mesh);// m;
obj.GetComponent(“Renderer”).renderer.material = Resources.Load(“Materials/Default2”) as Material;
// MeshFilter mf = GetComponent();
// mf.mesh = (Mesh)Instantiate(mf.mesh);
}