public void EchoOn(FrogHub hub) { hub.OnScream(); EffectHub eh = GameObject.Instantiate(hub.m_spawnedEffect, hub.transform.position, hub.transform.rotation) as EffectHub; eh.m_hostFrog = hub; eh.OnTrigger(); }
public void UpdateFrame(float dt) { Vector3 mv = new Vector3(Input.GetAxis(m_horizontalWalk), 0, Input.GetAxis(m_verticalWalk)).normalized; Vector3 force = mv + Vector3.up * 1.0f; _hub.GetComponent <CharacterController> ().Move(-force * _hub.m_walkSpeed * dt); Animator anim = _hub.GetComponent <Animator> (); anim.speed = _hub.m_animSpeed; if (mv.sqrMagnitude > Mathf.Epsilon) { _hub.transform.LookAt(_hub.transform.position - mv, Vector3.up); anim.SetFloat("walkSpeed", 1.0f); } else { anim.SetFloat("walkSpeed", 0.0f); } if (Input.GetButtonDown(m_interact)) { if (_heldFrog == null) { // find note NoteHub[] _allNotes = GameObject.FindObjectsOfType <NoteHub> (); NoteHub note = null; for (int i = 0; i < _allNotes.Length; ++i) { float dist = (_allNotes [i].transform.position - _hub.transform.position).magnitude; if (dist < _allNotes [i].m_triggerRange) { note = _allNotes [i]; } } if (note != null) { EffectHub eh = GameObject.Instantiate(note.m_spawnedEffect, note.transform.position, note.transform.rotation) as EffectHub; eh.OnTrigger(); if (_source.isPlaying) { _source.Stop(); } _source.clip = _hub.m_noteAudio; _source.Play(); } else { // find frogs FrogHub[] _allHubs = GameObject.FindObjectsOfType <FrogHub> (); FrogHub pickup = null; float pickupDistance = 0.0f; for (int i = 0; i < _allHubs.Length; ++i) { float dist = (_allHubs [i].transform.position - _hub.transform.position).magnitude; if (dist < _allHubs [i]._pickupRange && _allHubs [i].m_canPickUp) { if (pickup == null || dist < pickupDistance) { pickup = _allHubs [i]; pickupDistance = dist; } } } if (pickup != null) { _heldFrog = pickup; _heldFrog.transform.SetParent(_hub.m_frogBone); _heldFrog.transform.localPosition = Vector3.zero; _heldFrog.transform.localRotation = Quaternion.identity; _heldFrog.OnPickUp(); anim.SetBool("hasFrog", true); } } } else { Transform ground = _hub.transform.parent; _heldFrog.transform.SetParent(ground); _heldFrog.transform.position = _hub.transform.position + _hub.transform.forward * 0.1f; _heldFrog.transform.rotation = _hub.transform.rotation; _heldFrog.OnDrop(); _heldFrog = null; anim.SetBool("hasFrog", false); } } }