/// <summary> /// Handles the on human iteract. /// </summary> /// <param name="source">Source.</param> /// <param name="e">E.</param> void HandleOnHumanIteract(object source, IteractionArgs e) { if ( e.Iteraction == IteractionArgs.EIteractions.Sweem ) { Vector3 dir = (Vector3) e.Data; if ( State != HeroStates.Dead && State != HeroStates.StartPickingUp ) { rigidbody.AddForce( dir * Constants.HeroPushForce * Time.deltaTime ); } if ( (State == HeroStates.Idle || State == HeroStates.MoveForward || State == HeroStates.MoveUp || State == HeroStates.MoveDown ) ) { //Check turns first if ( dir.x < -0.2f && mAnimator.transform.localScale.x > 0f ) { State = HeroStates.Turn; return; } else if ( dir.x > 0.2f && mAnimator.transform.localScale.x < 0f ) { State = HeroStates.Turn; return; } //Check moving else if ( (dir.x > 0 || dir.x < 0 ) && dir.z < 0.5f && dir.z > -0.5f && rigidbody.velocity.magnitude > 2f ) { //Move forward State = HeroStates.MoveForward; } else if ( dir.z < -0.5f && rigidbody.velocity.magnitude > 2f ) { //Move down State = HeroStates.MoveDown; } else if ( dir.z > 0.5f ) { //Move up State = HeroStates.MoveUp; } } } }
/// <summary> /// Handles the on human iteract. /// </summary> /// <param name="source">Source.</param> /// <param name="e">E.</param> void HandleOnHumanIteract(object source, IteractionArgs e) { if ( e.Iteraction == IteractionArgs.EIteractions.Sweem ) { Ray ray = Camera.main.ScreenPointToRay( (Vector2) e.Data ); RaycastHit hit; if (Physics.Raycast (ray, out hit )) { if ( hit.collider.rigidbody != null ) { hit.collider.rigidbody.AddForce( Constants.MenuPushRigidbodyForce * ( 0.5f - Random.value ), 0f , Constants.MenuPushRigidbodyForce * ( 0.5f - Random.value )); } SceneRoot.Instance.OnUIAction( hit.collider.gameObject, null ); } } }
/// <summary> /// Iteract the specified iteraction and data. /// </summary> /// <param name="iteraction">Iteraction.</param> /// <param name="data">Data.</param> public void Iteract(IteractionArgs.EIteractions iteraction, object data) { if ( OnIteract != null ) { OnIteract( this, new IteractionArgs(iteraction, data )); } }