robot stuff in dev
This commit is contained in:
@ -316,6 +316,11 @@ public class SkinlessMonsterComponent : MonoBehaviour
|
||||
SetLiveTargeting();
|
||||
timeSinceTarget += Time.deltaTime;
|
||||
if (this.isAlive)
|
||||
{
|
||||
leftHandDamage.enabled = true;
|
||||
rightHandDamage.enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
leftHandDamage.enabled = false;
|
||||
rightHandDamage.enabled = false;
|
||||
|
8
Assets/Scripts/Enemies/Robot.meta
Normal file
8
Assets/Scripts/Enemies/Robot.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3b7da1e97ac501d47b23b10c3f65703d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
95
Assets/Scripts/Enemies/Robot/IKControl_Robot.cs
Normal file
95
Assets/Scripts/Enemies/Robot/IKControl_Robot.cs
Normal file
@ -0,0 +1,95 @@
|
||||
using UnityEngine;
|
||||
using System;
|
||||
using System.Collections;
|
||||
|
||||
[RequireComponent(typeof(Animator))]
|
||||
|
||||
public class IKControl_Robot : MonoBehaviour
|
||||
{
|
||||
|
||||
protected Animator animator;
|
||||
|
||||
public bool ikActive = false;
|
||||
public Transform rightHandObj = null;
|
||||
public Transform leftHandObj = null;
|
||||
public Transform lookObj = null;
|
||||
public Transform stepOnObj = null;
|
||||
public Transform stepOffObj = null;
|
||||
|
||||
|
||||
void Start()
|
||||
{
|
||||
animator = GetComponent<Animator>();
|
||||
transform.Rotate(0, 90, 0);
|
||||
}
|
||||
|
||||
//a callback for calculating IK
|
||||
void OnAnimatorIK()
|
||||
{
|
||||
if (animator)
|
||||
{
|
||||
|
||||
//if the IK is active, set the position and rotation directly to the goal.
|
||||
if (ikActive)
|
||||
{
|
||||
|
||||
// Set the look target position, if one has been assigned
|
||||
if (lookObj != null)
|
||||
{
|
||||
animator.SetLookAtWeight(1);
|
||||
animator.SetLookAtPosition(lookObj.position);
|
||||
}
|
||||
|
||||
// Set the right hand target position and rotation, if one has been assigned
|
||||
if (rightHandObj != null)
|
||||
{
|
||||
animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 1);
|
||||
animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 1);
|
||||
animator.SetIKPosition(AvatarIKGoal.RightHand, rightHandObj.position);
|
||||
animator.SetIKRotation(AvatarIKGoal.RightHand, rightHandObj.rotation);
|
||||
}
|
||||
if (leftHandObj != null)
|
||||
{
|
||||
animator.SetIKPositionWeight(AvatarIKGoal.LeftHand, 1);
|
||||
animator.SetIKRotationWeight(AvatarIKGoal.LeftHand, 1);
|
||||
animator.SetIKPosition(AvatarIKGoal.LeftHand, leftHandObj.position);
|
||||
animator.SetIKRotation(AvatarIKGoal.LeftHand, leftHandObj.rotation);
|
||||
}
|
||||
if(stepOnObj != null)
|
||||
{
|
||||
animator.SetIKPositionWeight(AvatarIKGoal.LeftFoot, 1);
|
||||
animator.SetIKRotationWeight(AvatarIKGoal.LeftFoot, 1);
|
||||
animator.SetIKPosition(AvatarIKGoal.LeftFoot,stepOnObj.position);
|
||||
animator.SetIKRotation(AvatarIKGoal.LeftFoot,stepOnObj.rotation);
|
||||
|
||||
}
|
||||
if(stepOffObj!= null) {
|
||||
animator.SetIKPositionWeight(AvatarIKGoal.RightFoot, 1);
|
||||
animator.SetIKRotationWeight(AvatarIKGoal.RightFoot, 1);
|
||||
animator.SetIKPosition(AvatarIKGoal.RightFoot, stepOffObj.position);
|
||||
animator.SetIKRotation(AvatarIKGoal.RightFoot, stepOffObj.rotation);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//if the IK is not active, set the position and rotation of the hand and head back to the original position
|
||||
else
|
||||
{
|
||||
animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 0);
|
||||
animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 0);
|
||||
animator.SetIKPositionWeight(AvatarIKGoal.LeftHand, 0);
|
||||
animator.SetIKRotationWeight(AvatarIKGoal.LeftHand, 0);
|
||||
|
||||
animator.SetLookAtWeight(0);
|
||||
animator.SetIKPositionWeight(AvatarIKGoal.LeftFoot, 0);
|
||||
animator.SetIKRotationWeight(AvatarIKGoal.LeftFoot, 0);
|
||||
|
||||
animator.SetIKPositionWeight(AvatarIKGoal.RightFoot, 0);
|
||||
animator.SetIKRotationWeight(AvatarIKGoal.RightFoot, 0);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/Enemies/Robot/IKControl_Robot.cs.meta
Normal file
11
Assets/Scripts/Enemies/Robot/IKControl_Robot.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 892157fc59d54bc44baf3845b74c1ec6
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
46
Assets/Scripts/Enemies/Robot/RobotMouthAnimator.cs
Normal file
46
Assets/Scripts/Enemies/Robot/RobotMouthAnimator.cs
Normal file
@ -0,0 +1,46 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.VFX;
|
||||
|
||||
public class RobotMouthAnimator : MonoBehaviour
|
||||
{
|
||||
private Animator anim;
|
||||
[SerializeField]
|
||||
private VisualEffect fireEffect;
|
||||
[SerializeField]
|
||||
private Light fireLight;
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
anim = GetComponent<Animator>();
|
||||
fireLight.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
if (Input.GetKeyDown(KeyCode.Return))
|
||||
{
|
||||
anim.SetBool("FlapsOpen", !anim.GetBool("FlapsOpen"));
|
||||
if (anim.GetBool("FlapsOpen"))
|
||||
{
|
||||
StartCoroutine(WaitToFire());
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
fireEffect.Stop();
|
||||
fireLight.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
private IEnumerator WaitToFire()
|
||||
{
|
||||
yield return new WaitForSeconds(1.5f);
|
||||
fireEffect.Play();
|
||||
fireLight.gameObject.SetActive(true);
|
||||
|
||||
}
|
||||
}
|
11
Assets/Scripts/Enemies/Robot/RobotMouthAnimator.cs.meta
Normal file
11
Assets/Scripts/Enemies/Robot/RobotMouthAnimator.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4e74663ab7e2dae46ae5884c256b157f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Reference in New Issue
Block a user