public void Release() { //set status __Status = STATUS.idle; //null check if (__Grabbed == null) { return; } //Grabbed Object's parent check if (__Grabbed.IsParent(transform)) { //release object __Grabbed.Release(__AvgVelocity); //get return object & set return target ReturnObject tmprobj = __Grabbed.gameObject.GetComponent <ReturnObject>(); tmprobj.setTargetToReturn(transform); __Grabbed = null; } else { __Grabbed = null; } }
/// <summary> /// 물건을 놓게할 때 쓰이는 함수입니다. 무려 널체크까지 해준다구~ /// </summary> public void PutCatchedObject() { if (!ReferenceEquals(catchedObject, null)) { catchedObject.GoPutThis(); catchedObject = null; } }
public void Grab() { // if this status is already "grab", continue if (__Status == STATUS.grab) { return; } __Status = STATUS.grab; // if already something is grabbed, continue if (__Grabbed != null) { return; } // if there is no candidate, dosen't work anything if (__Candidates.Count == 0) { return; } // find closest object CatchableObject tmpcobj = null; float tmpdist = Mathf.Infinity; __Candidates.ForEach((CatchableObject co) => { if (co == null || co.IsGrabbed()) { return; } if (tmpcobj == null) { tmpcobj = co; } else { Debug.Log(co); float dist = (transform.position - co.transform.position).sqrMagnitude; if (tmpdist > dist) { tmpdist = dist; tmpcobj = co; } } }); if (tmpcobj != null) { //do grab motion tmpcobj.Grab(gameObject); //set grabbed object __Grabbed = tmpcobj; } }
private void OnTriggerExit(Collider other) { //is it possible to be candidate? CatchableObject candidate = other.gameObject.GetComponent <CatchableObject>(); if (candidate == null) { return; } //remove from candidates list __Candidates.Remove(candidate); }
private void OnTriggerEnter(Collider other) { //is it possible to be candidate? CatchableObject candidate = other.gameObject.GetComponent <CatchableObject>(); if (__Candidates == null) { return; } //added to candidates list __Candidates.Add(candidate); }
public void Init() { if (growTime <= 0f) { growTime = 5f; } if (currentGrowTime >= 0f) { currentGrowTime = 0f; } GrowCoroutine = ProcessGrow(); catchableObject = GetComponent <CatchableObject>(); // spriteRenderer = GetComponent<SpriteRenderer>(); }
/// <summary> /// 플레이어 들어왔다면 실행하는 함수. /// </summary> public void EnterPlayer() { var playerCatchedObject = PlayerController.Instance.GetCatchedObject(); if (ReferenceEquals(playerCatchedObject, null) == false)//뭘 들고있다면 { currentCatchedObject = playerCatchedObject; isCatched = true; PlayerController.Instance.PutCatchedObject(); Debug.Log(currentCatchedObject.name); currentCatchedObject.transform.position = catchedPosition.position; currentCatchedObject.canCatched = false; } else //아니라면 { //PlayerController.Instance.GoDie(); } }
public void OnTriggerEnter(Collider other) { PlayerFireController playerFire = other.GetComponent <PlayerFireController>(); if (playerFire) { if (playerFire.m_suckHoldObject != null) { CatchableObject catchObj = playerFire.m_suckHoldObject.GetComponent <CatchableObject>(); if (catchObj) { BaseMonsterBrain monster = catchObj.GetComponent <BaseMonsterBrain>(); if (monster) { monster.OnAssimilation(); } OnCatch(); } } } CatchableObject catchable = other.GetComponent <CatchableObject>(); if (catchable) { BaseMonsterBrain monster = catchable.GetComponent <BaseMonsterBrain>(); if (monster && !monster.IsKnockedOut()) { return; } else if (monster) { monster.OnAssimilation(); } else { Destroy(other.gameObject); } OnCatch(); } }
public void Init() { playerStateMachine = new PlayerStateMachine(this); if (playerSkillManager == null) { playerSkillManager = GetComponent <PlayerSkillManager>(); } playerRigidbody = GetComponent <Rigidbody2D>(); playerCollider = GetComponent <BoxCollider2D>(); playerCapsuleCollider = GetComponent <CapsuleCollider2D>(); animator = GetComponent <Animator>(); puppet = gameObject.transform; Init_LayerMask(); Init_AnimatorParameter(); isRight = true; isWater = false; isInputCatchKey = false; isTalkReady = false; isGliding = false; existInteractObject = false; isInteractingSoulMemory = false; currentNPC = null; catchedObject = null; //pushedObject = null; touchedObject = null; currentSoulMemory = null; originalMoveSpeed = movementSpeed; //animator.SetFloat("WindBlend", 0); currentGlideAngle = glideAngle + 90f; footPosition = lightningPosition; myRigidbody = playerRigidbody; Init_ContactFilter(); }
public void SetTouchedObject(CatchableObject _go) { touchedObject = _go; }
public void SetCatchedObject(CatchableObject _co) { catchedObject = _co; }