Example #1
0
        public static GrappleMotion Create(GameObject parent, Rigidbody charBody, Collider charCollider)
        {
            GrappleMotion motion = parent.GetComponent <GrappleMotion>();

            if (motion == null)
            {
                motion = parent.AddComponent <GrappleMotion>();
            }

            motion._charBody     = charBody;
            motion._charCollider = charCollider;

            if (motion._charBody.GetComponent <LineRenderer>() == null)
            {
                motion.lineRender = motion._charBody.gameObject.AddComponent <LineRenderer>();
            }
            else
            {
                motion.lineRender = motion._charBody.GetComponent <LineRenderer>();
            }


            motion.lineRender.SetPosition(0, motion._charBody.transform.position);
            motion.lineRender.SetPosition(1, motion._charBody.transform.position);
            motion.lineRender.positionCount = 2;
            motion.lineRender.startWidth    = motion.lineRender.endWidth = 0.15f;
            motion.lineRender.material      = new Material(Shader.Find("Sprites/Default"));
            motion.lineRender.startColor    = motion.lineRender.endColor = Color.black;

            return(motion);
        }
Example #2
0
        void Init()
        {
            if (_charBody == null)
            {
                _charBody = gameObject.GetComponent <Rigidbody>();
            }
            _charBody.isKinematic = true;

            if (_charCollider == null)
            {
                _charCollider = gameObject.GetComponent <Collider>();
            }

            if (!_charMotions.ContainsKey(CharState.Freefalling))
            {
                _charMotions.Add(CharState.Freefalling, FreefallMotion.Create(this.gameObject, _charBody, _charCollider));
            }

            if (!_charMotions.ContainsKey(CharState.Walking))
            {
                _charMotions.Add(CharState.Walking, WalkMotion.Create(this.gameObject, _charBody, _charCollider));
            }

            if (!_charMotions.ContainsKey(CharState.Grappling))
            {
                _charMotions.Add(CharState.Grappling, GrappleMotion.Create(this.gameObject, _charBody, _charCollider));
            }
        }