unity中Dropdown组件带logo的办法

搜了好多,都没有看到关于下拉组件带图标的生成方法,最后在老外的帮助下总算弄成功了。记录一下,造福大家啊。

作为对比,原始的dropdown是这样的:

       

 直接把图片(包括sprite格式的)往上图中的Caption image和item image中托是拖不了的,他们只接受hierarchy中的物体,所以你必须先在hierarchy中新建image UI然后把图片拖动到这个UI上,然后才能给Caption image和item image赋image即把这个带图片的image UI拖过去。

option A就是dropdown中的label,一般人没想到的是它能移动位置,且要加图必要先移动它到右侧(当然你如果想把logo加到右侧或中间的话,你就不移动也行,)

 Caption image和item image都不是dropdown自带的,需要自己新建和设计位置。一个全新的dropdown如下图

 外观展开如下(template勾选起来就展开了);

以上是原始dropdown的研究,接下来进入重点。重要的就是Options,可是我加了照片就是不显示,各个项目的文字倒是正常,后来才知道是两个地方没有设计的缘故。

caption image和item image要有图片才行 

而他们两个的位置是自己放好的。caption image是独立于dropdown组件的,需要自己建立。新建UI中的image,命名为caption image(随意),并调整位置和大小放到dropdown的文字的左侧的某个位置,不要太左了,因那边还要显示对勾呢(对勾是自动生成的我们不用管,默认在每个选项的最左侧,你选了谁,谁左侧就会有对勾,没选的没有对勾),然后拖到上图中的相应位置。

 然后是放item image,也需要自己建,位置比较隐蔽,在下面的位置建:

默认是隐藏不显示的,如果你要添加,也需要设计,我们把template勾选上,让他们显示出来,如下:

 是不是dropdown里的内容就平铺开来了,选择跟caption image同样的那个图,拖到source image中就行,是同样的那个图,不是物件caption image啊,不要搞错了,item第一项和caption所用的图必须是同一个,然后开头option中其它项才会依次正确关联,另外这个图的位置也是自己摆放的,最好根据你的caption image摆放的位置调整。然后将你自己建的Caption image和item image项拖到dropdown的inspector中相应的位置,如下图,这样就大功告成了。

总结一句就是:Caption image和item image需要另外建,且注意位置,dropdown只有拥有了这两个物体,option中的附图才会实际显示。

所有图片在一起

下面这个texture type更改图片格式,我这里为了方便都把原来的jpg改选成sprite了。

 效果如下(黑块是其它物体干涉遮挡了,正常效果没有它的): 

最后附上动态交互的代码(相关的看一下,不相关的不用管它)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class DropdownControl : MonoBehaviour
{
    public GameObject tooltip, tooltip1, tooltip2, tooltip3, tooltip4, tooltip5;
    GameObject clonescrewH, clonescrewV;
    GameObject clonescrew1H, clonescrew1V;
    GameObject clonescrew2H, clonescrew2V;
    GameObject clonescrew3H, clonescrew3V;
    GameObject clonescrew4H, clonescrew4V;
    GameObject clonescrew5H, clonescrew5V;
    Dropdown dropDownItem;
    int curInterval = 0;
    int interval = 8;//要小于CTPlane的更新间隔。否则复制的cylinder方位不对,不是移动后在CT view上的方位,而只是初始状态。
    bool allflag=false,updateflag = false, updateflag1 = false, updateflag2 = false, updateflag3 = false, updateflag4 = false, updateflag5 = false;
    public void onselectitem()
    {
        Sprite tempimage;
        float x, y, z,rx,ry,rz;
        dropDownItem = this.GetComponent<Dropdown>();
        int index = dropDownItem.value;//选中的项的索引号
//        Debug.Log(dropDownItem.options[index].text);//输出options相应选择项的名字
        switch (index)
        {
            case 0:
                   /*tempimage = dropDownItem.options[index].image;
                   dropDownItem.options[index].image = dropDownItem.options[5].image;
                   dropDownItem.options[5].image = tempimage;//两个图标交换,以达到把不用的图标放到最后面的效果*/
                GameObject.Find("Probe").GetComponent<Renderer>().material.color = Color.yellow;
                GameObject.Find("CTPlanes/CTPlane1/ScrewHview").GetComponent<Renderer>().material.color = Color.yellow;
                GameObject.Find("CTPlanes/CTPlane2/ScrewVview").GetComponent<Renderer>().material.color = Color.yellow;
                Debug.Log("color change is ok");
                x =GameObject.FindGameObjectWithTag("Screw1").transform.position.x;
                y= GameObject.FindGameObjectWithTag("Screw1").transform.position.y;
                z = GameObject.FindGameObjectWithTag("Screw1").transform.position.z;
                rx = GameObject.FindGameObjectWithTag("Screw1").transform.eulerAngles.x;//.rotation.x;
                ry = GameObject.FindGameObjectWithTag("Screw1").transform.eulerAngles.y;
                rz = GameObject.FindGameObjectWithTag("Screw1").transform.eulerAngles.z;
                GameObject.Find("Probe").transform.position = new Vector3(x,y,z);
                GameObject.Find("Probe").transform.eulerAngles= new Vector3(rx, ry, rz);               
                Debug.Log("0 is Screw A");
                break;
            case 1:
                GameObject.Find("Probe").GetComponent<Renderer>().material.color = Color.green;
                GameObject.Find("CTPlanes/CTPlane1/ScrewHview").GetComponent<Renderer>().material.color = Color.green;
                GameObject.Find("CTPlanes/CTPlane2/ScrewVview").GetComponent<Renderer>().material.color = Color.green;
                Debug.Log("color change is ok");
                x = GameObject.FindGameObjectWithTag("Screw2").transform.position.x;
                y = GameObject.FindGameObjectWithTag("Screw2").transform.position.y;
                z = GameObject.FindGameObjectWithTag("Screw2").transform.position.z;
                rx = GameObject.FindGameObjectWithTag("Screw2").transform.eulerAngles.x;//.rotation.x;
                ry = GameObject.FindGameObjectWithTag("Screw2").transform.eulerAngles.y;
                rz = GameObject.FindGameObjectWithTag("Screw2").transform.eulerAngles.z;
                GameObject.Find("Probe").transform.position = new Vector3(x, y, z);
                GameObject.Find("Probe").transform.eulerAngles = new Vector3(rx, ry, rz);
                GameObject.FindGameObjectWithTag("Length").GetComponent<Text>().text = "10";
                GameObject.FindGameObjectWithTag("diameter").GetComponent< Text >().text="5";

                Debug.Log("1 is Screw B");
                break;
            case 2:
                GameObject.Find("Probe").GetComponent<Renderer>().material.color = Color.red;
                GameObject.Find("CTPlanes/CTPlane1/ScrewHview").GetComponent<Renderer>().material.color = Color.red;
                GameObject.Find("CTPlanes/CTPlane2/ScrewVview").GetComponent<Renderer>().material.color = Color.red;
                x = GameObject.FindGameObjectWithTag("Screw3").transform.position.x;
                y = GameObject.FindGameObjectWithTag("Screw3").transform.position.y;
                z = GameObject.FindGameObjectWithTag("Screw3").transform.position.z;
                rx = GameObject.FindGameObjectWithTag("Screw3").transform.eulerAngles.x;//.rotation.x;
                ry = GameObject.FindGameObjectWithTag("Screw3").transform.eulerAngles.y;
                rz = GameObject.FindGameObjectWithTag("Screw3").transform.eulerAngles.z;
                GameObject.Find("Probe").transform.position = new Vector3(x, y, z);
                GameObject.Find("Probe").transform.eulerAngles = new Vector3(rx, ry, rz);
                GameObject.FindGameObjectWithTag("Length").GetComponent<Text>().text = "11";
                GameObject.FindGameObjectWithTag("diameter").GetComponent<Text>().text = "7";

                Debug.Log("2 is Screw C");
                break;
            case 3:
                GameObject.Find("Probe").GetComponent<Renderer>().material.color = new Color(254, 0, 254);
                GameObject.Find("CTPlanes/CTPlane1/ScrewHview").GetComponent<Renderer>().material.color = new Color(254,0,254);//pink
                GameObject.Find("CTPlanes/CTPlane2/ScrewVview").GetComponent<Renderer>().material.color = new Color(254,0,254);//pink
                x = GameObject.FindGameObjectWithTag("Screw4").transform.position.x;
                y = GameObject.FindGameObjectWithTag("Screw4").transform.position.y;
                z = GameObject.FindGameObjectWithTag("Screw4").transform.position.z;
                rx = GameObject.FindGameObjectWithTag("Screw4").transform.eulerAngles.x;//.rotation.x;
                ry = GameObject.FindGameObjectWithTag("Screw4").transform.eulerAngles.y;
                rz = GameObject.FindGameObjectWithTag("Screw4").transform.eulerAngles.z;
                GameObject.Find("Probe").transform.position = new Vector3(x, y, z);
                GameObject.Find("Probe").transform.eulerAngles = new Vector3(rx, ry, rz);
                GameObject.FindGameObjectWithTag("Length").GetComponent<Text>().text = "10";
                GameObject.FindGameObjectWithTag("diameter").GetComponent<Text>().text = "6";

                Debug.Log("3 is Screw D");
                break;
            case 4:
                GameObject.Find("Probe").GetComponent<Renderer>().material.color = Color.white;
                GameObject.Find("CTPlanes/CTPlane1/ScrewHview").GetComponent<Renderer>().material.color = Color.white;
                GameObject.Find("CTPlanes/CTPlane2/ScrewVview").GetComponent<Renderer>().material.color = Color.white;
                x = GameObject.FindGameObjectWithTag("Screw5").transform.position.x;
                y = GameObject.FindGameObjectWithTag("Screw5").transform.position.y;
                z = GameObject.FindGameObjectWithTag("Screw5").transform.position.z;
                rx = GameObject.FindGameObjectWithTag("Screw5").transform.eulerAngles.x;//.rotation.x;
                ry = GameObject.FindGameObjectWithTag("Screw5").transform.eulerAngles.y;
                rz = GameObject.FindGameObjectWithTag("Screw5").transform.eulerAngles.z;
                GameObject.Find("Probe").transform.position = new Vector3(x, y, z);
                GameObject.Find("Probe").transform.eulerAngles = new Vector3(rx, ry, rz);
                GameObject.FindGameObjectWithTag("Length").GetComponent<Text>().text = "9";
                GameObject.FindGameObjectWithTag("diameter").GetComponent<Text>().text = "5";

                Debug.Log("4 is Screw E");
                break;
            case 5:
                GameObject.Find("Probe").GetComponent<Renderer>().material.color = Color.cyan;
                GameObject.Find("CTPlanes/CTPlane1/ScrewHview").GetComponent<Renderer>().material.color = Color.cyan;
                GameObject.Find("CTPlanes/CTPlane2/ScrewVview").GetComponent<Renderer>().material.color = Color.cyan;
                x = GameObject.FindGameObjectWithTag("Screw6").transform.position.x;
                y = GameObject.FindGameObjectWithTag("Screw6").transform.position.y;
                z = GameObject.FindGameObjectWithTag("Screw6").transform.position.z;
                rx = GameObject.FindGameObjectWithTag("Screw6").transform.eulerAngles.x;//.rotation.x;
                ry = GameObject.FindGameObjectWithTag("Screw6").transform.eulerAngles.y;
                rz = GameObject.FindGameObjectWithTag("Screw6").transform.eulerAngles.z;
                GameObject.Find("Probe").transform.position = new Vector3(x, y, z);
                GameObject.Find("Probe").transform.eulerAngles = new Vector3(rx, ry, rz);
                GameObject.FindGameObjectWithTag("Length").GetComponent<Text>().text = "12";
                GameObject.FindGameObjectWithTag("diameter").GetComponent<Text>().text = "6";

                Debug.Log("5 is Screw F");
                break;
            case 6:
                allflag = true;           
                break;
            case 7:
                allflag = false;
                GameObject.Destroy(clonescrewH);
                GameObject.Destroy(clonescrew1H);
                GameObject.Destroy(clonescrew2H);
                GameObject.Destroy(clonescrew3H);
                GameObject.Destroy(clonescrew4H);
                GameObject.Destroy(clonescrew5H);
                GameObject.Destroy(clonescrewV);
                GameObject.Destroy(clonescrew1V);
                GameObject.Destroy(clonescrew2V);
                GameObject.Destroy(clonescrew3V);
                GameObject.Destroy(clonescrew4V);
                GameObject.Destroy(clonescrew5V);
                GameObject.Find("Probe2").transform.position = new Vector3(0.2f, 0, 0);
                GameObject.Find("Probe2").transform.eulerAngles = new Vector3(0, 0, 0);//还原利用过的probe2
                GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localPosition= new Vector3(0, 1.2f, 0);
                GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localEulerAngles= new Vector3(0, 0, 0);//要还原以备主流应用,否则以screw6的姿势贴在CT Hview上了
                GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localPosition = new Vector3(0, 1.2f, 0);
                GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localEulerAngles= new Vector3(0, 0, 0);//要还原以备主流应用,否则以screw6的姿势贴在CT Vview上了
                GameObject.FindGameObjectWithTag("Screw1").GetComponent<MeshRenderer>().enabled = false;
                GameObject.FindGameObjectWithTag("Screw2").GetComponent<MeshRenderer>().enabled = false;
                GameObject.FindGameObjectWithTag("Screw3").GetComponent<MeshRenderer>().enabled = false;
                GameObject.FindGameObjectWithTag("Screw4").GetComponent<MeshRenderer>().enabled = false;
                GameObject.FindGameObjectWithTag("Screw5").GetComponent<MeshRenderer>().enabled = false;
                GameObject.FindGameObjectWithTag("Screw6").GetComponent<MeshRenderer>().enabled = false;
                tooltip.SetActive(false);
                tooltip1.SetActive(false);
                tooltip2.SetActive(false);
                tooltip3.SetActive(false);
                tooltip4.SetActive(false);
                tooltip5.SetActive(false);
                break;
            default:
                break;
        }
    }
    private void Update()
    {
        if (allflag)
        {
            if (!updateflag)
            {
                float x, y, z, rx, ry, rz;
                GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").GetComponent<Renderer>().material.color = Color.yellow;
                GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").GetComponent<Renderer>().material.color = Color.yellow;
                x = GameObject.FindGameObjectWithTag("Screw1").transform.position.x;
                y = GameObject.FindGameObjectWithTag("Screw1").transform.position.y;
                z = GameObject.FindGameObjectWithTag("Screw1").transform.position.z;
                rx = GameObject.FindGameObjectWithTag("Screw1").transform.eulerAngles.x;//.rotation.x;
                ry = GameObject.FindGameObjectWithTag("Screw1").transform.eulerAngles.y;
                rz = GameObject.FindGameObjectWithTag("Screw1").transform.eulerAngles.z;
                GameObject.Find("Probe2").transform.position = new Vector3(x, y, z);
                GameObject.Find("Probe2").transform.eulerAngles = new Vector3(rx, ry, rz);
                GameObject.FindGameObjectWithTag("Screw1").GetComponent<MeshRenderer>().enabled = true;//渲染以显示screw1
                GameObject.FindGameObjectWithTag("Screw1").GetComponent<Renderer>().material.color = Color.yellow;
                tooltip.SetActive(true);

                if (++curInterval < interval)
                {
                    return;
                }
                curInterval = 0;
                
                //查找对象
                GameObject ScrewObj = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2");
                clonescrewH = Instantiate(ScrewObj);
                clonescrewH.transform.SetParent(GameObject.Find("CTPlanes/CTPlane1").transform);
                clonescrewH.transform.localPosition = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localPosition;
                clonescrewH.transform.localRotation = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localRotation;
                clonescrewH.transform.localScale = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localScale;
                clonescrewH.GetComponent<Renderer>().material.color = Color.yellow;
                clonescrewH.name = ("clone1H");
                ScrewObj = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2");
                clonescrewV = Instantiate(ScrewObj);

                clonescrewV.transform.SetParent(GameObject.Find("CTPlanes/CTPlane2").transform);
                clonescrewV.transform.localPosition = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localPosition;
                clonescrewV.transform.localRotation = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localRotation;
                clonescrewV.transform.localScale = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localScale;
                clonescrewV.GetComponent<Renderer>().material.color = Color.yellow;
                clonescrewV.name = ("clone1V");
                updateflag = true;//只更新一次
            }
            if (!updateflag1)
            {
                float x, y, z, rx, ry, rz;
                GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").GetComponent<Renderer>().material.color = Color.green;
                GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").GetComponent<Renderer>().material.color = Color.green;
                x = GameObject.FindGameObjectWithTag("Screw2").transform.position.x;
                y = GameObject.FindGameObjectWithTag("Screw2").transform.position.y;
                z = GameObject.FindGameObjectWithTag("Screw2").transform.position.z;
                rx = GameObject.FindGameObjectWithTag("Screw2").transform.eulerAngles.x;//.rotation.x;
                ry = GameObject.FindGameObjectWithTag("Screw2").transform.eulerAngles.y;
                rz = GameObject.FindGameObjectWithTag("Screw2").transform.eulerAngles.z;
                GameObject.Find("Probe2").transform.position = new Vector3(x, y, z);
                GameObject.Find("Probe2").transform.eulerAngles = new Vector3(rx, ry, rz);
                GameObject.FindGameObjectWithTag("Screw2").GetComponent<MeshRenderer>().enabled = true;//渲染以显示screw2
                GameObject.FindGameObjectWithTag("Screw2").GetComponent<Renderer>().material.color = Color.green;
                tooltip1.SetActive(true);

                if (++curInterval < interval)
                {
                    return;
                }
                curInterval = 0;
                
                //查找对象
                GameObject ScrewObj = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2");
                clonescrew1H = Instantiate(ScrewObj);
                clonescrew1H.transform.SetParent(GameObject.Find("CTPlanes/CTPlane1").transform);
                clonescrew1H.transform.localPosition = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localPosition;
                clonescrew1H.transform.localRotation = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localRotation;
                clonescrew1H.transform.localScale = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localScale;
                clonescrew1H.GetComponent<Renderer>().material.color = Color.green;
                clonescrew1H.name = ("clone2H");
                ScrewObj = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2");
                clonescrew1V = Instantiate(ScrewObj);
                clonescrew1V.transform.SetParent(GameObject.Find("CTPlanes/CTPlane2").transform);
                clonescrew1V.transform.localPosition = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localPosition;
                clonescrew1V.transform.localRotation = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localRotation;
                clonescrew1V.transform.localScale = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localScale;
                clonescrew1V.GetComponent<Renderer>().material.color = Color.green;
                clonescrew1V.name = ("clone2V");
                updateflag1 = true;//只更新一次
            }
            if (!updateflag2)
            {
                float x, y, z, rx, ry, rz;
                GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").GetComponent<Renderer>().material.color = Color.red;
                GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").GetComponent<Renderer>().material.color = Color.red;
                x = GameObject.FindGameObjectWithTag("Screw3").transform.position.x;
                y = GameObject.FindGameObjectWithTag("Screw3").transform.position.y;
                z = GameObject.FindGameObjectWithTag("Screw3").transform.position.z;
                rx = GameObject.FindGameObjectWithTag("Screw3").transform.eulerAngles.x;//.rotation.x;
                ry = GameObject.FindGameObjectWithTag("Screw3").transform.eulerAngles.y;
                rz = GameObject.FindGameObjectWithTag("Screw3").transform.eulerAngles.z;
                GameObject.Find("Probe2").transform.position = new Vector3(x, y, z);
                GameObject.Find("Probe2").transform.eulerAngles = new Vector3(rx, ry, rz);
                GameObject.FindGameObjectWithTag("Screw3").GetComponent<MeshRenderer>().enabled = true;//渲染以显示screw3
                GameObject.FindGameObjectWithTag("Screw3").GetComponent<Renderer>().material.color = Color.red;
                tooltip2.SetActive(true);

                if (++curInterval < interval)
                {
                    return;
                }
                curInterval = 0;
                
                //查找对象
                GameObject ScrewObj = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2");
                clonescrew2H = Instantiate(ScrewObj);
                clonescrew2H.transform.SetParent(GameObject.Find("CTPlanes/CTPlane1").transform);
                clonescrew2H.transform.localPosition = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localPosition;
                clonescrew2H.transform.localRotation = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localRotation;
                clonescrew2H.transform.localScale = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localScale;
                clonescrew2H.GetComponent<Renderer>().material.color = Color.red;

                ScrewObj = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2");
                clonescrew2V = Instantiate(ScrewObj);
                clonescrew2V.transform.SetParent(GameObject.Find("CTPlanes/CTPlane2").transform);
                clonescrew2V.transform.localPosition = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localPosition;
                clonescrew2V.transform.localRotation = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localRotation;
                clonescrew2V.transform.localScale = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localScale;
                clonescrew2V.GetComponent<Renderer>().material.color = Color.red;
                updateflag2 = true;//只更新一次
            }
            if (!updateflag3)
            {
                float x, y, z, rx, ry, rz;
                GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").GetComponent<Renderer>().material.color = new Color(254, 0, 254);
                GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").GetComponent<Renderer>().material.color = new Color(254, 0, 254);
                x = GameObject.FindGameObjectWithTag("Screw4").transform.position.x;
                y = GameObject.FindGameObjectWithTag("Screw4").transform.position.y;
                z = GameObject.FindGameObjectWithTag("Screw4").transform.position.z;
                rx = GameObject.FindGameObjectWithTag("Screw4").transform.eulerAngles.x;//.rotation.x;
                ry = GameObject.FindGameObjectWithTag("Screw4").transform.eulerAngles.y;
                rz = GameObject.FindGameObjectWithTag("Screw4").transform.eulerAngles.z;
                GameObject.Find("Probe2").transform.position = new Vector3(x, y, z);
                GameObject.Find("Probe2").transform.eulerAngles = new Vector3(rx, ry, rz);
                GameObject.FindGameObjectWithTag("Screw4").GetComponent<MeshRenderer>().enabled = true;//渲染以显示screw4
                GameObject.FindGameObjectWithTag("Screw4").GetComponent<Renderer>().material.color = new Color(254, 0, 254);
                tooltip3.SetActive(true);

                if (++curInterval < interval)
                {
                    return;
                }
                curInterval = 0;
                
                //查找对象
                GameObject ScrewObj = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2");
                clonescrew3H = Instantiate(ScrewObj);
                clonescrew3H.transform.SetParent(GameObject.Find("CTPlanes/CTPlane1").transform);
                clonescrew3H.transform.localPosition = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localPosition;
                clonescrew3H.transform.localRotation = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localRotation;
                clonescrew3H.transform.localScale = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localScale;
                clonescrew3H.GetComponent<Renderer>().material.color = new Color(254, 0, 254);

                ScrewObj = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2");
                clonescrew3V = Instantiate(ScrewObj);
                clonescrew3V.transform.SetParent(GameObject.Find("CTPlanes/CTPlane2").transform);
                clonescrew3V.transform.localPosition = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localPosition;
                clonescrew3V.transform.localRotation = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localRotation;
                clonescrew3V.transform.localScale = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localScale;
                clonescrew3V.GetComponent<Renderer>().material.color = new Color(254, 0, 254);
                updateflag3 = true;//只更新一次
            }
            if (!updateflag4)
            {
                float x, y, z, rx, ry, rz;
                GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").GetComponent<Renderer>().material.color = Color.white;
                GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").GetComponent<Renderer>().material.color = Color.white;
                x = GameObject.FindGameObjectWithTag("Screw5").transform.position.x;
                y = GameObject.FindGameObjectWithTag("Screw5").transform.position.y;
                z = GameObject.FindGameObjectWithTag("Screw5").transform.position.z;
                rx = GameObject.FindGameObjectWithTag("Screw5").transform.eulerAngles.x;//.rotation.x;
                ry = GameObject.FindGameObjectWithTag("Screw5").transform.eulerAngles.y;
                rz = GameObject.FindGameObjectWithTag("Screw5").transform.eulerAngles.z;
                GameObject.Find("Probe2").transform.position = new Vector3(x, y, z);
                GameObject.Find("Probe2").transform.eulerAngles = new Vector3(rx, ry, rz);
                GameObject.FindGameObjectWithTag("Screw5").GetComponent<MeshRenderer>().enabled = true;//渲染以显示screw5
                GameObject.FindGameObjectWithTag("Screw5").GetComponent<Renderer>().material.color = Color.white;
                tooltip4.SetActive(true);

                if (++curInterval < interval)
                {
                    return;
                }
                curInterval = 0;
                
                //查找对象
                GameObject ScrewObj = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2");
                clonescrew4H = Instantiate(ScrewObj);
                clonescrew4H.transform.SetParent(GameObject.Find("CTPlanes/CTPlane1").transform);
                clonescrew4H.transform.localPosition = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localPosition;
                clonescrew4H.transform.localRotation = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localRotation;
                clonescrew4H.transform.localScale = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localScale;
                clonescrew4H.GetComponent<Renderer>().material.color = Color.white;

                ScrewObj = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2");
                clonescrew4V = Instantiate(ScrewObj);
                clonescrew4V.transform.SetParent(GameObject.Find("CTPlanes/CTPlane2").transform);
                clonescrew4V.transform.localPosition = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localPosition;
                clonescrew4V.transform.localRotation = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localRotation;
                clonescrew4V.transform.localScale = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localScale;
                clonescrew4V.GetComponent<Renderer>().material.color = Color.white;
                updateflag4 = true;//只更新一次
            }
            if (!updateflag5)
            {
                float x, y, z, rx, ry, rz;
                GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").GetComponent<Renderer>().material.color = Color.cyan;
                GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").GetComponent<Renderer>().material.color = Color.cyan;
                x = GameObject.FindGameObjectWithTag("Screw6").transform.position.x;
                y = GameObject.FindGameObjectWithTag("Screw6").transform.position.y;
                z = GameObject.FindGameObjectWithTag("Screw6").transform.position.z;
                rx = GameObject.FindGameObjectWithTag("Screw6").transform.eulerAngles.x;//.rotation.x;
                ry = GameObject.FindGameObjectWithTag("Screw6").transform.eulerAngles.y;
                rz = GameObject.FindGameObjectWithTag("Screw6").transform.eulerAngles.z;
                GameObject.Find("Probe2").transform.position = new Vector3(x, y, z);
                GameObject.Find("Probe2").transform.eulerAngles = new Vector3(rx, ry, rz);
                GameObject.FindGameObjectWithTag("Screw6").GetComponent<MeshRenderer>().enabled = true;//渲染以显示screw6
                GameObject.FindGameObjectWithTag("Screw6").GetComponent<Renderer>().material.color = Color.cyan;
                tooltip5.SetActive(true);

                if (++curInterval < interval)
                {
                    return;
                }
                curInterval = 0;

                
                //查找对象
                GameObject ScrewObj = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2");
                clonescrew5H = Instantiate(ScrewObj);
                clonescrew5H.transform.SetParent(GameObject.Find("CTPlanes/CTPlane1").transform);
                clonescrew5H.transform.localPosition = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localPosition;
                clonescrew5H.transform.localRotation = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localRotation;
                clonescrew5H.transform.localScale = GameObject.Find("CTPlanes/CTPlane1/ScrewHview2").transform.localScale;
                clonescrew5H.GetComponent<Renderer>().material.color = Color.cyan;

                ScrewObj = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2");
                clonescrew5V = Instantiate(ScrewObj);
                clonescrew5V.transform.SetParent(GameObject.Find("CTPlanes/CTPlane2").transform);
                clonescrew5V.transform.localPosition = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localPosition;
                clonescrew5V.transform.localRotation = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localRotation;
                clonescrew5V.transform.localScale = GameObject.Find("CTPlanes/CTPlane2/ScrewVview2").transform.localScale;
                clonescrew5V.GetComponent<Renderer>().material.color = Color.cyan;
                updateflag5 = true;//只更新一次
            }
        }

    }

}

猜你喜欢

转载自blog.csdn.net/weixin_44345862/article/details/124058355