Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 显示上一个选择对象蓝色和当前红色_C#_Unity3d - Fatal编程技术网

C# 显示上一个选择对象蓝色和当前红色

C# 显示上一个选择对象蓝色和当前红色,c#,unity3d,C#,Unity3d,现在,当我单击其他对象时,前面的对象将变为蓝色,因此我知道从应用程序开始时选择了哪些对象。 然后在最后两个对象之间创建一条线,并显示距离。 有关于如何创建行的帮助吗?var CP=new GameOject;//当前选定 void Update () { if (Input.GetMouseButtonDown(0)) { Ray Raycost = Camera.main.ScreenPointToRay(Input.mouseP

现在,当我单击其他对象时,前面的对象将变为蓝色,因此我知道从应用程序开始时选择了哪些对象。 然后在最后两个对象之间创建一条线,并显示距离。 有关于如何创建行的帮助吗?

var CP=new GameOject;//当前选定
void Update () 
{               
    if (Input.GetMouseButtonDown(0))
    {
        Ray Raycost = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit Hit;

        if(Physics.Raycast(Raycost , out Hit , 230.0f , mask_ ))
        {
            GC = GameObject.Find(Hit.collider.gameObject.name);
            GC.renderer.material.color = Color.red ;
        }
    }
}
var GCP=新游戏项目;//先前选定 公共静态对象名[]={“当前”、“以前”};//更改“选择静态”以在其他位置使用这些名称 字符串pName=“”;//保存上一个对象名称 int x=0;//如果只单击一次,则跟踪 if(Input.GetMouseButtonDown(0)) { 光线成本=Camera.main.screenpointoray(输入.mousePosition); 雷卡斯特击中; if(物理射线投射(射线成本,命中率,230.0f,遮罩) { 如果(x!=0&&x<2)//请确保至少选择了2个对象 { GCP=GameObject.Find(Pname);//一次单击它就不起作用了Pname是“”,但当我们回来时。。; ObjectNames[0]=Pname; GCP.renderer.material.color=color.blue; x=0; } x=1; GC=GameObject.Find(Hit.collider.GameObject.name);//当前选中 GC.renderer.material.color=color.red; Pname=Hit.collider.gameObject.name;//Pname=下次单击时的当前it循环 ObjectNames[1]=Hit.collider.gameObject.name; } }
希望这能奏效。

MyBad在第3行中使用——公共静态字符串[]ObjectNames={“current”,“previous”};
var CP = new GameOject ; // current selected
var GCP = new GameOject ; // previous selected
public static ObjectNames[] ={"current" , "previous"}; // change on select static to use these name elsewhere 
string pName =""; // save the previous object name
int x = 0; // track if only clicked once 


if (Input.GetMouseButtonDown(0))
        {

            Ray Raycost = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit Hit;
            if(Physics.Raycast(Raycost , out Hit , 230.0f , mask_ ))
            {



                if(x != 0 && x < 2) // be sure selected at least 2 object
                {
                    GCP =GameObject.Find(Pname); // on one click it is not working Pname is "" but when we came back ..;
                    ObjectNames[0] = Pname;
                    GCP.renderer.material.color = Color.blue;
                    x = 0;
                }

                x = 1 ;




                GC = GameObject.Find(Hit.collider.gameObject.name); // current selected
                GC.renderer.material.color = Color.red ;



                Pname = Hit.collider.gameObject.name; //pname = current it loop on next click
                ObjectNames[1] = Hit.collider.gameObject.name;

            }

        }