人必须有一个正确的方向

无论多么意气风发,无论多么足智多谋,无论花费了多大的心血,如果没有一个明确的方向,就会过得很茫然,渐渐就丧失了斗志,忘却了最初的梦想,就会走上弯路甚至不归路,枉费了自己的聪明才智,误了自己的青春年华。

荷马史诗《奥德赛》中有一句至理名言:"没有比漫无目的地徘徊更令人无法忍受的了。"毕业后这5年里的迷茫,会造成10年后的恐慌,20年后的挣扎,甚至一辈子的平庸。如果不能在毕业这5年尽快冲出困惑、走出迷雾,我们实在是无颜面对10年后、20年后的自己。毕业这5年里,我们既有很多的不确定,也有很多的可能性。

毕业这5年里,我们既有很多的待定,也有很多的决定。

迷茫与困惑谁都会经历,恐惧与逃避谁都曾经有过,但不要把迷茫与困惑当作可以自我放弃、甘于平庸的借口,更不要成为自怨自艾、祭奠失意的苦酒。生命需要自己去承担,命运更需要自己去把握。在毕业这5年里,越早找到方向,越早走出困惑,就越容易在人生道路上取得成就、创造精彩。无头苍蝇找不到方向,才会四处碰壁;一个人找不到出路,才会迷茫、恐惧。

生活中,面对困境,我们常常会有走投无路的感觉。不要气馁,坚持下去,要相信年轻的人生没有绝路,困境在前方,希望在拐角。只要我们有了正确的思路,就一定能少走弯路,找到出路!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28675424/viewspace-756233/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28675424/viewspace-756233/

以下是基于A*寻路的自定义BehaviorDesigner action的代码: using UnityEngine; using BehaviorDesigner.Runtime; using BehaviorDesigner.Runtime.Tasks; using System.Collections.Generic; public class Seek2D : Action { public SharedGameObject target; public float speed = 5f; public float stoppingDistance = 1f; public LayerMask obstacleMask; private Animator animator; private Vector2 direction; private bool isMoving; public override void OnStart() { animator = GetComponent<Animator>(); isMoving = false; } public override TaskStatus OnUpdate() { if (target.Value == null) { return TaskStatus.Failure; } Vector2 targetPosition = target.Value.transform.position; Vector2 currentPosition = transform.position; List<Node> path = AStar.FindPath(currentPosition, targetPosition, obstacleMask); if (path != null && path.Count > 0) { Node nextNode = path[0]; if (Vector2.Distance(currentPosition, nextNode.position) > stoppingDistance) { direction = (nextNode.position - currentPosition).normalized; transform.Translate(direction * speed * Time.deltaTime, Space.World); if (!isMoving) { isMoving = true; animator.SetBool("IsMoving", true); } if (direction.x > 0) { animator.SetFloat("InputX", 1f); animator.SetFloat("InputY", 0f); } else if (direction.x < 0) { animator.SetFloat("InputX", -1f); animator.SetFloat("InputY", 0f); } else if (direction.y > 0) { animator.SetFloat("InputX", 0f); animator.SetFloat("InputY", 1f); } else if (direction.y < 0) { animator.SetFloat("InputX", 0f); animator.SetFloat("InputY", -1f); } } else { if (isMoving) { isMoving = false; animator.SetBool("IsMoving", false); } } return TaskStatus.Running; } else { if (isMoving) { isMoving = false; animator.SetBool("IsMoving", false); } return TaskStatus.Failure; } } } 该代码实现了一个基于A*寻路的自定义BehaviorDesigner action,可以让NPC追赶目标,但是不撞上障碍物,而是自行规避。该action命名为Seek2D,NPC是个2D俯视角四方向人物,有上下左右四个方向。现在NPC身上挂了一个animation controller叫做Man,Man是一个包含了四方向行走动画的混合器,由bool参数IsMoving控制切换,由InputX和InputY控制方向,现在要求以移动中控制切换动画,并使动画方向正确
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值