Пример #1
0
    // Update is called once per frame
    void Update()
    {
        ElementColor = ElementDefine.GetElementColor(PowerElement);

        ElementColor.a = 0.5f;
        //PowerMat.color = ElementColor;
    }
Пример #2
0
    // Update is called once per frame
    void Update()
    {
        if (m_ElementType == ElementType.ICE)
        {
            float elementScale = ElementValue / MaxElementValue;
            this.transform.localScale = new Vector3(elementScale, elementScale, elementScale);
        }
        else
        {
            MeshRenderer mr = gameObject.GetComponent <MeshRenderer>();
            if (mr)
            {
                Color ElementColor = ElementDefine.GetElementColor(m_ElementType);
                ElementColor = ElementColor * ElementValue / MaxElementValue;

                mr.material.color = ElementColor;
            }
        }


        if (ElementValue <= 0)
        {
            GameObject.Destroy(this.gameObject);
        }
    }
Пример #3
0
    // Update is called once per frame
    void Update()
    {
        SwordElement = player.GetElementType();
        boundTrans   = SwordObject.transform;

        if (AttackValue == 0)
        {
            return;
        }

        PowerRenderer.material.color = ElementDefine.GetElementColor(SwordElement);
        Collider[]        PoweredColliders = Physics.OverlapBox(boundTrans.position, boundTrans.localScale);
        List <GameObject> ColliderList     = new List <GameObject>();

        foreach (Collider collider in PoweredColliders)
        {
            if (collider.gameObject.tag == "Element" && !collider.isTrigger)
            //if (collider.gameObject.tag != "Ground" && !collider.isTrigger && collider.gameObject.tag != "Player")
            {
                MeshRenderer  mr = collider.gameObject.GetComponent <MeshRenderer>();
                ElementScript es = collider.gameObject.GetComponent <ElementScript>();
                if (es)
                {
                    ColliderList.Add(collider.gameObject);
                    //ElementColor = mr.material.color;
                }
                else
                {
                    ElementScript parent_es = collider.transform.parent.gameObject.GetComponent <ElementScript>();
                    if (parent_es)
                    {
                        ColliderList.Add(parent_es.gameObject);
                    }
                }
            }
        }

        foreach (GameObject collider in ColliderList)
        {
            ElementScript es = collider.gameObject.GetComponent <ElementScript>();

            //es.SetPowerElement(PowerElement);

            float curElementValue = player.GetElementValue();

            es.SetPowerElement(SwordElement, Mathf.Min(curElementValue, player.GetShootSpend()));
            player.ReleaseElement(Mathf.Min(curElementValue, player.GetShootSpend()));
            AttackValue = 0;
        }
    }
Пример #4
0
    public void SetPowerElement(ElementType powerElement)
    {
        float ElementDownSpeed = ElementDefine.GetElementDownSpeed(powerElement, m_ElementType);

        if (m_ElementType == ElementType.FIRE)
        {
            if (powerElement == ElementType.WATER)
            {
                ElementValue -= ElementDownSpeed * Time.deltaTime;
                ElementValue  = ElementValue < 0 ? 0 : ElementValue;
            }
        }
        if (m_ElementType == ElementType.GRASS)
        {
            if (powerElement == ElementType.FIRE)
            {
                ElementValue -= ElementDownSpeed * Time.deltaTime;
                ElementValue  = ElementValue < 0 ? 0 : ElementValue;
            }
        }
        if (m_ElementType == ElementType.ICE)
        {
            if (powerElement == ElementType.FIRE)
            {
                ElementValue -= ElementDownSpeed * Time.deltaTime;
                ElementValue  = ElementValue < 0 ? 0 : ElementValue;
            }
        }
        if (m_ElementType == ElementType.GRASS)
        {
            if (powerElement == ElementType.THUNDER)
            {
                m_ElementType = ElementType.FIRE;
                ElementValue  = MaxElementValue;
            }
        }
        if (m_ElementType == ElementType.WATER)
        {
            if (powerElement == ElementType.ICE)
            {
                m_ElementType = ElementType.WATERICE;
                ElementValue  = MaxElementValue;
            }
        }
    }
Пример #5
0
    // Update is called once per frame
    void Update()
    {
        Collider[]      RodSensorColliders = Physics.OverlapSphere(RodSensor.transform.position, 2.0f);
        List <Collider> ColliderList       = new List <Collider>();

        foreach (Collider collider in RodSensorColliders)
        {
            if (collider.gameObject.tag == "Element" && !collider.isTrigger)
            //if (collider.gameObject.tag != "Ground" && !collider.isTrigger && collider.gameObject.tag != "Player")
            {
                MeshRenderer  mr = collider.gameObject.GetComponent <MeshRenderer>();
                ElementScript es = collider.gameObject.GetComponent <ElementScript>();
                if (es)
                {
                    {
                        //DrawLine(RodSensor.transform.position, hitPoint, ElementColor, ElementColor);
                        ColliderList.Add(collider);
                        //ElementColor = mr.material.color;
                    }
                }
                else
                {
                    ElementScript parent_es = collider.transform.parent.gameObject.GetComponent <ElementScript>();
                    if (parent_es)
                    {
                        ColliderList.Add(collider);
                    }
                }
            }
        }

        if (ColliderList.Count > 0)
        {
            float    minDis     = 100.0f;
            Collider closestObj = ColliderList[0];
            foreach (Collider collider in ColliderList)
            {
                Vector3 hitPoint = collider.ClosestPoint(RodSensor.transform.position);
                hitPoint.y = RodSensor.transform.position.y;
                float dis = Vector3.Distance(hitPoint, RodSensor.transform.position);
                if (dis < minDis)
                {
                    minDis     = dis;
                    closestObj = collider;
                }
            }

            MeshRenderer  mr = closestObj.gameObject.GetComponent <MeshRenderer>();
            ElementScript es = closestObj.gameObject.GetComponent <ElementScript>();
            if (es)
            {
                CanGetElement = true;
                RodElement    = es.GetElementType();
                ElementColor  = ElementDefine.GetElementColor(RodElement);

                Vector3 hitPoint = closestObj.ClosestPoint(RodSensor.transform.position);
                DrawLine(RodSensor.transform.position, hitPoint, ElementColor, ElementColor);
            }
            else
            {
                ElementScript parent_es = closestObj.transform.parent.gameObject.GetComponent <ElementScript>();
                if (parent_es)
                {
                    CanGetElement = true;
                    RodElement    = parent_es.GetElementType();
                    ElementColor  = ElementDefine.GetElementColor(RodElement);

                    Vector3 hitPoint = closestObj.ClosestPoint(RodSensor.transform.position);
                    hitPoint = closestObj.transform.position;
                    DrawLine(RodSensor.transform.position, hitPoint, ElementColor, ElementColor);
                }
            }
        }
        else
        {
            CanGetElement = false;
            RodElement    = ElementType.NONE;
            ElementColor  = ElementDefine.GetElementColor(RodElement);
            RemoveLine();
        }

        RodRenderer.material.color = ElementColor;
        //RodMaterial.color = ElementColor;
    }
Пример #6
0
 // Use this for initialization
 void Start()
 {
     PowerRenderer.material.color = ElementDefine.GetElementColor(PowerElement);
 }
Пример #7
0
 // Update is called once per frame
 void Update()
 {
     //ContainerMat.color = ElementColor;
     ElementColor       = ElementDefine.GetElementColor(ContainerElement);
     ContainerMat.color = Color.Lerp(ElementBaseColor, ElementColor, curElementValue / maxElementValue);
 }