/** * Base function for VFX * name: the name of the effect in resources/effects * position: where it spawns * delay: how long until it plays * emitter: name of the other effect when it dies */ public GameObject PlayEffect(string name, Vector3 position, float delay, string emitter, float duration) { GameObject inta = Resources.Load <GameObject>("Effects/" + name); GameObject effect = Instantiate(inta, position, inta.transform.rotation); Transform tEffect = effect.transform; VFXScript vfx = effect.GetComponent <VFXScript>(); if (vfx != null && delay > 0) { vfx.delay = delay; } if (vfx != null && duration != 0) { vfx.duration = duration; } GameObject emit = Resources.Load <GameObject>("Effects/" + emitter); if (emit != null) { vfx.SetEmitter(emit); } return(effect); }
private void Awake() { photonView = gameObject.GetComponent <PhotonView>(); vfxScript = gameObject.GetComponent <VFXScript>(); photonView.RPC("Reset", RpcTarget.All); }
private void Update() { hunger += Time.deltaTime; if (isRunning) { if (!isVFXUsed) { isVFXUsed = true; vfx = VFXManager.Instance.GetStateVFX(transform.position, ai, VFXType.HUNGER); } if (target != null) { _animationManager.SetState(AnimationType.Walk); ai.Move(target.position); if (Vector3.Distance(target.position, transform.position) < targetRange) { if (target.tag == "Chicken") { AnimalAI targetAi = target.GetComponent <AnimalAI>(); // vfx = VFXManager.Instance.GetDeadVFX(transform.position, targetAi, VFXType.EATDEAD); // VFXManager.Instance.WaitPush(vfx, VFXType.EATDEAD); target.GetComponent <AnimalAI>().OnCaseChanged(new CaseChangedEventArgs(null, Case.DEATH)); } hunger = 0; isRunning = false; alerted = false; target = null; isVFXUsed = false; VFXManager.Instance.Push(vfx, VFXType.HUNGER); ai.OnCaseChanged(new CaseChangedEventArgs(null, Case.IDLE)); } } else { isRunning = false; ai.OnCaseChanged(new CaseChangedEventArgs(null, Case.IDLE)); } } if (!alerted && hunger > hungerTreshold) { alerted = true; ai.OnCaseChanged(new CaseChangedEventArgs(null, Case.AVAILABLE)); } if (hunger > deathTreshold) { // vfx = VFXManager.Instance.GetDeadVFX(transform.position, ai, VFXType.HUNGERDEAD); // VFXManager.Instance.WaitPush(vfx, VFXType.HUNGERDEAD); ai.OnCaseChanged(new CaseChangedEventArgs(null, Case.DEATH)); } }
private void Awake() { UpdateSpeed(); shotCount = 0; vfxScript = gameObject.GetComponent <VFXScript>(); vfxScript.Reset(); }
public void SpawnVFXAt(string prefabName, Vector3 location) { GameObject spawnInstance = Instantiate(Resources.Load <GameObject>("Art/VFX/" + prefabName), location, Quaternion.identity); VFXList.Add(spawnInstance); if (VFXList[VFXList.Count - 1].GetComponent <VFXScript>() != null) { VFXScript VFXScriptInstance = VFXList[VFXList.Count - 1].GetComponent <VFXScript>(); VFXScriptInstance.SetIndex(VFXList.Count - 1); } }
public void SpawnVFX(string prefabName) { GameObject spawnInstance = Instantiate(Resources.Load <GameObject>("Art/VFX/" + prefabName)); VFXList.Add(spawnInstance); if (VFXList[VFXList.Count - 1].GetComponent <VFXScript>() != null) { VFXScript VFXScriptInstance = VFXList[VFXList.Count - 1].GetComponent <VFXScript>(); VFXScriptInstance.SetIndex(VFXList.Count - 1); } }
// Update is called once per frame void Update() { if (!canReproduce) { return; } reproductionUrge += Time.deltaTime; if (isRunning && target != null) { if (!isVFXUsed) { isVFXUsed = true; vfx = VFXManager.Instance.GetStateVFX(transform.position, ai, VFXType.LOVE); } _animationManager.SetState(AnimationType.Walk); ai.Move(target.transform.position); if (Vector3.Distance(target.transform.position, transform.position) < targetRange) { reproductionUrge = 0; isRunning = false; alerted = false; // ÖNEMLİ NOT : DİREK HAMİLELİĞE GEÇİLDİĞİNDEN HAMİLELİĞİ BİRAZDA IDLE SÜRESİ EKLENMELİ! if (sex == Sex.FEMALE) { ai.OnCaseChanged(new CaseChangedEventArgs(new PregnancyCaseData(target.Identity.GeneticCode), Case.PREGNANCY)); } else { ai.OnCaseChanged(new CaseChangedEventArgs(new IdleCaseData(10f), Case.IDLE)); } target = null; isVFXUsed = false; VFXManager.Instance.Push(vfx, VFXType.LOVE); } } if (!alerted && reproductionUrge > reproductionTreshold) { alerted = true; ai.OnCaseChanged(new CaseChangedEventArgs(null, Case.AVAILABLE)); } }
/** * Base function for VFX * name: the name of the effect in resources/effects * position: where it spawns * delay: how long until it plays * emitter: name of the other effect when it dies */ public void PlayEffect(string name, Vector3 position, float delay, string emitter) { GameObject effect = Instantiate(Resources.Load <GameObject>("Effects/" + name), position, Quaternion.identity); VFXScript vfx = effect.GetComponent <VFXScript>(); if (vfx != null && delay > 0) { vfx.delay = delay; } GameObject emit = Resources.Load <GameObject>("Effects/" + emitter); if (emit != null) { vfx.SetEmitter(emit); } }
private void Update() { thirst += Time.deltaTime; if (isRunning) { if (!isVFXUsed) { isVFXUsed = true; vfx = VFXManager.Instance.GetStateVFX(transform.position, ai, VFXType.THIRST); } if (target != null && Vector3.Distance(target.position, thisTransform.position) < targetRange) { thirst = 0; isRunning = false; alerted = false; target = null; isVFXUsed = false; VFXManager.Instance.Push(vfx, VFXType.THIRST); ai.OnCaseChanged(new CaseChangedEventArgs(null, Case.IDLE)); } } if (!alerted && thirst > thirstTreshold) { alerted = true; ai.OnCaseChanged(new CaseChangedEventArgs(null, Case.AVAILABLE)); } if (thirst > deathTreshold) { // vfx = VFXManager.Instance.GetDeadVFX(transform.position, ai, VFXType.THIRSTDEAD); // VFXManager.Instance.WaitPush(vfx, VFXType.THIRSTDEAD); ai.OnCaseChanged(new CaseChangedEventArgs(null, Case.DEATH)); } }
private void Awake() { vfxScript = gameObject.GetComponent <VFXScript>(); vfxScript.Reset(); }