Пример #1
0
    public void SetSocketPositions(GameObject fuselage)
    {
        SocketPositions fuselageSocket = fuselage.GetComponent <SocketPositions>();

        enginePosition = fuselageSocket.enginePosition;
        wingPosition   = fuselageSocket.wingPosition;
        NosePosition   = fuselageSocket.NosePosition;
        foreach (Transform child in transform)
        {
            switch (child.gameObject.tag)
            {
            case "Engine":
                child.localPosition = enginePosition;
                break;

            case "Wing":
                child.localPosition = wingPosition;
                break;

            case "Nose":
                child.localPosition = NosePosition;
                break;
            }
        }
    }
Пример #2
0
    private void CreateDrone()
    {
        Destroy(fuselage);
        fuselage = (GameObject)Instantiate(shipDetails.fuselage, transform);
        SocketPositions socketPositions = fuselage.GetComponent <SocketPositions>();

        fuselage.GetComponent <Renderer>().material.shader = droneShader;

        Destroy(engine);
        engine = (GameObject)Instantiate(shipDetails.engine, transform.position, transform.rotation, transform);
        engine.transform.localPosition = socketPositions.enginePosition;
        engine.GetComponent <Renderer>().material.shader = droneShader;

        Destroy(wing);
        wing = (GameObject)Instantiate(shipDetails.wing, transform.position, transform.rotation, transform);
        wing.transform.localPosition = socketPositions.wingPosition;
        wing.GetComponent <Renderer>().material.shader = droneShader;

        Destroy(nose);
        nose = (GameObject)Instantiate(shipDetails.nose, transform.position, transform.rotation, transform);
        nose.transform.localPosition = socketPositions.NosePosition;
        nose.GetComponent <Renderer>().material.shader = droneShader;

        //TODO fix occlusion rendering on spawned drone
        for (int i = 0; i < engine.GetComponent <Renderer>().materials.Length; i++)
        {
            //engine.GetComponent<Renderer>().materials[i].shader = Shader.Find("BumpedOutline");
        }
    }
Пример #3
0
    private void EquipComponent()
    {
        if (GetCurrentHandGripRelease())
        {
            if (compatibleComponent != null)
            {
                if (equippedPart != null)
                {
                    Destroy(equippedPart);
                }
                equippedPart = (GameObject)Instantiate(compatibleComponent, transform.position, transform.rotation, transform);//Instantiate(compatibleComponent, transform);
                equippedPart.GetComponent <DroneComponent>().rotSpeed = Vector3.zero;
                equippedPart.GetComponent <DroneComponent>().onStand  = false;
                equippedPart.GetComponent <Collider>().enabled        = false;
                equippedPart.transform.localScale = Vector3.one;
            }
            equippedPart.tag = socketType;
            Renderer eqPartRenderer = equippedPart.GetComponent <Renderer>();
            for (int i = 0; i < eqPartRenderer.materials.Length; i++)
            {
                eqPartRenderer.materials[i].shader = Shader.Find("Standard");
            }
            partEquipped = true;
            if (equipSFXCooldown <= 0)
            {
                AudioSource.PlayClipAtPoint(equipSFX, transform.position);
                equipSFXCooldown = 2;
            }
            ShipDetails shipDetails = transform.parent.GetComponent <ShipDetails>();
            switch (socketType)
            {
            case "Fuselage":
                SocketPositions holoSocketPositions = transform.parent.GetComponent <SocketPositions>();
                holoSocketPositions.SetSocketPositions(equippedPart);
                shipDetails.fuselage = equippedPart;
                break;

            case "Engine":
                shipDetails.engine = equippedPart;
                break;

            case "Nose":
                shipDetails.nose = equippedPart;
                break;

            case "Wing":
                shipDetails.wing = equippedPart;
                break;
            }
            transform.parent.GetComponent <ShipDetails>().RefreshStats();
            compatibleComponentInVicinity = false;
        }
    }