动态加载网上或者本地场景的后续

今天又和群里的高手谈论了下这个问题,carlos.yang和airdamper给了我很大的帮助,给我提出了用射线检测法的可行性和优点。射线检测  射线碰到碰撞体后会返回一个检测信息 包含碰到的物体的名字之类,就是返回一个引用型的变量,这个变量就可以当做你射到那个物体来用。1、使用Camera.ScreenPointToRay得到一条射线,2、然后使用射线检测函数Physics.Raycast,然后会得到RaycastHit 信息,根据信息可以判断你到底点中了什么。Camera.ViewportPointToRay 也行不过这个是基于视口的,超出了你的程序框框就无效。不过这个我没试,由于时间仓促,等有空再试吧。

修改后:

View Code
   
     
1 var gui : GUITexture;
2   var find : GUITexture;
3   // var GameObjectName;
4 function Awake(){
5 find = GameObject.Find( " guiTexture " ).GetComponent(GUITexture);
6 find.enabled = false ;
7 }
8
9 function OnMouseDown()
10 {
11 // find=GameObject.Find("guiTexture").GetComponent(GUITexture);
12 find.enabled = true ;
13 Debug.Log(gameObject.name);
14 www(gameObject.name);
15 }
16
17 function www(Cubename){
18 // Store the original pixel inset
19 // and modify it from there.
20 var originalPixelRect = gui.pixelInset;
21
22 // Update the progress bar by scaling the gui texture
23 // until we reach the end
24 var stream = new WWW( "" + Cubename + " .unity3d " );
25 while ( ! stream.isDone)
26 {
27 gui.pixelInset.xMax = originalPixelRect.xMin
28 + stream.progress * originalPixelRect.width;
29 yield;
30 }
31 // Update it one last time before loading
32 gui.pixelInset.xMax = originalPixelRect.xMax;
33 stream.LoadUnityWeb();
34 }
35 @script RequireComponent (GUITexture)

再次感谢群里的carlos.yang对我的指点。

你可能感兴趣的:(动态)