コード例 #1
0
 void Start()
 {
     rigidbody = GetComponent <Rigidbody>();
     animator  = GetComponent <Animator>();
     collider  = GetComponent <Collider>();
     pMatData  = new PhysicMaterialData()
     {
         dynamicFriction = collider.material.dynamicFriction,
         staticFriction  = collider.material.staticFriction,
         frictionCombine = collider.material.frictionCombine
     };
 }
コード例 #2
0
ファイル: PHarpoon.cs プロジェクト: Dingkang030/PrototypeCYAN
    void Start()
    {
        collider  = GetComponentInChildren <Collider>();
        rigidbody = GetComponent <Rigidbody>();
        AddOnTriggerHitEvent(
            delegate(Collider col)
        {
            //Debug.Log("h");
            //Collider col = coll.collider;
            if (col.gameObject == chainDrawer)
            {
                return;
            }
            if (col.gameObject == owner)
            {
                return;
            }
            if (harpoonState == HARPOON_STATE.MOVING)
            {
                objectMovement.Stop();
                if (col.gameObject.tag == "Wood")
                {
                    AttachObjectToObject(transform, col.transform);
                    rigidbody.isKinematic = true;
                    harpoonState          = HARPOON_STATE.FIXED;
                    fixedTarget           = col.transform;

                    /*if (col.attachedRigidbody != null)
                     *  chainDrawer.headConnectedRigid = col.attachedRigidbody;*/
                    fixedTargetPMat = new PhysicMaterialData()
                    {
                        dynamicFriction = col.material.dynamicFriction,
                        staticFriction  = col.material.staticFriction,
                        frictionCombine = col.material.frictionCombine
                    };
                    RaycastHit hit;
                    if (Physics.Raycast(transform.position, transform.forward, out hit, harpoonLength * 3, LayerMask.GetMask(LayerMask.LayerToName(col.gameObject.layer))))
                    {
                        transform.position = hit.point - transform.forward * (thrustingLength);
                    }
                }
                else if (col.gameObject.tag == "Monster")
                {
                    AttachObjectToObject(transform, col.transform);
                    rigidbody.isKinematic = true;
                    harpoonState          = HARPOON_STATE.FIXED;
                    fixedTarget           = col.transform;

                    /*if (col.attachedRigidbody != null)
                     *  chainDrawer.headConnectedRigid = col.attachedRigidbody;*/
                    fixedTargetPMat = new PhysicMaterialData()
                    {
                        dynamicFriction = col.material.dynamicFriction,
                        staticFriction  = col.material.staticFriction,
                        frictionCombine = col.material.frictionCombine
                    };
                }
                else if (col.gameObject.layer == LayerMask.NameToLayer("ground"))
                {
                    ReturnHarpoon(HARPOON_STATE.RETURNING);
                }
            }
        }
            );
        objectMovement.AddReachedEvent(OnReachedEvent);
        gameObject.SetActive(false);
    }