// Update is called once per frame void Update() { ElementColor = ElementDefine.GetElementColor(PowerElement); ElementColor.a = 0.5f; //PowerMat.color = ElementColor; }
// 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); } }
// 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; } }
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; } } }
// 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; }
// Use this for initialization void Start() { PowerRenderer.material.color = ElementDefine.GetElementColor(PowerElement); }
// Update is called once per frame void Update() { //ContainerMat.color = ElementColor; ElementColor = ElementDefine.GetElementColor(ContainerElement); ContainerMat.color = Color.Lerp(ElementBaseColor, ElementColor, curElementValue / maxElementValue); }